Svagheden ved GridSearchCV
Stryg for at vise menuen
Før du bruger GridSearchCV, skal du bemærke, at KNeighborsClassifier har flere hyperparametre end n_neighbors. To vigtige er weights og p.
Vægte
Som standard bruger klassifikatoren weights='uniform', hvilket betyder, at alle k naboer stemmer lige meget.
Indstillingen weights='distance' giver tættestliggende naboer mere indflydelse, hvilket ofte forbedrer forudsigelser, når nærliggende punkter er mere relevante.
P
Parameteren p styrer afstandsmetrikken:
p=1: Manhattan-afstand;p=2: Euklidisk afstand.
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 er blot introduceret for at vise, at der findes mere end én hyperparameter, som kan påvirke modellens forudsigelser. Betragt dem som eksempler på hyperparametre, der kan justeres.
Tidligere blev kun n_neighbors justeret. For at søge over alle tre hyperparametre, anvendes:
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 prøve alle disse:
Et større grid som:
param_grid = {
'n_neighbors': [...],
'weights': ['distance', 'uniform'],
'p': [1, 2, 3, 4, 5]
}
skaber 100 kombinationer. Med 5-fold cross-validation bliver modellen trænet 500 gange. Dette er fint for små datasæt, men for større bliver det for langsomt.
For at reducere beregningstiden tester RandomizedSearchCV kun et tilfældigt delmængde af kombinationer, hvilket normalt giver stærke resultater meget hurtigere end et fuldt grid search.
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