single
Herausforderung: Auswahl des optimalen K-Werts
Swipe um das Menü anzuzeigen
Wie in den vorherigen Kapiteln gezeigt, können die Vorhersagen des Modells je nach Wert von k (der Anzahl der Nachbarn) variieren. Beim Erstellen eines k-NN-Modells ist es wichtig, den k-Wert zu wählen, der die beste Leistung erzielt.
Ein gängiger Ansatz ist die Verwendung von Cross-Validation, um die Modellleistung zu bewerten. Es kann eine Schleife ausgeführt und die Cross-Validation-Ergebnisse für verschiedene k-Werte berechnet werden, um anschließend den Wert mit dem höchsten Score auszuwählen. Dies ist die am weitesten verbreitete Methode.
Zur Durchführung bietet sklearn ein praktisches Werkzeug: die Klasse GridSearchCV.
Der Parameter param_grid erwartet ein Dictionary, bei dem die Schlüssel die Namen der Parameter und die Werte Listen von Optionen sind, die getestet werden sollen. Um beispielsweise Werte von 1 bis 99 für n_neighbors zu testen, kann man schreiben:
param_grid = {'n_neighbors': range(1, 100)}
Durch Aufruf der Methode .fit(X, y) auf dem GridSearchCV-Objekt wird das Parameter-Raster durchsucht, um die besten Parameter zu finden, und anschließend das Modell mit diesen besten Parametern auf dem gesamten Datensatz erneut trainiert.
Der beste Score kann über das Attribut .best_score_ abgerufen werden. Vorhersagen mit dem optimierten Modell sind über die Methode .predict() möglich. Ebenso kann das beste Modell selbst über das Attribut .best_estimator_ abgerufen werden.
Swipe to start coding
Das Star Wars-Bewertungsdatenset ist als DataFrame in der Variable df gespeichert.
- Initialisieren Sie
param_gridals ein Dictionary, das den Parametern_neighborsmit den Werten[3, 9, 18, 27]enthält. - Erstellen Sie ein
GridSearchCV-Objekt unter Verwendung vonparam_gridmit 4-facher Kreuzvalidierung, trainieren Sie es und speichern Sie es in der Variablegrid_search. - Rufen Sie das beste Modell aus
grid_searchab und speichern Sie es in der Variablebest_model. - Rufen Sie die Bewertung des besten Modells ab und speichern Sie sie in der Variable
best_score.
Lösung
Danke für Ihr Feedback!
single
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen