Introduction
Dans ce projet, vous allez apprendre à implémenter l'algorithme de régression K-Nearest Neighbors (KNN) à l'aide de Python. Le KNN est une méthode d'apprentissage automatique largement utilisée, couramment utilisée pour les problèmes de classification. Cependant, il peut également être appliqué à des tâches de régression, où l'objectif est de prédire une valeur cible continue.
🎯 Tâches
Dans ce projet, vous allez apprendre :
- Comment comprendre l'algorithme de régression KNN et son principe de fonctionnement
- Comment implémenter l'algorithme de régression KNN en Python
- Comment calculer les distances euclidiennes entre les données de test et les données d'entraînement
- Comment identifier les k plus proches voisins et récupérer leurs valeurs cibles
- Comment calculer la moyenne des valeurs cibles des k plus proches voisins pour prédire la sortie pour les données de test
🏆 Réalisations
Après avoir terminé ce projet, vous serez capable de :
- Implémenter l'algorithme de régression KNN de zéro à l'aide de Python
- Utiliser la distance euclidienne comme mesure de distance dans l'algorithme KNN
- Appliquer l'algorithme de régression KNN pour prédire des valeurs cibles continues
- Montrer des compétences pratiques dans l'implémentation d'algorithmes d'apprentissage automatique
Implémentez l'algorithme de régression KNN
Dans cette étape, vous allez apprendre à implémenter l'algorithme de régression K-Nearest Neighbors (KNN) à l'aide de Python. Suivez les étapes ci-dessous pour terminer cette étape :
Ouvrez le fichier
knn_regression.pydans votre éditeur de code préféré.Localisez la fonction
knn(train_data, train_labels, test_data, k). Cette fonction sera l'implémentation principale de l'algorithme de régression KNN.Le paramètre
train_dataest les données de caractéristiques d'échantillons connus,train_labelssont les valeurs cibles d'échantillons connus,test_dataest les données de caractéristiques d'un seul échantillon inconnu, etkreprésente le nombre de plus proches voisins utilisés dans K-nearest neighbors.À l'intérieur de la fonction
knn(), commençons par calculer les distances euclidiennes entre letest_dataet tous les échantillons d'entraînement. Vous pouvez utiliser les fonctionsnumpy.sqrt()etnumpy.sum()pour calculer les distances euclidiennes.
distances = np.sqrt(np.sum((train_data - test_data) ** 2, axis=1))
- Ensuite, obtenez les indices des
kplus proches voisins en triant les distances et en prenant les premierskindices.
nearest_indices = np.argsort(distances)[:k]
- Récupérez les étiquettes des
kplus proches voisins à l'aide desnearest_indices.
nearest_labels = train_labels[nearest_indices]
- Calculez la moyenne des étiquettes des
kplus proches voisins pour obtenir la valeur cible prédite pour le seul échantillon inconnutest_data.
predicted_label = np.mean(nearest_labels)
- Arrondissez l'étiquette prédite à au plus 2 décimales à l'aide de la fonction
round().
predicted_label = round(predicted_label, 2)
- Enfin, retournez la valeur cible prédite pour le seul échantillon inconnu
test_data.
return predicted_label
- Enregistrez le fichier
knn_regression.py.
Testez l'algorithme de régression KNN
Dans cette étape, vous allez tester l'implémentation de l'algorithme de régression KNN en exécutant l'exemple fourni.
Ouvrez le fichier knn_regression.py dans votre éditeur de code.
Ajoutez les cas de test suivants à la fin du fichier :
if __name__ == "__main__":
train_data = np.array(
[[1, 1], [2, 2], [3, 3], [4, 4], [5, 5], [6, 6], [7, 7], [8, 8], [9, 9], [10, 10]]
)
train_labels = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
test_data = np.array([[1.2, 1.3]])
result = knn(train_data, train_labels, test_data, k=3)
print(result)
Exécutez la commande suivante pour exécuter l'exemple :
python3 knn_regression.py
La sortie devrait être la valeur cible prédite pour le seul échantillon inconnu, arrondie à au plus 2 décimales.
2.0
Félicitations! Vous avez réussi à implémenter l'algorithme de régression KNN et à le tester avec l'exemple fourni.
Résumé
Félicitations! Vous avez terminé ce projet. Vous pouvez pratiquer plus de laboratoires sur LabEx pour améliorer vos compétences.



