Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Uitdaging: Het Beste K-Waarde Kiezen | Sectie
Essentiële Supervised Learning

bookUitdaging: Het Beste K-Waarde Kiezen

Zoals getoond in de vorige hoofdstukken, kunnen de voorspellingen van het model variëren afhankelijk van de waarde van k (het aantal buren). Bij het bouwen van een k-NN-model is het belangrijk om de k-waarde te kiezen die de beste prestaties oplevert.

Een gangbare aanpak is het gebruik van cross-validatie om de modelprestaties te evalueren. U kunt een lus uitvoeren en cross-validatiescores voor een reeks k-waarden berekenen, en vervolgens de waarde met de hoogste score selecteren. Dit is de meest gebruikte methode.

Om dit uit te voeren, biedt sklearn een handig hulpmiddel: de GridSearchCV-klasse.

Constructor:

  • GridSearchCV(estimator, param_grid, scoring, cv = 5)
  • estimator — het modelobject;
  • param_grid — woordenboek met parameterwaarden om te doorzoeken;
    • scoring — de metriek die wordt gebruikt voor de cross-validatiescore;
  • cv — het aantal folds (standaard 5);

Methoden:

  • fit(X, y) — traint de modellen met X, y;
  • predict(X) — voorspelt de klasse voor X;
  • score(X, y) — retourneert de nauwkeurigheid voor de X, y-set;

Attributen:

  • best_estimator_ — object van het model met de hoogste score;
  • best_score_ — de score van de best_estimator_.

De parameter param_grid neemt een woordenboek waarin de sleutels parameternamen zijn en de waarden lijsten met opties om te proberen. Om bijvoorbeeld waarden van 1 tot 99 voor n_neighbors te testen, kunt u het volgende schrijven:

param_grid = {'n_neighbors': range(1, 100)}

Het aanroepen van de .fit(X, y)-methode op het GridSearchCV-object zal het parameterrooster doorzoeken om de beste parameters te vinden en vervolgens het model opnieuw trainen op de volledige dataset met deze beste parameters.

U kunt de beste score opvragen met het .best_score_-attribuut en voorspellingen doen met het geoptimaliseerde model via de .predict()-methode. Op dezelfde manier kunt u het beste model zelf ophalen met het .best_estimator_-attribuut.

Taak

Swipe to start coding

Je krijgt de Star Wars-beoordelingsdataset, opgeslagen als een DataFrame in de variabele df.

  • Initialiseer param_grid als een woordenboek met de parameter n_neighbors en de waarden [3, 9, 18, 27].
  • Maak een GridSearchCV-object aan met param_grid en 4-voudige crossvalidatie, train het en sla het op in de variabele grid_search.
  • Haal het beste model op uit grid_search en sla het op in de variabele best_model.
  • Haal de score van het beste model op en sla deze op in de variabele best_score.

Oplossing

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 20
single

single

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

close

bookUitdaging: Het Beste K-Waarde Kiezen

Veeg om het menu te tonen

Zoals getoond in de vorige hoofdstukken, kunnen de voorspellingen van het model variëren afhankelijk van de waarde van k (het aantal buren). Bij het bouwen van een k-NN-model is het belangrijk om de k-waarde te kiezen die de beste prestaties oplevert.

Een gangbare aanpak is het gebruik van cross-validatie om de modelprestaties te evalueren. U kunt een lus uitvoeren en cross-validatiescores voor een reeks k-waarden berekenen, en vervolgens de waarde met de hoogste score selecteren. Dit is de meest gebruikte methode.

Om dit uit te voeren, biedt sklearn een handig hulpmiddel: de GridSearchCV-klasse.

Constructor:

  • GridSearchCV(estimator, param_grid, scoring, cv = 5)
  • estimator — het modelobject;
  • param_grid — woordenboek met parameterwaarden om te doorzoeken;
    • scoring — de metriek die wordt gebruikt voor de cross-validatiescore;
  • cv — het aantal folds (standaard 5);

Methoden:

  • fit(X, y) — traint de modellen met X, y;
  • predict(X) — voorspelt de klasse voor X;
  • score(X, y) — retourneert de nauwkeurigheid voor de X, y-set;

Attributen:

  • best_estimator_ — object van het model met de hoogste score;
  • best_score_ — de score van de best_estimator_.

De parameter param_grid neemt een woordenboek waarin de sleutels parameternamen zijn en de waarden lijsten met opties om te proberen. Om bijvoorbeeld waarden van 1 tot 99 voor n_neighbors te testen, kunt u het volgende schrijven:

param_grid = {'n_neighbors': range(1, 100)}

Het aanroepen van de .fit(X, y)-methode op het GridSearchCV-object zal het parameterrooster doorzoeken om de beste parameters te vinden en vervolgens het model opnieuw trainen op de volledige dataset met deze beste parameters.

U kunt de beste score opvragen met het .best_score_-attribuut en voorspellingen doen met het geoptimaliseerde model via de .predict()-methode. Op dezelfde manier kunt u het beste model zelf ophalen met het .best_estimator_-attribuut.

Taak

Swipe to start coding

Je krijgt de Star Wars-beoordelingsdataset, opgeslagen als een DataFrame in de variabele df.

  • Initialiseer param_grid als een woordenboek met de parameter n_neighbors en de waarden [3, 9, 18, 27].
  • Maak een GridSearchCV-object aan met param_grid en 4-voudige crossvalidatie, train het en sla het op in de variabele grid_search.
  • Haal het beste model op uit grid_search en sla het op in de variabele best_model.
  • Haal de score van het beste model op en sla deze op in de variabele best_score.

Oplossing

Switch to desktopSchakel over naar desktop voor praktijkervaringGa verder vanaf waar je bent met een van de onderstaande opties
Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 20
single

single

some-alt