Der 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.
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.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Awesome!
Completion rate improved to 3.13
Der 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.
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.
Danke für Ihr Feedback!