KNeighborsClassifier
Bij het creëren van de uiteindelijke estimator in een pipeline is het gekozen model KNeighborsClassifier. Dit hoofdstuk geeft een korte uitleg over hoe het algoritme werkt.
Hoe modellen werken is geen hoofdonderwerp van deze cursus, dus het is niet erg als iets onduidelijk lijkt. Dit wordt uitgebreider uitgelegd in andere cursussen zoals Linear Regression with Python of Classification with Python.
k-Nearest Neighbors
k-NN voorspelt de klasse van een nieuw voorbeeld door te kijken naar de k meest vergelijkbare trainingsvoorbeelden.
KNeighborsClassifier implementeert dit in Scikit-learn.
- Zoek voor een nieuw punt de k dichtstbijzijnde buren op basis van gelijkenis in kenmerken.
- De meest voorkomende klasse onder deze buren wordt de voorspelling.
k is een hyperparameter (standaard = 5). Verschillende waarden veranderen het gedrag van het model, dus het afstemmen van k is belangrijk.
KNeighborsClassifier tijdens .fit()
In tegenstelling tot veel algoritmen slaat KNeighborsClassifier eenvoudigweg de trainingsgegevens op.
Toch is het aanroepen van .fit(X, y) vereist zodat het model weet naar welke dataset verwezen moet worden tijdens het voorspellen.
KNeighborsClassifier tijdens .predict()
Tijdens het voorspellen zoekt de classifier voor elk voorbeeld de k dichtstbijzijnde buren. In het visuele voorbeeld worden slechts twee features getoond; het toevoegen van meer features verbetert doorgaans de scheiding tussen klassen en de nauwkeurigheid van voorspellingen.
In de bovenstaande gifs worden slechts twee features, 'body_mass_g' en 'culmen_depth_mm', gebruikt omdat het visualiseren van plots met hogere dimensies lastig is. Het toevoegen van extra features zal het model waarschijnlijk helpen om de groene en rode datapunten beter te scheiden, waardoor de KNeighborsClassifier nauwkeurigere voorspellingen kan doen.
KNeighborsClassifier Codevoorbeeld
Een classifier aanmaken, trainen en de nauwkeurigheid controleren met .score().
Het argument n_neighbors bepaalt k—probeer zowel 5 als 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))
Het gebruik van k=1 kan een perfecte nauwkeurigheid opleveren, maar dit is misleidend omdat de evaluatie is uitgevoerd op de trainingsset.
Om de werkelijke prestaties te meten, het model altijd testen op onbekende data.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Awesome!
Completion rate improved to 3.13
KNeighborsClassifier
Veeg om het menu te tonen
Bij het creëren van de uiteindelijke estimator in een pipeline is het gekozen model KNeighborsClassifier. Dit hoofdstuk geeft een korte uitleg over hoe het algoritme werkt.
Hoe modellen werken is geen hoofdonderwerp van deze cursus, dus het is niet erg als iets onduidelijk lijkt. Dit wordt uitgebreider uitgelegd in andere cursussen zoals Linear Regression with Python of Classification with Python.
k-Nearest Neighbors
k-NN voorspelt de klasse van een nieuw voorbeeld door te kijken naar de k meest vergelijkbare trainingsvoorbeelden.
KNeighborsClassifier implementeert dit in Scikit-learn.
- Zoek voor een nieuw punt de k dichtstbijzijnde buren op basis van gelijkenis in kenmerken.
- De meest voorkomende klasse onder deze buren wordt de voorspelling.
k is een hyperparameter (standaard = 5). Verschillende waarden veranderen het gedrag van het model, dus het afstemmen van k is belangrijk.
KNeighborsClassifier tijdens .fit()
In tegenstelling tot veel algoritmen slaat KNeighborsClassifier eenvoudigweg de trainingsgegevens op.
Toch is het aanroepen van .fit(X, y) vereist zodat het model weet naar welke dataset verwezen moet worden tijdens het voorspellen.
KNeighborsClassifier tijdens .predict()
Tijdens het voorspellen zoekt de classifier voor elk voorbeeld de k dichtstbijzijnde buren. In het visuele voorbeeld worden slechts twee features getoond; het toevoegen van meer features verbetert doorgaans de scheiding tussen klassen en de nauwkeurigheid van voorspellingen.
In de bovenstaande gifs worden slechts twee features, 'body_mass_g' en 'culmen_depth_mm', gebruikt omdat het visualiseren van plots met hogere dimensies lastig is. Het toevoegen van extra features zal het model waarschijnlijk helpen om de groene en rode datapunten beter te scheiden, waardoor de KNeighborsClassifier nauwkeurigere voorspellingen kan doen.
KNeighborsClassifier Codevoorbeeld
Een classifier aanmaken, trainen en de nauwkeurigheid controleren met .score().
Het argument n_neighbors bepaalt k—probeer zowel 5 als 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))
Het gebruik van k=1 kan een perfecte nauwkeurigheid opleveren, maar dit is misleidend omdat de evaluatie is uitgevoerd op de trainingsset.
Om de werkelijke prestaties te meten, het model altijd testen op onbekende data.
Bedankt voor je feedback!