Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Utmaning: Välja det Bästa K-värdet | Sektion
Practice
Projects
Quizzes & Challenges
Frågesporter
Challenges
/
Grunder i Övervakad Inlärning

bookUtmaning: Välja det Bästa K-värdet

Som visats i tidigare kapitel kan modellens prediktioner variera beroende på värdet av k (antalet grannar). Vid konstruktion av en k-NN-modell är det viktigt att välja det k-värde som ger bäst prestanda.

En vanlig metod är att använda korsvalidering för att utvärdera modellens prestanda. Du kan köra en loop och beräkna korsvalideringspoäng för ett intervall av k-värden, och sedan välja det med högst poäng. Detta är den mest använda metoden.

För detta erbjuder sklearn ett praktiskt verktyg: klassen GridSearchCV.

Konstruktor:

  • GridSearchCV(estimator, param_grid, scoring, cv = 5)
  • estimator — modellobjektet;
  • param_grid — ordbok med parametervärden att söka igenom;
  • scoring — metrik som används för korsvalideringspoäng;
  • cv — antal vikningar (5 som standard);

Metoder:

  • fit(X, y) — tränar modellerna med X, y;
  • predict(X) — predicerar klassen för X;
  • score(X, y) — returnerar noggrannheten för X, y-datasetet;

Attribut:

  • best_estimator_ — objekt av modellen med högst poäng;
  • best_score_ — poängen för best_estimator_.

Parametern param_grid tar en ordbok där nycklarna är parameternamn och värdena är listor med alternativ att testa. För att till exempel testa värden från 1 till 99 för n_neighbors kan du skriva:

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

Att anropa metoden .fit(X, y)GridSearchCV-objektet kommer att söka igenom parametergriden för att hitta de bästa parametrarna och sedan träna om modellen på hela datasettet med dessa bästa parametrar.

Du kan komma åt bästa poäng med attributet .best_score_ och göra prediktioner med den optimerade modellen med metoden .predict(). På samma sätt kan du hämta bästa modellen själv med attributet .best_estimator_.

Uppgift

Swipe to start coding

Du har fått Star Wars-betygsdatasetet lagrat som en DataFrame i variabeln df.

  • Initiera param_grid som en ordbok som innehåller parametern n_neighbors med värdena [3, 9, 18, 27].
  • Skapa ett GridSearchCV-objekt med hjälp av param_grid och 4-faldig korsvalidering, träna det och spara det i variabeln grid_search.
  • Hämta den bästa modellen från grid_search och spara den i variabeln best_model.
  • Hämta poängen för den bästa modellen och spara den i variabeln best_score.

Lösning

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 20
single

single

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

close

bookUtmaning: Välja det Bästa K-värdet

Svep för att visa menyn

Som visats i tidigare kapitel kan modellens prediktioner variera beroende på värdet av k (antalet grannar). Vid konstruktion av en k-NN-modell är det viktigt att välja det k-värde som ger bäst prestanda.

En vanlig metod är att använda korsvalidering för att utvärdera modellens prestanda. Du kan köra en loop och beräkna korsvalideringspoäng för ett intervall av k-värden, och sedan välja det med högst poäng. Detta är den mest använda metoden.

För detta erbjuder sklearn ett praktiskt verktyg: klassen GridSearchCV.

Konstruktor:

  • GridSearchCV(estimator, param_grid, scoring, cv = 5)
  • estimator — modellobjektet;
  • param_grid — ordbok med parametervärden att söka igenom;
  • scoring — metrik som används för korsvalideringspoäng;
  • cv — antal vikningar (5 som standard);

Metoder:

  • fit(X, y) — tränar modellerna med X, y;
  • predict(X) — predicerar klassen för X;
  • score(X, y) — returnerar noggrannheten för X, y-datasetet;

Attribut:

  • best_estimator_ — objekt av modellen med högst poäng;
  • best_score_ — poängen för best_estimator_.

Parametern param_grid tar en ordbok där nycklarna är parameternamn och värdena är listor med alternativ att testa. För att till exempel testa värden från 1 till 99 för n_neighbors kan du skriva:

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

Att anropa metoden .fit(X, y)GridSearchCV-objektet kommer att söka igenom parametergriden för att hitta de bästa parametrarna och sedan träna om modellen på hela datasettet med dessa bästa parametrar.

Du kan komma åt bästa poäng med attributet .best_score_ och göra prediktioner med den optimerade modellen med metoden .predict(). På samma sätt kan du hämta bästa modellen själv med attributet .best_estimator_.

Uppgift

Swipe to start coding

Du har fått Star Wars-betygsdatasetet lagrat som en DataFrame i variabeln df.

  • Initiera param_grid som en ordbok som innehåller parametern n_neighbors med värdena [3, 9, 18, 27].
  • Skapa ett GridSearchCV-objekt med hjälp av param_grid och 4-faldig korsvalidering, träna det och spara det i variabeln grid_search.
  • Hämta den bästa modellen från grid_search och spara den i variabeln best_model.
  • Hämta poängen för den bästa modellen och spara den i variabeln best_score.

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 20
single

single

some-alt