Knn i Sklearn

Knn i Sklearn

“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

    • En enkel algoritme som bare bruker avstandsfunksjonen og verdien av K (det rare heltallet) (Euclidean, som nevnt i dag).
    • Det er en tilnærming som er effektiv for bittesmå datasett.
    • Benytt deg av “lat læring.”Dette gjør det raskere enn støttevektormaskiner (SVMS) og lineær regresjon fordi treningsdatasettet holdes og brukes når du gjør spådommer.

Ulemper

    • Behandle store datasett tar lengre tid.
    • Oppfordringer om skalering av funksjoner og unnlatelse av å gjøre det vil føre til unøyaktige projeksjoner.
    • Støyende data kan føre til at data blir over- eller under montert.

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.