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 bedst ydeevne.
En almindelig tilgang er at anvende krydsvalidering til at evaluere modellens ydeevne. Det er muligt at 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.
Konstruktør:
GridSearchCV(estimator, param_grid, scoring, cv = 5)estimator— modelobjektet;param_grid— ordbog med parameterværdier, der skal afprøves;scoring— metrikken, der anvendes til krydsvalideringsscore;cv— antal fold (5 som standard);
Metoder:
fit(X, y)— træner modellerne ved brug af X, y;predict(X)— forudsiger klassen for X;score(X, y)— returnerer nøjagtigheden for X, y sættet;
Attributter:
best_estimator_— objekt for modellen med højeste score;best_score_— scoren forbest_estimator_.
Parameteren param_grid tager en ordbog, 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 følgende skrives:
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.
Det er muligt at tilgå bedste score ved hjælp af attributten .best_score_ og foretage forudsigelser med den optimerede model ved brug af .predict()-metoden. Ligeledes kan bedste model selv hentes via attributten .best_estimator_.
Swipe to start coding
Du har fået tildelt Star Wars-bedømmelsesdatasættet, som er gemt som en DataFrame i variablen df.
- Initialiser
param_gridsom en ordbog, 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