Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Udfordring: Valg af den Bedste K-værdi | K-NN-Klassifikator
Klassifikation med Python

bookUdfordring: Valg af den Bedste K-værdi

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_.

Opgave

Swipe to start coding

Du har fået Star Wars-bedømmelsesdatasættet, som er gemt som en DataFrame i variablen df.

  • Initialiser param_grid som et dictionary, der indeholder parameteren n_neighbors med værdierne [3, 9, 18, 27].
  • Opret et GridSearchCV-objekt ved hjælp af param_grid med 4-fold krydsvalidering, træn det, og gem det i variablen grid_search.
  • Hent den bedste model fra grid_search og gem den i variablen best_model.
  • Hent scoren for den bedste model og gem den i variablen best_score.

Løsning

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 7
single

single

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

close

Awesome!

Completion rate improved to 4.17

bookUdfordring: 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_.

Opgave

Swipe to start coding

Du har fået Star Wars-bedømmelsesdatasættet, som er gemt som en DataFrame i variablen df.

  • Initialiser param_grid som et dictionary, der indeholder parameteren n_neighbors med værdierne [3, 9, 18, 27].
  • Opret et GridSearchCV-objekt ved hjælp af param_grid med 4-fold krydsvalidering, træn det, og gem det i variablen grid_search.
  • Hent den bedste model fra grid_search og gem den i variablen best_model.
  • Hent scoren for den bedste model og gem den i variablen best_score.

Løsning

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 7
single

single

some-alt