Utfordring: Valg av Beste K-Verdi
Som vist i de forrige kapitlene, kan modellens prediksjoner variere avhengig av verdien til k (antall naboer). Når du bygger en k-NN-modell, er det viktig å velge k-verdien som gir best ytelse.
En vanlig tilnærming er å bruke kryssvalidering for å evaluere modellens ytelse. Du kan kjøre en løkke og beregne kryssvalideringsscore for et utvalg av k-verdier, og deretter velge den med høyest score. Dette er den mest brukte metoden.
For å utføre dette tilbyr sklearn et praktisk verktøy: klassen GridSearchCV.
Parameteren param_grid tar et ordbok der nøklene er parameternavn og verdiene er lister med alternativer som skal prøves. For eksempel, for å teste verdier fra 1 til 99 for n_neighbors, kan du skrive:
param_grid = {'n_neighbors': range(1, 100)}
Ved å kalle .fit(X, y)-metoden på GridSearchCV-objektet vil parametergridet bli gjennomgått for å finne de beste parameterne, og deretter trenes modellen på nytt på hele datasettet med disse beste parameterne.
Du kan få tilgang til beste score ved å bruke attributtet .best_score_ og gjøre prediksjoner med den optimaliserte modellen ved å bruke .predict()-metoden. På samme måte kan du hente ut beste modell selv ved å bruke attributtet .best_estimator_.
Swipe to start coding
Du har fått Star Wars-rangeringene lagret som et DataFrame i variabelen df.
- Initialiser
param_gridsom en ordbok som inneholder parameterenn_neighborsmed verdiene[3, 9, 18, 27]. - Opprett et
GridSearchCV-objekt ved å brukeparam_gridmed 4-fold kryssvalidering, tren det, og lagre det i variabelengrid_search. - Hent den beste modellen fra
grid_searchog lagre den i variabelenbest_model. - Hent scoren til den beste modellen og lagre den i variabelen
best_score.
Løsning
Takk for tilbakemeldingene dine!
single
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Awesome!
Completion rate improved to 4.17
Utfordring: Valg av Beste K-Verdi
Sveip for å vise menyen
Som vist i de forrige kapitlene, kan modellens prediksjoner variere avhengig av verdien til k (antall naboer). Når du bygger en k-NN-modell, er det viktig å velge k-verdien som gir best ytelse.
En vanlig tilnærming er å bruke kryssvalidering for å evaluere modellens ytelse. Du kan kjøre en løkke og beregne kryssvalideringsscore for et utvalg av k-verdier, og deretter velge den med høyest score. Dette er den mest brukte metoden.
For å utføre dette tilbyr sklearn et praktisk verktøy: klassen GridSearchCV.
Parameteren param_grid tar et ordbok der nøklene er parameternavn og verdiene er lister med alternativer som skal prøves. For eksempel, for å teste verdier fra 1 til 99 for n_neighbors, kan du skrive:
param_grid = {'n_neighbors': range(1, 100)}
Ved å kalle .fit(X, y)-metoden på GridSearchCV-objektet vil parametergridet bli gjennomgått for å finne de beste parameterne, og deretter trenes modellen på nytt på hele datasettet med disse beste parameterne.
Du kan få tilgang til beste score ved å bruke attributtet .best_score_ og gjøre prediksjoner med den optimaliserte modellen ved å bruke .predict()-metoden. På samme måte kan du hente ut beste modell selv ved å bruke attributtet .best_estimator_.
Swipe to start coding
Du har fått Star Wars-rangeringene lagret som et DataFrame i variabelen df.
- Initialiser
param_gridsom en ordbok som inneholder parameterenn_neighborsmed verdiene[3, 9, 18, 27]. - Opprett et
GridSearchCV-objekt ved å brukeparam_gridmed 4-fold kryssvalidering, tren det, og lagre det i variabelengrid_search. - Hent den beste modellen fra
grid_searchog lagre den i variabelenbest_model. - Hent scoren til den beste modellen og lagre den i variabelen
best_score.
Løsning
Takk for tilbakemeldingene dine!
single