Skip to content

Python KNN: Beherrsche K Nearest Neighbor Regression mit sklearn

Updated on

In der Welt des maschinellen Lernens ist ein Algorithmus, der erhebliche Beliebtheit gewonnen hat, der K Nearest Neighbors (KNN) Algorithmus. Wenn er auf Regressionsprobleme angewendet wird, wird dieser Algorithmus oft als KNN-Regression bezeichnet. Heute werden wir erkunden, wie man KNN-Regression mit sklearn in Python implementiert, wobei wir uns speziell auf die KNeighborsRegressor-Klasse konzentrieren.

Wollen Sie schnell Data Visualization aus Python Pandas Dataframe ohne Code erstellen?

PyGWalker ist eine Python-Bibliothek zur explorativen Datenanalyse mit Visualisierung. PyGWalker (opens in a new tab) kann Ihren Jupyter Notebook Datenanalyse und Datenvisualisierung Workflow vereinfachen, indem es Ihr Pandas-Datenframe (und Polars-Datenframe) in eine Tableau-ähnliche Benutzeroberfläche für die visuelle Exploration umwandelt.

PyGWalker für Datenvisualisierung (opens in a new tab)

Was ist KNN-Regression?

K Nearest Neighbor Regression ist eine nichtparametrische Methode, die für Vorhersageprobleme verwendet wird. Sie beruht auf der Annahme, dass ähnliche Eingabewerte wahrscheinlich ähnliche Ausgabewerte erzeugen. Im Kontext der Regression nimmt KNN eine bestimmte Anzahl (K) der nächsten Datenpunkte (Nachbarn) und bildet den Durchschnitt ihrer Werte, um eine Vorhersage zu treffen.

Der Sklearn KNN-Regressor

Sklearn, oder Scikit-learn, ist eine weit verbreitete Python-Bibliothek für maschinelles Lernen. Sie bietet benutzerfreundliche Implementierungen vieler beliebter Algorithmen, und der KNN-Regressor bildet da keine Ausnahme. In Sklearn wird die KNN-Regression über die KNeighborsRegressor-Klasse implementiert.

Um den KNeighborsRegressor zu verwenden, importieren wir ihn zuerst:

from sklearn.neighbors import KNeighborsRegressor

Als nächstes erstellen wir eine Instanz der Klasse und übergeben die gewünschte Anzahl von Nachbarn als Argument:

knn_regressor = KNeighborsRegressor(n_neighbors=3)

Schließlich können wir unser Modell an die Daten anpassen und Vorhersagen treffen:

knn_regressor.fit(X_train, y_train)
predictions = knn_regressor.predict(X_test)

Anpassen des Sklearn KNN-Regressionsmodells

Ein wichtiger Aspekt der Verwendung von KNN mit sklearn besteht darin, die richtige Anzahl von Nachbarn (K) zu wählen. Zu wenige Nachbarn können zu Overfitting führen, während zu viele zu Underfitting führen können. Es ist oft eine gute Idee, verschiedene Werte von K auszuprobieren und die Ergebnisse zu vergleichen.

for k in range(1, 10):
    knn_regressor = KNeighborsRegressor(n_neighbors=k)
    knn_regressor.fit(X_train, y_train)
    print(f'Ergebnis für k={k}: {knn_regressor.score(X_test, y_test)}')

Dies gibt den Genauigkeitsscore für jeden Wert von K aus und ermöglicht es uns, den besten Wert auszuwählen.

Sklearn KNN-Regression in der Praxis

Nun wollen wir ein Beispiel für die KNN-Regression in Python mit sklearn sehen. Wir werden den Boston Housing-Datensatz verwenden, einen beliebten Datensatz für Regressionsprobleme.

from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
 
# Lade den Datensatz
boston = load_boston()
X = boston.data
y = boston.target
 
# Teile den Datensatz in Trainings- und Testsets auf
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
 
# Wende KNN-Regression an
knn_regressor = KNeighborsRegressor(n_neighbors=3)
knn_regressor.fit(X_train, y_train)
predictions = knn_regressor.predict(X_test)
 
# Bewertung des Modells
print('Ergebnis:', knn_regressor.score(X_test, y_test))

Die score()-Methode gibt uns den Bestimmtheitskoeffizienten R^2 der Vorhersage.

Fazit

Das Verständnis der KNN-Regression und die Implementierung in Python mit sklearn's KNeighborsRegressor ist eine wertvolle Fähigkeit für jeden Datenwissenschaftler. Durch die Nutzung dieses leistungsstarken Tools können Sie die Kraft des lernenden Nachbars nutzen, um genaue Vorhersagen auf Ihren Daten zu treffen.

Während wir hier die Grundlagen eingeführt haben, gibt es noch viel mehr zu erkunden mit sklearn und KNN-Regression. Viel Spaß beim Experimentieren, und mögen Ihre Nachbarn Sie immer zu den richtigen Vorhersagen führen!