Het Gebrek van GridSearchCV
Veeg om het menu te tonen
Voordat je GridSearchCV gebruikt, let op dat KNeighborsClassifier meer hyperparameters heeft dan alleen n_neighbors. Twee belangrijke zijn weights en p.
Weights
Standaard gebruikt de classifier weights='uniform', wat betekent dat alle k buren evenveel stemmen.
Met weights='distance' krijgen dichtere buren meer invloed, wat vaak de voorspellingen verbetert wanneer nabijgelegen punten relevanter zijn.
P
De parameter p bepaalt de afstandsmaat:
p=1: Manhattan-afstand;p=2: Euclidische afstand.
Een p-parameter kan elke positieve integer aannemen. Er bestaan veel verschillende afstanden, maar deze zijn moeilijker te visualiseren dan p=1 of p=2.
Maak je geen zorgen als de details van weights of p onduidelijk zijn. Ze worden alleen geïntroduceerd om te laten zien dat er meer dan één hyperparameter is die de voorspellingen van het model kan beïnvloeden. Zie ze als voorbeelden van hyperparameters die afgestemd kunnen worden.
Eerder werd alleen n_neighbors afgestemd. Om over alle drie de hyperparameters te zoeken, gebruik:
param_grid = {
'n_neighbors': [1, 3, 5, 7],
'weights': ['distance', 'uniform'],
'p': [1, 2]
}
GridSearchCV probeert alle mogelijke combinaties om de beste te vinden, dus het zal al deze proberen:
Een groter raster zoals:
param_grid = {
'n_neighbors': [...],
'weights': ['distance', 'uniform'],
'p': [1, 2, 3, 4, 5]
}
creëert 100 combinaties. Met 5-voudige cross-validatie wordt het model 500 keer getraind. Dit is prima voor kleine datasets, maar voor grotere wordt het te traag.
Om de rekentijd te verkorten, test RandomizedSearchCV slechts een willekeurige subset van combinaties, waardoor doorgaans veel sneller sterke resultaten worden gevonden dan met een volledige grid search.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.