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 | Abschnitt
Grundlagen des Überwachten Lernens

bookHerausforderung: Auswahl des optimalen K-Werts

Wie in den vorherigen Kapiteln gezeigt, können die Vorhersagen des Modells je nach Wert von k (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-Scores für verschiedene k-Werte berechnet werden, wobei anschließend der Wert mit dem höchsten Score ausgewählt wird. Dies ist die am weitesten verbreitete Methode.

Dafür bietet sklearn ein praktisches Werkzeug: die Klasse GridSearchCV.

Konstruktor:

  • GridSearchCV(estimator, param_grid, scoring, cv = 5)
  • estimator — das Modellobjekt;
  • param_grid — Dictionary mit den zu durchsuchenden Parameterwerten;
    • scoring — die Metrik zur Bewertung des Cross-Validation-Scores;
  • cv — die Anzahl der Folds (standardmäßig 5);

Methoden:

  • fit(X, y) — trainiert die Modelle mit X, y;
  • predict(X) — sagt die Klasse für X voraus;
  • score(X, y) — gibt die Genauigkeit für das X, y-Set zurück;

Attribute:

  • best_estimator_ — Objekt des Modells mit dem höchsten Score;
  • best_score_ — der Score des best_estimator_.

Der Parameter param_grid erwartet ein Dictionary, bei dem die Schlüssel die Parameternamen und die Werte Listen mit auszuprobierenden Optionen sind. Um beispielsweise Werte von 1 bis 99 für n_neighbors zu testen, kann Folgendes geschrieben werden:

param_grid = {'n_neighbors': range(1, 100)}

Durch Aufruf der Methode .fit(X, y) auf dem GridSearchCV-Objekt wird das Parameter-Grid 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, und 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 Variablen df gespeichert.

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

Lösung

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 20
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

close

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 (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-Scores für verschiedene k-Werte berechnet werden, wobei anschließend der Wert mit dem höchsten Score ausgewählt wird. Dies ist die am weitesten verbreitete Methode.

Dafür bietet sklearn ein praktisches Werkzeug: die Klasse GridSearchCV.

Konstruktor:

  • GridSearchCV(estimator, param_grid, scoring, cv = 5)
  • estimator — das Modellobjekt;
  • param_grid — Dictionary mit den zu durchsuchenden Parameterwerten;
    • scoring — die Metrik zur Bewertung des Cross-Validation-Scores;
  • cv — die Anzahl der Folds (standardmäßig 5);

Methoden:

  • fit(X, y) — trainiert die Modelle mit X, y;
  • predict(X) — sagt die Klasse für X voraus;
  • score(X, y) — gibt die Genauigkeit für das X, y-Set zurück;

Attribute:

  • best_estimator_ — Objekt des Modells mit dem höchsten Score;
  • best_score_ — der Score des best_estimator_.

Der Parameter param_grid erwartet ein Dictionary, bei dem die Schlüssel die Parameternamen und die Werte Listen mit auszuprobierenden Optionen sind. Um beispielsweise Werte von 1 bis 99 für n_neighbors zu testen, kann Folgendes geschrieben werden:

param_grid = {'n_neighbors': range(1, 100)}

Durch Aufruf der Methode .fit(X, y) auf dem GridSearchCV-Objekt wird das Parameter-Grid 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, und 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 Variablen df gespeichert.

  • Initialisieren Sie param_grid als ein Dictionary mit dem Parameter n_neighbors und den Werten [3, 9, 18, 27].
  • Erstellen Sie ein GridSearchCV-Objekt unter Verwendung von param_grid mit 4-facher Kreuzvalidierung, trainieren Sie es und speichern Sie es in der Variablen grid_search.
  • Rufen Sie das beste Modell aus grid_search ab und speichern Sie es in der Variablen best_model.
  • Rufen Sie die Bewertung des besten Modells ab und speichern Sie sie in der Variablen 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 20
single

single

some-alt