Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Der Fehler von GridSearchCV | Modellierung
Einführung in das Maschinelle Lernen mit Python

Der Fehler von GridSearchCV

Swipe um das Menü anzuzeigen

Vor der Verwendung von GridSearchCV ist zu beachten, dass KNeighborsClassifier mehr Hyperparameter als nur n_neighbors besitzt. Zwei wichtige sind weights und p.

Gewichte

Standardmäßig verwendet der Klassifikator weights='uniform', was bedeutet, dass alle k Nachbarn gleich gewichtet werden. Mit weights='distance' erhalten nähere Nachbarn mehr Einfluss, was die Vorhersagen oft verbessert, wenn nahegelegene Punkte relevanter sind.

kNNWeights

P

Der Parameter p steuert die Distanzmetrik:

  • p=1: Manhattan-Distanz;
  • p=2: Euklidische Distanz.
Distanzen

Ein p-Parameter kann jede positive ganze Zahl annehmen. Es gibt viele verschiedene Distanzen, aber sie sind schwieriger zu visualisieren als p=1 oder p=2.

Note
Hinweis

Keine Sorge, wenn die Details von weights oder p unklar sind. Sie werden lediglich eingeführt, um zu zeigen, dass es mehr als einen Hyperparameter gibt, der die Vorhersagen des Modells beeinflussen kann. Betrachte sie als Beispiele für Hyperparameter, die angepasst werden können.

Optimierung

Bisher wurde nur n_neighbors angepasst. Um alle drei Hyperparameter zu durchsuchen, verwende:

param_grid = {
    'n_neighbors': [1, 3, 5, 7],
    'weights': ['distance', 'uniform'],
    'p': [1, 2]
}

GridSearchCV testet alle möglichen Kombinationen, um die beste zu finden, daher werden alle diese ausprobiert:

Ein größeres Grid wie:

param_grid = {
    'n_neighbors': [...],
    'weights': ['distance', 'uniform'],
    'p': [1, 2, 3, 4, 5]
}

ergibt 100 Kombinationen. Mit 5-facher Kreuzvalidierung wird das Modell 500 Mal trainiert. Für kleine Datensätze ist das in Ordnung, aber bei größeren wird es zu langsam.

Um die Rechenzeit zu verkürzen, testet RandomizedSearchCV nur eine zufällige Teilmenge der Kombinationen und erzielt in der Regel deutlich schneller gute Ergebnisse als eine vollständige Gitter-Suche.

question mark

Das Hauptproblem von GridSearchCV ist, dass alle möglichen Kombinationen (der in param_grid angegebenen Werte) ausprobiert werden, was sehr viel Zeit in Anspruch nehmen kann. Ist diese Aussage korrekt?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 7

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

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

Abschnitt 4. Kapitel 7
some-alt