Implementierung des K-Nearest Neighbors-Regressionsalgorithmus

PythonPythonBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Projekt lernst du, wie du den K-Nearest Neighbors (KNN)-Regressionsalgorithmus mit Python implementierst. KNN ist eine weit verbreitete Methode der maschinellen Lernmethode, die normalerweise für Klassifizierungsprobleme verwendet wird. Es kann jedoch auch auf Regressionsaufgaben angewendet werden, bei denen das Ziel ist, einen kontinuierlichen Zielwert vorherzusagen.

🎯 Aufgaben

In diesem Projekt wirst du lernen:

  • Wie du den KNN-Regressionsalgorithmus und dessen Arbeitsweise verstehst
  • Wie du den KNN-Regressionsalgorithmus in Python implementierst
  • Wie du die euklidischen Distanzen zwischen den Testdaten und den Trainingsdaten berechnest
  • Wie du die k nächsten Nachbarn identifizierst und ihre Zielwerte abrufst
  • Wie du den Mittelwert der Zielwerte der k nächsten Nachbarn berechnest, um die Ausgabe für die Testdaten vorherzusagen

🏆 Errungenschaften

Nach Abschluss dieses Projekts wirst du in der Lage sein:

  • Den KNN-Regressionsalgorithmus von Grund auf mit Python zu implementieren
  • Die euklidische Distanz als Distanzmaß im KNN-Algorithmus zu verwenden
  • Den KNN-Regressionsalgorithmus anwenden, um kontinuierliche Zielwerte vorherzusagen
  • Praktische Fähigkeiten bei der Implementierung von maschinellen Lernalgorithmen demonstrieren

Implementiere den KNN-Regressionsalgorithmus

In diesem Schritt lernst du, wie du den K-Nearest Neighbors (KNN)-Regressionsalgorithmus mit Python implementierst. Folge den Schritten unten, um diesen Schritt abzuschließen:

  1. Öffne die Datei knn_regression.py in deinem bevorzugten Code-Editor.
  2. Locate the knn(train_data, train_labels, test_data, k) function. This function will be the main implementation of the KNN regression algorithm.
  3. Der Parameter train_data ist die Merkmalsdaten bekannter Proben, train_labels sind die Zielwerte bekannter Proben, test_data sind die Merkmalsdaten einer einzelnen unbekannten Probe und k repräsentiert die Anzahl der nächsten Nachbarn, die im K-Nearest-Neighbors-Verfahren verwendet werden.
  4. Inside the knn() function, start by calculating the Euclidean distances between the test_data and all the training samples. You can use the numpy.sqrt() and numpy.sum() functions to calculate the Euclidean distances.
distances = np.sqrt(np.sum((train_data - test_data) ** 2, axis=1))
  1. Next, get the indices of the k nearest neighbors by sorting the distances and taking the first k indices.
nearest_indices = np.argsort(distances)[:k]
  1. Retrieve the labels of the k nearest neighbors using the nearest_indices.
nearest_labels = train_labels[nearest_indices]
  1. Calculate the mean of the k nearest neighbor labels to get the predicted target value for the single unknown sample test_data.
predicted_label = np.mean(nearest_labels)
  1. Runde das vorhergesagte Label auf maximal 2 Nachkommastellen mit der round()-Funktion.
predicted_label = round(predicted_label, 2)
  1. Finally, return the predicted target value for the single unknown sample test_data.
return predicted_label
  1. Save the knn_regression.py file.
✨ Lösung prüfen und üben

Teste den KNN-Regressionsalgorithmus

In diesem Schritt wirst du den Implementierungsvorschlag des KNN-Regressionsalgorithmus testen, indem du das bereitgestellte Beispiel ausführst.

Öffne die Datei knn_regression.py in deinem Code-Editor.

Füge die folgenden Testfälle am Ende der Datei hinzu:

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)

Führe den folgenden Befehl aus, um das Beispiel auszuführen:

python3 knn_regression.py

Die Ausgabe sollte der vorhergesagte Zielwert für die einzelne unbekannte Probe sein, gerundet auf maximal 2 Nachkommastellen.

2.0

Herzlichen Glückwunsch! Du hast den KNN-Regressionsalgorithmus erfolgreich implementiert und mit dem bereitgestellten Beispiel getestet.

✨ Lösung prüfen und üben

Zusammenfassung

Herzlichen Glückwunsch! Du hast dieses Projekt abgeschlossen. Du kannst in LabEx weitere Übungen absolvieren, um deine Fähigkeiten zu verbessern.