Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Fejlen ved GridSearchCV | Modellering
ML Introduktion med Scikit-learn

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

Note
Bemærk

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.

question mark

Hovedproblemet med GridSearchCV er, at den afprøver alle mulige kombinationer (af det, der er angivet i param_grid), hvilket kan tage meget lang tid. Er denne påstand korrekt?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 4. Kapitel 7

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Suggested prompts:

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

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

Note
Bemærk

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.

question mark

Hovedproblemet med GridSearchCV er, at den afprøver alle mulige kombinationer (af det, der er angivet i param_grid), hvilket kan tage meget lang tid. Er denne påstand korrekt?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 4. Kapitel 7
some-alt