Implémentation de l'algorithme de régression K-Nearest Neighbors

PythonPythonBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

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

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) python(("Python")) -.-> python/DataScienceandMachineLearningGroup(["Data Science and Machine Learning"]) python/DataStructuresGroup -.-> python/lists("Lists") python/FunctionsGroup -.-> python/function_definition("Function Definition") python/ModulesandPackagesGroup -.-> python/using_packages("Using Packages") python/DataScienceandMachineLearningGroup -.-> python/numerical_computing("Numerical Computing") python/DataScienceandMachineLearningGroup -.-> python/machine_learning("Machine Learning") subgraph Lab Skills python/lists -.-> lab-300234{{"Implémentation de l'algorithme de régression K-Nearest Neighbors"}} python/function_definition -.-> lab-300234{{"Implémentation de l'algorithme de régression K-Nearest Neighbors"}} python/using_packages -.-> lab-300234{{"Implémentation de l'algorithme de régression K-Nearest Neighbors"}} python/numerical_computing -.-> lab-300234{{"Implémentation de l'algorithme de régression K-Nearest Neighbors"}} python/machine_learning -.-> lab-300234{{"Implémentation de l'algorithme de régression K-Nearest Neighbors"}} end

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 :

  1. Ouvrez le fichier knn_regression.py dans votre éditeur de code préféré.

  2. 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.

  3. Le paramètre train_data est les données de caractéristiques d'échantillons connus, train_labels sont les valeurs cibles d'échantillons connus, test_data est les données de caractéristiques d'un seul échantillon inconnu, et k représente le nombre de plus proches voisins utilisés dans K-nearest neighbors.

  4. À l'intérieur de la fonction knn(), commençons par calculer les distances euclidiennes entre le test_data et tous les échantillons d'entraînement. Vous pouvez utiliser les fonctions numpy.sqrt() et numpy.sum() pour calculer les distances euclidiennes.

distances = np.sqrt(np.sum((train_data - test_data) ** 2, axis=1))
  1. Ensuite, obtenez les indices des k plus proches voisins en triant les distances et en prenant les premiers k indices.
nearest_indices = np.argsort(distances)[:k]
  1. Récupérez les étiquettes des k plus proches voisins à l'aide des nearest_indices.
nearest_labels = train_labels[nearest_indices]
  1. Calculez la moyenne des étiquettes des k plus proches voisins pour obtenir la valeur cible prédite pour le seul échantillon inconnu test_data.
predicted_label = np.mean(nearest_labels)
  1. Arrondissez l'étiquette prédite à au plus 2 décimales à l'aide de la fonction round().
predicted_label = round(predicted_label, 2)
  1. Enfin, retournez la valeur cible prédite pour le seul échantillon inconnu test_data.
return predicted_label
  1. Enregistrez le fichier knn_regression.py.
✨ Vérifier la solution et pratiquer

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.

✨ Vérifier la solution et pratiquer

Sommaire

Félicitations! Vous avez terminé ce projet. Vous pouvez pratiquer plus de laboratoires sur LabEx pour améliorer vos compétences.