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