K-nærmeste naboer (KNN) -algoritme for maskinlæring

Madison Schott

Følg

22. april 2019 · 5 min lese

Del 1 av en serie om innledende maskinlæringsalgoritmer

Hvis du er kjent med maskinlæring og de grunnleggende algoritmene som er brukt i feltet, så har du sannsynligvis hørt om k-nærmeste naboalgoritme, eller KNN. Denne algoritmen er en av de mer enkle teknikkene som brukes i maskinlæring. Det er en metode som foretrekkes av mange i bransjen på grunn av brukervennligheten og den lave beregningstiden.

Hva er KNN? KNN er en modell som klassifiserer datapunkter basert på punktene som ligner mest på det. Den bruker testdata for å lage et «utdannet gjetning» om hva et uklassifisert punkt skal klassifiseres som.

Fordeler:

  • Enkel å bruke.
  • Rask beregningstid.
  • Gjør ikke antakelser om dataene.

Ulemper:

  • Nøyaktighet avhenger av kvaliteten på data.
  • Må finne en optimal k-verdi (antall nærmeste naboer).
  • Dårlig til å klassifisere datapunkter i en grense der de kan klassifiseres på en eller annen måte.

KNN er en algoritme som betraktes som både ikke-parametrisk og et eksempel på lat læring. Hva betyr disse to begrepene nøyaktig?

  • Ikke-parametrisk betyr at den ikke antar noen forutsetninger. Modellen består helt av dataene som er gitt til den i stedet for å anta at strukturen er normal.
  • Lat læring betyr at algoritmen ikke gir noen ge neraliseringer. Dette betyr at det er lite trening involvert når du bruker denne metoden. På grunn av dette blir alle opplæringsdataene også brukt i testing når du bruker KNN.

Hvor skal man bruke KNN

KNN brukes ofte i enkle anbefalingssystemer, image anerkjennelsesteknologi og beslutningsmodeller. Det er algoritmeselskapene som Netflix eller Amazon bruker for å anbefale forskjellige filmer å se eller bøker å kjøpe. Netflix lanserte til og med Netflix Prize-konkurransen og tildelte 1 million dollar til teamet som opprettet den mest nøyaktige anbefalingsalgoritmen!

Du lurer kanskje på: «Men hvordan gjør disse selskapene dette?» Disse selskapene vil bruke KNN på et datasett samlet om filmene du har sett eller bøkene du har kjøpt på deres nettside. Disse selskapene vil da legge inn tilgjengelige kundedata og sammenligne det med andre kunder som har sett lignende filmer. eller kjøpte lignende bøker. Dette datapunktet blir deretter klassifisert som en bestemt profil basert på deres fortid ved bruk av KNN. Filmene og bøkene som anbefales, vil da avhenge av hvordan algoritmen klassifiserer datapunktet. «>

Bildet ovenfor visualiserer hvordan KNN fungerer når du prøver å klassifisere et datapunkt basert på et gitt datasett. Det sammenlignes med dets nærmeste punkter og klassifisert basert på hvilke punkter det er nærmest og mest lik. Her kan du se punktet Xj vil bli klassifisert som enten W1 (rød) eller W3 (grønn) basert på avstanden fra hver gruppe av punkter.

Ma tematikk bak KNN

Akkurat som nesten alt annet, fungerer KNN på grunn av de dypt forankrede matematiske teoriene den bruker. Når du implementerer KNN, er det første trinnet å transformere datapunkter til funksjonsvektorer, eller deres matematiske verdi. Algoritmen fungerer da ved å finne avstanden mellom de matematiske verdiene til disse punktene. Den vanligste måten å finne denne avstanden er den euklidiske avstanden, som vist nedenfor.

KNN kjører denne formelen for å beregne avstanden mellom hvert datapunkt og testdataene. Deretter finner sannsynligheten for at disse punktene ligner testdataene og klassifiserer den basert på hvilke poeng som har størst sannsynlighet.

For å visualisere denne formelen, vil det se ut slik:

Konklusjon

Nå vet du det grunnleggende i en av de mest grunnleggende maskinlæringsalgoritmene .Det er et flott sted å begynne når du først lærer å bygge modeller basert på forskjellige datasett. Hvis du har et datasett med mange forskjellige punkter og nøyaktig informasjon, er dette et flott sted å begynne å utforske maskinlæring med KNN.

Når du ønsker å begynne å bruke denne algoritmen, må du huske på disse tre punktene:

  • Finn først et datasett som vil være enkelt å jobbe med, ideelt sett ett med mange forskjellige punkter og merkede data.
  • For det andre, finn ut hvilket språk som vil være enklest å bruke for å løse problemet. Jeg er mest kjent med å bruke KNN i R, men Python er også et populært språk blant maskinlæringsfagfolk.
  • For det tredje, gjør din forskning. Det er viktig å lære riktig praksis for bruk av denne algoritmen, slik at du finner de mest nøyaktige resultatene fra datasettet.

Det har blitt utført forskjellige studier på hvordan denne algoritmen kan forbedres. Disse studiene tar sikte på å gjøre det slik at du kan veie kategorier forskjellig for å lage en mer nøyaktig klassifisering. Vekten av disse kategoriene varierer avhengig av hvordan avstanden beregnes.

Avslutningsvis er dette en grunnleggende maskinlæringsalgoritme som er pålitelig av mange grunner som brukervennlighet og rask beregningstid. Det er en god algoritme å bruke når du begynner å utforske maskinlæringens verden, men den har fortsatt rom for forbedring og modifisering.

Write a Comment

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *