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 | Sektion
Practice
Projects
Quizzes & Challenges
Quizzer
Challenges
/
Supervised Learning Essentials

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

Opgave

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_grid som en ordbog, 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 20
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

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

Opgave

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_grid som en ordbog, 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 20
single

single

some-alt