Svakheten Ved GridSearchCV
Før du utforsker GridSearchCV
, er det viktig å merke seg at KNeighborsClassifier
har flere hyperparametere utover n_neighbors
. To av disse er: weights
og p
.
Weights
KNeighborsClassifier
predikerer ved å finne de k nærmeste naboene og tildele den mest vanlige klassen blant dem, uavhengig av hvor nær hver nabo er.
Et alternativ er å vekte naboene etter deres avstand, slik at nærmere punkter får større innflytelse. Dette gjøres med weights='distance'
.
Som standard bruker klassifiseringen weights='uniform'
, der alle naboer bidrar likt.
P
Hyperparameteren p
definerer hvordan avstander beregnes:
p=1
: Manhattan distance (summen av de absolutte forskjellene mellom koordinater);p=2
: Euclidean distance (rettlinjet avstand, kjent fra geometri).
En p
-parameter kan ha enhver positiv heltallverdi. Det finnes mange ulike avstander, men de er vanskeligere å visualisere enn p=1
eller p=2
.
Ikke bekymre deg hvis detaljene rundt weights
eller p
er uklare. De introduseres kun for å vise at det finnes flere hyperparametere som kan påvirke modellens prediksjoner. Se på dem som eksempler på hyperparametere som kan justeres.
I forrige kapittel ble GridSearchCV
brukt til å justere kun n_neighbors
.
For å søke etter den beste kombinasjonen av n_neighbors
, weights
og p
, kan param_grid
defineres slik:
param_grid = {
'n_neighbors': [1, 3, 5, 7],
'weights': ['distance', 'uniform'],
'p': [1, 2]
}
GridSearchCV
prøver alle mulige kombinasjoner for å finne den beste, så den vil prøve alle disse:
Det øker søkeområdet betydelig. For eksempel:
param_grid = {
'n_neighbors': [1, 3, 5, 7, 9, 12, 15, 17, 20, 25],
'weights': ['distance', 'uniform'],
'p': [1, 2, 3, 4, 5]
}
Med 100 hyperparameter-kombinasjoner og 5-fold kryssvalidering blir modellen trent og evaluert 500 ganger.
For små datasett er dette håndterbart, men med større datasett og mer komplekse modeller blir prosessen svært treg.
For slike tilfeller foretrekkes ofte RandomizedSearchCV
. Den undersøker kun et utvalg av alle mulige kombinasjoner, noe som reduserer beregningstiden betydelig samtidig som den gir gode resultater.
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Awesome!
Completion rate improved to 3.13
Svakheten Ved GridSearchCV
Sveip for å vise menyen
Før du utforsker GridSearchCV
, er det viktig å merke seg at KNeighborsClassifier
har flere hyperparametere utover n_neighbors
. To av disse er: weights
og p
.
Weights
KNeighborsClassifier
predikerer ved å finne de k nærmeste naboene og tildele den mest vanlige klassen blant dem, uavhengig av hvor nær hver nabo er.
Et alternativ er å vekte naboene etter deres avstand, slik at nærmere punkter får større innflytelse. Dette gjøres med weights='distance'
.
Som standard bruker klassifiseringen weights='uniform'
, der alle naboer bidrar likt.
P
Hyperparameteren p
definerer hvordan avstander beregnes:
p=1
: Manhattan distance (summen av de absolutte forskjellene mellom koordinater);p=2
: Euclidean distance (rettlinjet avstand, kjent fra geometri).
En p
-parameter kan ha enhver positiv heltallverdi. Det finnes mange ulike avstander, men de er vanskeligere å visualisere enn p=1
eller p=2
.
Ikke bekymre deg hvis detaljene rundt weights
eller p
er uklare. De introduseres kun for å vise at det finnes flere hyperparametere som kan påvirke modellens prediksjoner. Se på dem som eksempler på hyperparametere som kan justeres.
I forrige kapittel ble GridSearchCV
brukt til å justere kun n_neighbors
.
For å søke etter den beste kombinasjonen av n_neighbors
, weights
og p
, kan param_grid
defineres slik:
param_grid = {
'n_neighbors': [1, 3, 5, 7],
'weights': ['distance', 'uniform'],
'p': [1, 2]
}
GridSearchCV
prøver alle mulige kombinasjoner for å finne den beste, så den vil prøve alle disse:
Det øker søkeområdet betydelig. For eksempel:
param_grid = {
'n_neighbors': [1, 3, 5, 7, 9, 12, 15, 17, 20, 25],
'weights': ['distance', 'uniform'],
'p': [1, 2, 3, 4, 5]
}
Med 100 hyperparameter-kombinasjoner og 5-fold kryssvalidering blir modellen trent og evaluert 500 ganger.
For små datasett er dette håndterbart, men med større datasett og mer komplekse modeller blir prosessen svært treg.
For slike tilfeller foretrekkes ofte RandomizedSearchCV
. Den undersøker kun et utvalg av alle mulige kombinasjoner, noe som reduserer beregningstiden betydelig samtidig som den gir gode resultater.
Takk for tilbakemeldingene dine!