single
Udfordring: Valg af den Bedste K-værdi
Stryg for at vise menuen
Som vist i de foregående kapitler, kan modellens forudsigelser variere afhængigt af værdien af k (antallet af naboer). Når der opbygges en k-NN-model, er det vigtigt at vælge den k-værdi, der giver den bedste ydeevne.
En almindelig tilgang er at anvende krydsvalidering til at evaluere modellens ydeevne. Du kan køre et loop og beregne krydsvalideringsscore for et interval af k-værdier, og derefter vælge den med den højeste score. Dette er den mest udbredte metode.
Til dette formål tilbyder sklearn et praktisk værktøj: klassen GridSearchCV.
Parameteren param_grid tager et dictionary, hvor nøglerne er parameternavne og værdierne er lister over muligheder, der skal afprøves. For eksempel, for at teste værdier fra 1 til 99 for n_neighbors, kan du skrive:
param_grid = {'n_neighbors': range(1, 100)}
Ved at kalde .fit(X, y)-metoden på GridSearchCV-objektet vil parametergridet blive gennemgået for at finde de bedste parametre, hvorefter modellen gen-trænes på hele datasættet med disse bedste parametre.
Du kan tilgå den bedste score via attributten .best_score_ og lave forudsigelser med den optimerede model ved hjælp af .predict()-metoden. Tilsvarende kan du hente den bedste model selv ved at bruge attributten .best_estimator_.
Swipe to start coding
Du har fået Star Wars-bedømmelsesdatasættet, som er gemt som en DataFrame i variablen df.
- Initialiser
param_gridsom et dictionary, der indeholder parameterenn_neighborsmed værdierne[3, 9, 18, 27]. - Opret et
GridSearchCV-objekt ved hjælp afparam_gridmed 4-fold krydsvalidering, træn det, og gem det i variablengrid_search. - Hent den bedste model fra
grid_searchog gem den i variablenbest_model. - Hent scoren for den bedste model og gem den i variablen
best_score.
Løsning
Tak for dine kommentarer!
single
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