Der Fehler von GridSearchCV
Bevor GridSearchCV
betrachtet wird, ist es wichtig zu beachten, dass KNeighborsClassifier
neben n_neighbors
mehrere weitere Hyperparameter besitzt. Zwei davon sind: weights
und p
.
Gewichte
KNeighborsClassifier
trifft Vorhersagen, indem die k nächsten Nachbarn gefunden und die häufigste Klasse unter ihnen zugewiesen wird, unabhängig davon, wie nah jeder Nachbar ist.
Eine Alternative besteht darin, Nachbarn nach ihrer Entfernung zu gewichten, sodass näher gelegene Punkte mehr Einfluss haben. Dies wird mit weights='distance'
erreicht.
Standardmäßig verwendet der Klassifikator weights='uniform'
, wobei alle Nachbarn gleich gewichtet werden.
P
Der Hyperparameter p
definiert, wie Entfernungen berechnet werden:
p=1
: Manhattan-Distanz (Summe der absoluten Differenzen zwischen den Koordinaten);p=2
: Euklidische Distanz (die Luftlinienentfernung, bekannt aus der Geometrie).
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.
Im vorherigen Kapitel wurde GridSearchCV
verwendet, um nur n_neighbors
abzustimmen.
Um die beste Kombination aus n_neighbors
, weights
und p
zu finden, kann das param_grid
wie folgt definiert werden:
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:
Dadurch wird der Suchraum erheblich vergrößert. Zum Beispiel:
param_grid = {
'n_neighbors': [1, 3, 5, 7, 9, 12, 15, 17, 20, 25],
'weights': ['distance', 'uniform'],
'p': [1, 2, 3, 4, 5]
}
Bei 100 Hyperparameter-Kombinationen und 5-facher Kreuzvalidierung wird das Modell 500 Mal trainiert und bewertet.
Für kleine Datensätze ist dies handhabbar, aber bei größeren Datensätzen und komplexeren Modellen wird der Prozess sehr langsam.
Um solche Fälle zu bewältigen, wird häufig RandomizedSearchCV
bevorzugt. Es untersucht nur eine Teilmenge aller möglichen Kombinationen, wodurch die Rechenzeit erheblich reduziert wird und dennoch gute Ergebnisse erzielt werden.
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 GridSearchCV
betrachtet wird, ist es wichtig zu beachten, dass KNeighborsClassifier
neben n_neighbors
mehrere weitere Hyperparameter besitzt. Zwei davon sind: weights
und p
.
Gewichte
KNeighborsClassifier
trifft Vorhersagen, indem die k nächsten Nachbarn gefunden und die häufigste Klasse unter ihnen zugewiesen wird, unabhängig davon, wie nah jeder Nachbar ist.
Eine Alternative besteht darin, Nachbarn nach ihrer Entfernung zu gewichten, sodass näher gelegene Punkte mehr Einfluss haben. Dies wird mit weights='distance'
erreicht.
Standardmäßig verwendet der Klassifikator weights='uniform'
, wobei alle Nachbarn gleich gewichtet werden.
P
Der Hyperparameter p
definiert, wie Entfernungen berechnet werden:
p=1
: Manhattan-Distanz (Summe der absoluten Differenzen zwischen den Koordinaten);p=2
: Euklidische Distanz (die Luftlinienentfernung, bekannt aus der Geometrie).
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.
Im vorherigen Kapitel wurde GridSearchCV
verwendet, um nur n_neighbors
abzustimmen.
Um die beste Kombination aus n_neighbors
, weights
und p
zu finden, kann das param_grid
wie folgt definiert werden:
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:
Dadurch wird der Suchraum erheblich vergrößert. Zum Beispiel:
param_grid = {
'n_neighbors': [1, 3, 5, 7, 9, 12, 15, 17, 20, 25],
'weights': ['distance', 'uniform'],
'p': [1, 2, 3, 4, 5]
}
Bei 100 Hyperparameter-Kombinationen und 5-facher Kreuzvalidierung wird das Modell 500 Mal trainiert und bewertet.
Für kleine Datensätze ist dies handhabbar, aber bei größeren Datensätzen und komplexeren Modellen wird der Prozess sehr langsam.
Um solche Fälle zu bewältigen, wird häufig RandomizedSearchCV
bevorzugt. Es untersucht nur eine Teilmenge aller möglichen Kombinationen, wodurch die Rechenzeit erheblich reduziert wird und dennoch gute Ergebnisse erzielt werden.
Danke für Ihr Feedback!