Bristen Med GridSearchCV
Innan du använder GridSearchCV, observera att KNeighborsClassifier har fler hyperparametrar än n_neighbors. Två viktiga är weights och p.
Weights
Som standard använder klassificeraren weights='uniform', vilket innebär att alla k grannar röstar lika mycket.
Om weights='distance' anges får närmare grannar större inflytande, vilket ofta förbättrar prediktionerna när närliggande punkter är mer relevanta.
P
Parametern p styr avståndsmåttet:
p=1: Manhattan-avstånd;p=2: Euklidiskt avstånd.
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.
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.
Tidigare justerades endast n_neighbors. För att söka över alla tre hyperparametrar, använd:
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:
Ett större rutnät som:
param_grid = {
'n_neighbors': [...],
'weights': ['distance', 'uniform'],
'p': [1, 2, 3, 4, 5]
}
skapar 100 kombinationer. Med 5-faldig korsvalidering tränas modellen 500 gånger. Detta är acceptabelt för små datamängder, men för större blir det för långsamt.
För att minska beräkningstiden testar RandomizedSearchCV endast en slumpmässig delmängd av kombinationerna, och hittar vanligtvis starka resultat mycket snabbare än en fullständig rutnätssökning.
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Awesome!
Completion rate improved to 3.13
Bristen Med GridSearchCV
Svep för att visa menyn
Innan du använder GridSearchCV, observera att KNeighborsClassifier har fler hyperparametrar än n_neighbors. Två viktiga är weights och p.
Weights
Som standard använder klassificeraren weights='uniform', vilket innebär att alla k grannar röstar lika mycket.
Om weights='distance' anges får närmare grannar större inflytande, vilket ofta förbättrar prediktionerna när närliggande punkter är mer relevanta.
P
Parametern p styr avståndsmåttet:
p=1: Manhattan-avstånd;p=2: Euklidiskt avstånd.
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.
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.
Tidigare justerades endast n_neighbors. För att söka över alla tre hyperparametrar, använd:
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:
Ett större rutnät som:
param_grid = {
'n_neighbors': [...],
'weights': ['distance', 'uniform'],
'p': [1, 2, 3, 4, 5]
}
skapar 100 kombinationer. Med 5-faldig korsvalidering tränas modellen 500 gånger. Detta är acceptabelt för små datamängder, men för större blir det för långsamt.
För att minska beräkningstiden testar RandomizedSearchCV endast en slumpmässig delmängd av kombinationerna, och hittar vanligtvis starka resultat mycket snabbare än en fullständig rutnätssökning.
Tack för dina kommentarer!