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 | K-NN-Klassificerare
Klassificering med Python
Avsnitt 1. Kapitel 7
single

single

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

Svep för att visa menyn

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

Ett vanligt tillvägagångssätt ä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 att utföra detta erbjuder sklearn ett smidigt verktyg: klassen GridSearchCV.

GridSearchCV-klass

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

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

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

Du kan komma åt det bästa resultatet med attributet .best_score_ och göra förutsägelser med den optimerade modellen med hjälp av metoden .predict(). På liknande sätt kan du hämta bästa modellen själv med attributet .best_estimator_.

Uppgift

Svep för att börja koda

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 param_grid och 4-faldig korsvalidering, träna det och lagra det i variabeln grid_search.
  • Hämta den bästa modellen från grid_search och lagra den i variabeln best_model.
  • Hämta poängen för den bästa modellen och lagra 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 7
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

some-alt