Fejlen ved GridSearchCV
Før du udforsker GridSearchCV
, er det vigtigt at bemærke, at KNeighborsClassifier
har flere hyperparametre udover n_neighbors
. To af dem er: weights
og p
.
Weights
KNeighborsClassifier
forudsiger ved at finde de k nærmeste naboer og tildele den mest hyppige klasse blandt dem, uanset hvor tæt hver nabo er.
Et alternativ er at vægte naboerne efter deres afstand, hvilket giver mere indflydelse til de nærmeste punkter. Dette gøres med weights='distance'
.
Som standard anvender klassifikatoren weights='uniform'
, hvor alle naboer bidrager lige meget.
P
Hyperparameteren p
definerer, hvordan afstande beregnes:
p=1
: Manhattan-afstand (summen af de absolutte forskelle mellem koordinater);p=2
: Euklidisk afstand (den lige linje-afstand, kendt fra geometri).
En p
-parameter kan antage ethvert positivt heltal. Der findes mange forskellige afstande, men de er sværere at visualisere end p=1
eller p=2
.
Vær ikke bekymret, hvis detaljerne om weights
eller p
er uklare. De introduceres blot for at vise, at der findes mere end én hyperparameter, der kan påvirke modellens forudsigelser. Betragt dem som eksempler på hyperparametre, der kan justeres.
I det foregående kapitel blev GridSearchCV
brugt til kun at justere n_neighbors
.
For at søge efter den bedste kombination af n_neighbors
, weights
og p
, kan param_grid
defineres som:
param_grid = {
'n_neighbors': [1, 3, 5, 7],
'weights': ['distance', 'uniform'],
'p': [1, 2]
}
GridSearchCV
afprøver alle mulige kombinationer for at finde den bedste, så den vil afprøve alle disse:
Det øger søgeområdet betydeligt. 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-kombinationer og 5-fold cross-validation bliver modellen trænet og evalueret 500 gange.
For små datasæt er dette håndterbart, men med større datasæt og mere komplekse modeller bliver processen meget langsom.
For at håndtere sådanne tilfælde foretrækkes ofte RandomizedSearchCV
. Den undersøger kun et delmængde af alle mulige kombinationer, hvilket reducerer beregningstiden betydeligt og giver stadig stærke resultater.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Can you explain how RandomizedSearchCV works compared to GridSearchCV?
What are some best practices for choosing hyperparameter ranges?
How do I interpret the results from GridSearchCV or RandomizedSearchCV?
Awesome!
Completion rate improved to 3.13
Fejlen ved GridSearchCV
Stryg for at vise menuen
Før du udforsker GridSearchCV
, er det vigtigt at bemærke, at KNeighborsClassifier
har flere hyperparametre udover n_neighbors
. To af dem er: weights
og p
.
Weights
KNeighborsClassifier
forudsiger ved at finde de k nærmeste naboer og tildele den mest hyppige klasse blandt dem, uanset hvor tæt hver nabo er.
Et alternativ er at vægte naboerne efter deres afstand, hvilket giver mere indflydelse til de nærmeste punkter. Dette gøres med weights='distance'
.
Som standard anvender klassifikatoren weights='uniform'
, hvor alle naboer bidrager lige meget.
P
Hyperparameteren p
definerer, hvordan afstande beregnes:
p=1
: Manhattan-afstand (summen af de absolutte forskelle mellem koordinater);p=2
: Euklidisk afstand (den lige linje-afstand, kendt fra geometri).
En p
-parameter kan antage ethvert positivt heltal. Der findes mange forskellige afstande, men de er sværere at visualisere end p=1
eller p=2
.
Vær ikke bekymret, hvis detaljerne om weights
eller p
er uklare. De introduceres blot for at vise, at der findes mere end én hyperparameter, der kan påvirke modellens forudsigelser. Betragt dem som eksempler på hyperparametre, der kan justeres.
I det foregående kapitel blev GridSearchCV
brugt til kun at justere n_neighbors
.
For at søge efter den bedste kombination af n_neighbors
, weights
og p
, kan param_grid
defineres som:
param_grid = {
'n_neighbors': [1, 3, 5, 7],
'weights': ['distance', 'uniform'],
'p': [1, 2]
}
GridSearchCV
afprøver alle mulige kombinationer for at finde den bedste, så den vil afprøve alle disse:
Det øger søgeområdet betydeligt. 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-kombinationer og 5-fold cross-validation bliver modellen trænet og evalueret 500 gange.
For små datasæt er dette håndterbart, men med større datasæt og mere komplekse modeller bliver processen meget langsom.
For at håndtere sådanne tilfælde foretrækkes ofte RandomizedSearchCV
. Den undersøger kun et delmængde af alle mulige kombinationer, hvilket reducerer beregningstiden betydeligt og giver stadig stærke resultater.
Tak for dine kommentarer!