KNeighborsClassifier
Vid skapandet av den slutliga estimatormodellen i en pipeline valdes modellen KNeighborsClassifier. Detta kapitel ger en kort förklaring av hur algoritmen fungerar.
Hur modeller fungerar är inte ett huvudämne i denna kurs, så det är okej om något känns oklart. Det förklaras mer ingående i andra kurser som Linear Regression with Python eller Classification with Python.
k-Nearest Neighbors
k-NN förutspår klassen för en ny instans genom att titta på dess k mest liknande träningsprover.
KNeighborsClassifier implementerar detta i Scikit-learn.
- För en ny punkt, hitta de k närmaste grannarna med hjälp av likhet i egenskaper.
- Den vanligaste klassen bland dessa blir förutsägelsen.
k är en hyperparameter (standardvärde = 5). Olika värden förändrar modellens beteende, så justering av k är viktigt.
KNeighborsClassifier under .fit()
Till skillnad från många algoritmer lagrar KNeighborsClassifier helt enkelt träningsdatan.
Det är dock nödvändigt att anropa .fit(X, y) så att modellen vet vilket dataset som ska refereras vid prediktion.
KNeighborsClassifier under .predict()
Vid prediktion söker klassificeraren efter varje instans k närmaste grannar. I det visuella exemplet visas endast två egenskaper; att lägga till fler egenskaper förbättrar vanligtvis klass-separation och prediktionsnoggrannhet.
I gif-bilderna ovan används endast två egenskaper, 'body_mass_g' och 'culmen_depth_mm', eftersom det är utmanande att visualisera högdimensionella diagram. Att inkludera ytterligare egenskaper kommer sannolikt att hjälpa modellen att bättre separera de gröna och röda datapunkterna, vilket gör det möjligt för KNeighborsClassifier att göra mer exakta prediktioner.
KNeighborsClassifier Kodexempel
Du kan skapa en klassificerare, träna den och kontrollera dess noggrannhet med .score().
Argumentet n_neighbors styr k—prova både 5 och 1.
12345678910111213import pandas as pd from sklearn.neighbors import KNeighborsClassifier df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_pipelined.csv') # Assign X, y variables (X is already preprocessed and y is already encoded) X, y = df.drop('species', axis=1), df['species'] # Initialize and train a model knn5 = KNeighborsClassifier().fit(X, y) # Trained 5 neighbors model knn1 = KNeighborsClassifier(n_neighbors=1).fit(X, y) # Trained 1 neighbor model # Print the scores of both models print('5 Neighbors score:',knn5.score(X, y)) print('1 Neighbor score:',knn1.score(X, y))
Att använda k=1 kan ge perfekt noggrannhet, men detta är missvisande eftersom utvärderingen gjordes på träningsdata.
För att mäta verklig prestanda, testa alltid modellen på osedd data.
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Can you explain why using k=1 might give perfect accuracy on the training set?
How should I properly evaluate the performance of a k-NN model?
What does the `.score()` method actually measure in this context?
Fantastiskt!
Completion betyg förbättrat till 3.13
KNeighborsClassifier
Svep för att visa menyn
Vid skapandet av den slutliga estimatormodellen i en pipeline valdes modellen KNeighborsClassifier. Detta kapitel ger en kort förklaring av hur algoritmen fungerar.
Hur modeller fungerar är inte ett huvudämne i denna kurs, så det är okej om något känns oklart. Det förklaras mer ingående i andra kurser som Linear Regression with Python eller Classification with Python.
k-Nearest Neighbors
k-NN förutspår klassen för en ny instans genom att titta på dess k mest liknande träningsprover.
KNeighborsClassifier implementerar detta i Scikit-learn.
- För en ny punkt, hitta de k närmaste grannarna med hjälp av likhet i egenskaper.
- Den vanligaste klassen bland dessa blir förutsägelsen.
k är en hyperparameter (standardvärde = 5). Olika värden förändrar modellens beteende, så justering av k är viktigt.
KNeighborsClassifier under .fit()
Till skillnad från många algoritmer lagrar KNeighborsClassifier helt enkelt träningsdatan.
Det är dock nödvändigt att anropa .fit(X, y) så att modellen vet vilket dataset som ska refereras vid prediktion.
KNeighborsClassifier under .predict()
Vid prediktion söker klassificeraren efter varje instans k närmaste grannar. I det visuella exemplet visas endast två egenskaper; att lägga till fler egenskaper förbättrar vanligtvis klass-separation och prediktionsnoggrannhet.
I gif-bilderna ovan används endast två egenskaper, 'body_mass_g' och 'culmen_depth_mm', eftersom det är utmanande att visualisera högdimensionella diagram. Att inkludera ytterligare egenskaper kommer sannolikt att hjälpa modellen att bättre separera de gröna och röda datapunkterna, vilket gör det möjligt för KNeighborsClassifier att göra mer exakta prediktioner.
KNeighborsClassifier Kodexempel
Du kan skapa en klassificerare, träna den och kontrollera dess noggrannhet med .score().
Argumentet n_neighbors styr k—prova både 5 och 1.
12345678910111213import pandas as pd from sklearn.neighbors import KNeighborsClassifier df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_pipelined.csv') # Assign X, y variables (X is already preprocessed and y is already encoded) X, y = df.drop('species', axis=1), df['species'] # Initialize and train a model knn5 = KNeighborsClassifier().fit(X, y) # Trained 5 neighbors model knn1 = KNeighborsClassifier(n_neighbors=1).fit(X, y) # Trained 1 neighbor model # Print the scores of both models print('5 Neighbors score:',knn5.score(X, y)) print('1 Neighbor score:',knn1.score(X, y))
Att använda k=1 kan ge perfekt noggrannhet, men detta är missvisande eftersom utvärderingen gjordes på träningsdata.
För att mäta verklig prestanda, testa alltid modellen på osedd data.
Tack för dina kommentarer!