K-nærmeste nabo-klassifikator
Når den endelige estimatoren ble opprettet i en pipeline, ble den valgte modellen KNeighborsClassifier. Dette kapittelet gir en kort forklaring på hvordan algoritmen fungerer.
Hvordan modeller fungerer er ikke hovedtemaet i dette kurset, så det er greit om noe virker uklart for deg. Dette forklares mer detaljert i andre kurs som Linear Regression with Python eller Classification with Python.
k-Nærmeste naboer
k-NN predikerer klassen til en ny instans ved å se på dens k mest like treningsprøver.
KNeighborsClassifier implementerer dette i Scikit-learn.
- For et nytt punkt, finn de k nærmeste naboene ved hjelp av likhet i egenskaper.
- Den mest vanlige klassen blant dem blir prediksjonen.
k er en hyperparameter (standard = 5). Ulike verdier endrer modellens oppførsel, så justering av k er viktig.
KNeighborsClassifier under .fit()
I motsetning til mange algoritmer, lagrer KNeighborsClassifier kun treningsdataene.
Det er likevel nødvendig å kalle .fit(X, y) slik at modellen vet hvilket datasett den skal referere til under prediksjon.
KNeighborsClassifier under .predict()
Under prediksjon søker klassifisereren etter k nærmeste naboer for hver instans. I det visuelle eksempelet vises kun to egenskaper; å legge til flere egenskaper forbedrer vanligvis klasseseparasjon og prediksjonsnøyaktighet.
I gifene ovenfor brukes kun to egenskaper, 'body_mass_g' og 'culmen_depth_mm', fordi det er utfordrende å visualisere plott i høyere dimensjoner. Å inkludere flere egenskaper vil sannsynligvis hjelpe modellen med å skille bedre mellom de grønne og røde datapunktene, slik at KNeighborsClassifier kan gi mer nøyaktige prediksjoner.
KNeighborsClassifier kodeeksempel
Du kan opprette en klassifiseringsmodell, trene den og sjekke nøyaktigheten ved å bruke .score().
Argumentet n_neighbors styrer k—prøv både 5 og 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))
Å bruke k=1 kan gi perfekt nøyaktighet, men dette er misvisende fordi evalueringen ble utført på treningssettet.
For å måle reell ytelse, test alltid modellen på usette data.
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Awesome!
Completion rate improved to 3.13
K-nærmeste nabo-klassifikator
Sveip for å vise menyen
Når den endelige estimatoren ble opprettet i en pipeline, ble den valgte modellen KNeighborsClassifier. Dette kapittelet gir en kort forklaring på hvordan algoritmen fungerer.
Hvordan modeller fungerer er ikke hovedtemaet i dette kurset, så det er greit om noe virker uklart for deg. Dette forklares mer detaljert i andre kurs som Linear Regression with Python eller Classification with Python.
k-Nærmeste naboer
k-NN predikerer klassen til en ny instans ved å se på dens k mest like treningsprøver.
KNeighborsClassifier implementerer dette i Scikit-learn.
- For et nytt punkt, finn de k nærmeste naboene ved hjelp av likhet i egenskaper.
- Den mest vanlige klassen blant dem blir prediksjonen.
k er en hyperparameter (standard = 5). Ulike verdier endrer modellens oppførsel, så justering av k er viktig.
KNeighborsClassifier under .fit()
I motsetning til mange algoritmer, lagrer KNeighborsClassifier kun treningsdataene.
Det er likevel nødvendig å kalle .fit(X, y) slik at modellen vet hvilket datasett den skal referere til under prediksjon.
KNeighborsClassifier under .predict()
Under prediksjon søker klassifisereren etter k nærmeste naboer for hver instans. I det visuelle eksempelet vises kun to egenskaper; å legge til flere egenskaper forbedrer vanligvis klasseseparasjon og prediksjonsnøyaktighet.
I gifene ovenfor brukes kun to egenskaper, 'body_mass_g' og 'culmen_depth_mm', fordi det er utfordrende å visualisere plott i høyere dimensjoner. Å inkludere flere egenskaper vil sannsynligvis hjelpe modellen med å skille bedre mellom de grønne og røde datapunktene, slik at KNeighborsClassifier kan gi mer nøyaktige prediksjoner.
KNeighborsClassifier kodeeksempel
Du kan opprette en klassifiseringsmodell, trene den og sjekke nøyaktigheten ved å bruke .score().
Argumentet n_neighbors styrer k—prøv både 5 og 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))
Å bruke k=1 kan gi perfekt nøyaktighet, men dette er misvisende fordi evalueringen ble utført på treningssettet.
For å måle reell ytelse, test alltid modellen på usette data.
Takk for tilbakemeldingene dine!