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

bookDer Fehler von GridSearchCV

Bevor Sie GridSearchCV verwenden, beachten Sie, 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.

P

Der Parameter p steuert die Distanzmetrik:

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

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

Machen Sie sich keine Sorgen, 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. Betrachten Sie sie als Beispiele für Hyperparameter, die angepasst werden können.

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

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 folgenden ausprobiert:

Ein größeres Gitter 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 akzeptabel, bei größeren wird es jedoch 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 besteht darin, 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?

Select the correct answer

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

bookDer Fehler von GridSearchCV

Swipe um das Menü anzuzeigen

Bevor Sie GridSearchCV verwenden, beachten Sie, 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.

P

Der Parameter p steuert die Distanzmetrik:

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

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

Machen Sie sich keine Sorgen, 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. Betrachten Sie sie als Beispiele für Hyperparameter, die angepasst werden können.

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

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 folgenden ausprobiert:

Ein größeres Gitter 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 akzeptabel, bei größeren wird es jedoch 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 besteht darin, 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?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 7
some-alt