“En antagelse blir gjort av KNN -algoritmen om at nye data og eksisterende data er sammenlignbare. Det benytter seg av nærmeste naboer for dette for dette. Denne artikkelen vil diskutere KNN -algoritmen og Sklearns implementering.”
Hva er KNN?
Denne algoritmen bruker merkede data fordi den er en overvåket maskinlæringsmodell. Plasseringen av det nye datapunktets nærmeste "K" antall naboer bestemmer hvordan KNN -algoritmen kategoriserer den. Euklidisk avstand brukes til å oppnå dette. Formelen for den euklidiske avstanden mellom to punkter (a, b) og (x, y) er √ (a-x)2 + (av)2.
Hvor brukes KNN?
KNN kan brukes til å takle en rekke problemer. For eksempel kan et nytt poeng kategoriseres ganske enkelt ved å se på klassen til de nærmeste naboene. De mest sammenlignbare dokumentene til et gitt dokument finner du ved hjelp av KNN for å se etter plagiering, oppdage speil osv. KNN kan brukes i anbefalingssystemer for å identifisere produkter som er mest som et produkt en bruker ikke har evaluert, og deretter bestemme om brukeren vil glede seg over det eller ikke. Det er mange andre applikasjoner, inkludert klyngemetoder, der du kan bruke dem.
Fordeler og ulemper med KNN?
Fordeler
Ulemper
Implementering av KNN i Sklearn
Importere de nødvendige metodene og klassene
Fra Sklearn.Ensemble Import RandomForestClassifier
Fra Sklearn.Datasett importerer make_classification
Fra Sklearn.Naboer importerer KneighborsClassifier
Opprette datasettet
X, y = make_classification (n_samples = 500, n_features = 4, n_informative = 2, n_redundant = 0, random_state = 0, shuffle = falsk)
trykk ('funksjoner er')
trykk (x)
trykk ('Etiketter er')
trykk (y)
Produksjon
Funksjoner er
Array ([[0.44229321, 0.08089276, 0.54077359, -1.81807763],
[ 1.34699113, 1.48361993, -0.04932407, 0.2390336],
[-0.54639809, -1.1629494, -1.00033035, 1.67398571],
.. ,
[0.8903941, 1.08980087, -1.53292105, -1.71197016],
[0.73135482, 1.25041511, 0.04613506, -0.95837448],
[0.26852399, 1.70213738, -0.08081161, -0.70385904]])
Etiketter er
Array ([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])
Lage modellen og lage spådommer
Model = KneighborsClassifier (n_neighbors = 5)
modell.passform (x, y)
trykk (modell.forutsi ([[0.5, 0.3, 0.2, 0.1]]))
trykk (modell.forutsi_proba ([[0.5, 0.3, 0.2, 0.1]]))
Produksjon
[0]
[[0.8 0.2]]
Konklusjon
Vi diskuterte KNN -algoritmen, som er en overvåket maskinlæringsalgoritme. Vi så hvor det kan være nyttig eller kan mislykkes. Senere diskuterte vi også implementeringen i Sklearn Python.