 Herausforderung: Auswahl des optimalen K-Werts
Herausforderung: Auswahl des optimalen K-Werts
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
Can you show me an example of how to use GridSearchCV with k-NN?
How do I interpret the results from GridSearchCV?
What other parameters can I tune with GridSearchCV besides n_neighbors?
Awesome!
Completion rate improved to 4.17 Herausforderung: Auswahl des optimalen K-Werts
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