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

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. Det går att 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.

param_grid-parametern tar en dictionary där nycklarna är parameternamn och värdena är listor med alternativ att testa. För att exempelvis 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 .fit(X, y)-metoden på GridSearchCV-objektet kommer parametergriden att genomsökas för att hitta de bästa parametrarna och därefter tränas modellen om 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 hjälp av .predict()-metoden. 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 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 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

close

Awesome!

Completion rate improved to 4.17

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. Det går att 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.

param_grid-parametern tar en dictionary där nycklarna är parameternamn och värdena är listor med alternativ att testa. För att exempelvis 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 .fit(X, y)-metoden på GridSearchCV-objektet kommer parametergriden att genomsökas för att hitta de bästa parametrarna och därefter tränas modellen om 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 hjälp av .predict()-metoden. 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 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 7
single

single

some-alt