Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Bristen Hos Gridsearchcv | Modellering
ML-introduktion Med Scikit-learn

bookBristen Hos Gridsearchcv

Innan du utforskar GridSearchCV är det viktigt att notera att KNeighborsClassifier har flera hyperparametrar utöver n_neighbors. Två av dessa är: weights och p.

Weights

KNeighborsClassifier förutspår genom att hitta de k närmaste grannarna och tilldela den mest frekventa klassen bland dem, oavsett hur nära varje granne är.

Ett alternativ är att vikta grannarna efter deras avstånd, vilket ger mer inflytande till närmare punkter. Detta görs med weights='distance'.

Som standard använder klassificeraren weights='uniform', där alla grannar bidrar lika mycket.

P

Hyperparametern p definierar hur avstånd beräknas:

  • p=1: Manhattan-avstånd (summan av de absoluta skillnaderna mellan koordinater);
  • p=2: Euklidiskt avstånd (fågelvägen, välkänd från geometrin).

En p-parameter kan anta vilket positivt heltal som helst. Det finns många olika avstånd, men de är svårare att visualisera än p=1 eller p=2.

Note
Notera

Oroa dig inte om detaljerna kring weights eller p är oklara. De introduceras enbart för att visa att det finns fler än en hyperparameter som kan påverka modellens prediktioner. Betrakta dem som exempel på hyperparametrar som kan justeras.

I föregående kapitel användes GridSearchCV för att justera endast n_neighbors. För att söka efter bästa kombinationen av n_neighbors, weights och p, kan param_grid definieras som:

param_grid = {
    'n_neighbors': [1, 3, 5, 7],
    'weights': ['distance', 'uniform'],
    'p': [1, 2]
}

GridSearchCV testar alla möjliga kombinationer för att hitta den bästa, så den kommer att prova alla dessa:

Det ökar sökutrymmet avsevärt. Till exempel:

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 hyperparameterkombinationer och 5-faldig korsvalidering tränas och utvärderas modellen 500 gånger.

För små datamängder är detta hanterbart, men med större datamängder och mer komplexa modeller blir processen mycket långsam.

För att hantera sådana fall föredras ofta RandomizedSearchCV. Den utforskar endast en delmängd av alla möjliga kombinationer, vilket minskar beräkningstiden avsevärt samtidigt som starka resultat uppnås.

question mark

Huvudproblemet med GridSearchCV är att den testar alla möjliga kombinationer (av det som anges i param_grid), vilket kan ta mycket tid. Är detta påstående korrekt?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 7

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

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

bookBristen Hos Gridsearchcv

Svep för att visa menyn

Innan du utforskar GridSearchCV är det viktigt att notera att KNeighborsClassifier har flera hyperparametrar utöver n_neighbors. Två av dessa är: weights och p.

Weights

KNeighborsClassifier förutspår genom att hitta de k närmaste grannarna och tilldela den mest frekventa klassen bland dem, oavsett hur nära varje granne är.

Ett alternativ är att vikta grannarna efter deras avstånd, vilket ger mer inflytande till närmare punkter. Detta görs med weights='distance'.

Som standard använder klassificeraren weights='uniform', där alla grannar bidrar lika mycket.

P

Hyperparametern p definierar hur avstånd beräknas:

  • p=1: Manhattan-avstånd (summan av de absoluta skillnaderna mellan koordinater);
  • p=2: Euklidiskt avstånd (fågelvägen, välkänd från geometrin).

En p-parameter kan anta vilket positivt heltal som helst. Det finns många olika avstånd, men de är svårare att visualisera än p=1 eller p=2.

Note
Notera

Oroa dig inte om detaljerna kring weights eller p är oklara. De introduceras enbart för att visa att det finns fler än en hyperparameter som kan påverka modellens prediktioner. Betrakta dem som exempel på hyperparametrar som kan justeras.

I föregående kapitel användes GridSearchCV för att justera endast n_neighbors. För att söka efter bästa kombinationen av n_neighbors, weights och p, kan param_grid definieras som:

param_grid = {
    'n_neighbors': [1, 3, 5, 7],
    'weights': ['distance', 'uniform'],
    'p': [1, 2]
}

GridSearchCV testar alla möjliga kombinationer för att hitta den bästa, så den kommer att prova alla dessa:

Det ökar sökutrymmet avsevärt. Till exempel:

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 hyperparameterkombinationer och 5-faldig korsvalidering tränas och utvärderas modellen 500 gånger.

För små datamängder är detta hanterbart, men med större datamängder och mer komplexa modeller blir processen mycket långsam.

För att hantera sådana fall föredras ofta RandomizedSearchCV. Den utforskar endast en delmängd av alla möjliga kombinationer, vilket minskar beräkningstiden avsevärt samtidigt som starka resultat uppnås.

question mark

Huvudproblemet med GridSearchCV är att den testar alla möjliga kombinationer (av det som anges i param_grid), vilket kan ta mycket tid. Är detta påstående korrekt?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 7
some-alt