Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Herausforderung: Auswahl des optimalen K-Werts | K-NN-Klassifikator
Klassifikation mit Python

bookHerausforderung: 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.

Aufgabe

Swipe to start coding

Das Star Wars-Bewertungsdatenset ist als DataFrame in der Variable df gespeichert.

  • Initialisieren Sie param_grid als ein Dictionary, das den Parameter n_neighbors mit den Werten [3, 9, 18, 27] enthält.
  • Erstellen Sie ein GridSearchCV-Objekt unter Verwendung von param_grid mit 4-facher Kreuzvalidierung, trainieren Sie es und speichern Sie es in der Variable grid_search.
  • Rufen Sie das beste Modell aus grid_search ab und speichern Sie es in der Variable best_model.
  • Rufen Sie die Bewertung des besten Modells ab und speichern Sie sie in der Variable best_score.

Lösung

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 7
single

single

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Suggested prompts:

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?

close

Awesome!

Completion rate improved to 4.17

bookHerausforderung: 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.

Aufgabe

Swipe to start coding

Das Star Wars-Bewertungsdatenset ist als DataFrame in der Variable df gespeichert.

  • Initialisieren Sie param_grid als ein Dictionary, das den Parameter n_neighbors mit den Werten [3, 9, 18, 27] enthält.
  • Erstellen Sie ein GridSearchCV-Objekt unter Verwendung von param_grid mit 4-facher Kreuzvalidierung, trainieren Sie es und speichern Sie es in der Variable grid_search.
  • Rufen Sie das beste Modell aus grid_search ab und speichern Sie es in der Variable best_model.
  • Rufen Sie die Bewertung des besten Modells ab und speichern Sie sie in der Variable best_score.

Lösung

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 7
single

single

some-alt