K-nærmeste naboer (KNN) algoritme til maskinindlæring

Madison Schott

Følg

22. april 2019 · 5 min læsning

Del 1 af en serie om introduktionsalgoritmer til maskinindlæring

Hvis du er fortrolig med maskinindlæring og de grundlæggende algoritmer, der er bruges i marken, så har du sandsynligvis hørt om k-nærmeste naboalgoritme eller KNN. Denne algoritme er en af de mere enkle teknikker, der anvendes i maskinindlæring. Det er en metode, der foretrækkes af mange i branchen på grund af dens brugervenlighed og lave beregningstid.

Hvad er KNN? KNN er en model, der klassificerer datapunkter baseret på de punkter, der ligner det mest. Det bruger testdata til at lave et “uddannet gæt” om, hvad et uklassificeret punkt skal klassificeres som.

Fordele:

  • Let at bruge.
  • Hurtig beregningstid.
  • Gør ikke antagelser om dataene.

Ulemper:

  • Nøjagtighed afhænger af kvaliteten af data.
  • Skal finde en optimal k-værdi (antal nærmeste naboer).
  • Dårlig til at klassificere datapunkter i en grænse, hvor de kan klassificeres på en eller anden måde.

KNN er en algoritme, der betragtes som både ikke-parametrisk og et eksempel på doven læring. Hvad betyder disse to udtryk nøjagtigt?

  • Ikke-parametrisk betyder, at det ikke antager nogen antagelser. Modellen består helt af de data, der er givet til den, snarere end at antage, at dens struktur er normal.
  • Lazy learning betyder, at algoritmen ikke giver nogen ge neraliseringer. Dette betyder, at der er lidt træning involveret, når du bruger denne metode. På grund af dette bruges alle træningsdataene også til testning ved brug af KNN.

Hvor skal man bruge KNN

KNN bruges ofte i enkle anbefalingssystemer, image anerkendelsesteknologi og beslutningsmodeller. Det er algoritmen, som virksomheder som Netflix eller Amazon bruger for at anbefale forskellige film at se eller bøger at købe. Netflix lancerede endda Netflix-priskonkurrencen og tildelte 1 million dollars til det hold, der skabte den mest nøjagtige anbefalingsalgoritme!

Du undrer dig måske: “Men hvordan gør disse virksomheder det?” Disse virksomheder anvender KNN på et datasæt, der er indsamlet om de film, du har set, eller de bøger, du har købt på deres hjemmeside. Disse virksomheder indtaster derefter dine tilgængelige kundedata og sammenligner det med andre kunder, der har set lignende film eller købte lignende bøger. Dette datapunkt klassificeres derefter som en bestemt profil baseret på deres fortid ved hjælp af KNN. De anbefalede film og bøger afhænger derefter af, hvordan algoritmen klassificerer datapunktet.

Billedet ovenfor visualiserer, hvordan KNN fungerer, når man prøver at klassificere et datapunkt baseret på et givet datasæt. Det sammenlignes med dets nærmeste punkter og klassificeret ud fra hvilke punkter det er tættest og mest ligner. Her kan du se, at punktet Xj vil blive klassificeret som enten W1 (rød) eller W3 (grøn) baseret på afstanden fra hver gruppe af punkter.

Ma tematik bag KNN

Ligesom næsten alt andet arbejder KNN på grund af de dybt rodfæstede matematiske teorier, den bruger. Ved implementering af KNN er det første trin at omdanne datapunkter til funktionsvektorer eller deres matematiske værdi. Algoritmen fungerer derefter ved at finde afstanden mellem de matematiske værdier for disse punkter. Den mest almindelige måde at finde denne afstand på er den euklidiske afstand, som vist nedenfor.

KNN kører denne formel for at beregne afstanden mellem hvert datapunkt og testdataene. Derefter finder sandsynligheden for, at disse punkter svarer til testdataene og klassificerer dem baseret på hvilke punkter, der har de højeste sandsynligheder.

For at visualisere denne formel ser det ud som dette:

Konklusion

Nu kender du fundamentet for en af de mest basale maskinlæringsalgoritmer .Det er et godt sted at starte, når man først lærer at bygge modeller baseret på forskellige datasæt. Hvis du har et datasæt med mange forskellige punkter og nøjagtige oplysninger, er dette et godt sted at begynde at udforske maskinindlæring med KNN.

Når du ønsker at begynde at bruge denne algoritme, skal du huske disse tre punkter:

  • Find først et datasæt, der er let at arbejde med, ideelt set et med mange forskellige punkter og mærket data.
  • For det andet skal du finde ud af, hvilket sprog der skal være nemmest at bruge til at løse problemet. Jeg er mest fortrolig med at bruge KNN i R, men Python er også et populært sprog hos professionelle inden for maskinindlæring.
  • For det tredje skal du undersøge det. Det er vigtigt at lære de korrekte fremgangsmåder til brug af denne algoritme, så du finder de mest nøjagtige resultater fra dit datasæt.

Der er gennemført forskellige undersøgelser af, hvordan denne algoritme kan forbedres. Disse undersøgelser sigter mod at gøre det, så du kan veje kategorier forskelligt for at gøre en mere nøjagtig klassificering. Vægtningen af disse kategorier varierer afhængigt af, hvordan afstanden beregnes.

Afslutningsvis er dette en grundlæggende maskinlæringsalgoritme, der er pålidelig af mange grunde som brugervenlighed og hurtig beregningstid. Det er en god algoritme, der skal bruges, når man begynder at udforske maskinindlæringens verden, men den har stadig plads til forbedring og modifikation.

Write a Comment

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *