Del 1 av en serie om inledande maskininlärningsalgoritmer
Om du känner till maskininlärning och de grundläggande algoritmer som är används i fältet har du nog hört talas om k-närmaste grannalgoritm, eller KNN. Denna algoritm är en av de enklare teknikerna som används vid maskininlärning. Det är en metod som många föredrar i branschen på grund av dess användarvänlighet och låga beräkningstid.
Vad är KNN? KNN är en modell som klassificerar datapunkter baserat på de punkter som mest liknar den. Den använder testdata för att göra en ”utbildad gissning” om vad en oklassificerad punkt ska klassificeras som.
Fördelar:
- Enkel att använda.
- Snabb beräkningstid.
- Antar inte uppgifterna.
Nackdelar:
- Noggrannhet beror på kvaliteten på data.
- Måste hitta ett optimalt k-värde (antal närmaste grannar).
- Dåligt för att klassificera datapunkter i en gräns där de kan klassificeras på ett eller annat sätt.
KNN är en algoritm som anses vara både icke-parametrisk och ett exempel på lat lärande. Vad betyder dessa två termer exakt?
- Icke-parametrisk betyder att det inte antar några antaganden. Modellen består helt av de uppgifter som ges till den snarare än att anta att dess struktur är normal.
- Lata lärande innebär att algoritmen inte gör någon ge neraliseringar. Detta innebär att det är lite träning involverat när man använder denna metod. På grund av detta används all träningsdata också vid testning vid användning av KNN.
Var ska man använda KNN
KNN används ofta i enkla rekommendationssystem, bild erkännande teknik och beslutsfattande modeller. Det är algoritmföretagen som Netflix eller Amazon använder för att rekommendera olika filmer att titta på eller böcker att köpa. Netflix lanserade till och med Netflix-pristävlingen och delade ut 1 miljon dollar till det team som skapade den mest exakta rekommendationsalgoritmen!
Du undrar kanske: ”Men hur gör de här företagen?” De här företagen kommer att tillämpa KNN på en datauppsättning som samlats in om filmerna du har tittat på eller de böcker du har köpt på deras hemsida. Dessa företag kommer då att mata in din tillgängliga kundinformation och jämföra den med andra kunder som har sett liknande filmer. eller köpte liknande böcker. Denna datapunkt klassificeras sedan som en viss profil baserat på deras förflutna med hjälp av KNN. De filmer och böcker som rekommenderas beror sedan på hur algoritmen klassificerar den datapunkten.
Bilden ovan visualiserar hur KNN fungerar när man försöker klassificera en datapunkt baserat på en given datamängd. Den jämförs med närmaste punkter och klassificeras baserat på vilka punkter det är närmast och mest liknar. Här kan du se punkten Xj kommer att klassificeras som antingen W1 (röd) eller W3 (grön) baserat på dess avstånd från varje grupp av punkter.
Ma tematik bakom KNN
Precis som nästan allt annat, fungerar KNN på grund av de djupt rotade matematiska teorier som den använder. Vid implementering av KNN är det första steget att omvandla datapunkter till funktionsvektorer eller deras matematiska värde. Algoritmen fungerar sedan genom att hitta avståndet mellan de matematiska värdena för dessa punkter. Det vanligaste sättet att hitta detta avstånd är det euklidiska avståndet, som visas nedan.
KNN kör denna formel för att beräkna avståndet mellan varje datapunkt och testdata. Den finner sedan sannolikheten för att dessa punkter liknar testdata och klassificerar den baserat på vilka poäng som har de högsta sannolikheterna.
För att visualisera denna formel skulle det se ut så här:
Slutsats
Nu vet du grunderna i en av de mest grundläggande maskininlärningsalgoritmerna .Det är ett bra ställe att börja när man först lär sig bygga modeller baserade på olika datamängder. Om du har en datamängd med många olika punkter och korrekt information är det här ett utmärkt ställe att börja utforska maskininlärning med KNN på.
När du vill börja använda denna algoritm, tänk på dessa tre punkter:
- Hitta först en datamängd som är lätt att arbeta med, helst en med många olika punkter och märkta data.
- För det andra, ta reda på vilket språk som kommer att vara lättast att använda för att lösa problemet. Jag är mest bekant med att använda KNN i R, men Python är också ett populärt språk bland maskininlärningspersonal.
- För det tredje, gör din forskning. Det är viktigt att lära sig de rätta metoderna för att använda denna algoritm så att du hittar de mest exakta resultaten från din datamängd.
Det har gjorts olika studier om hur denna algoritm kan förbättras. Dessa studier syftar till att göra det så att du kan väga kategorier olika för att göra en mer exakt klassificering. Viktningen av dessa kategorier varierar beroende på hur avståndet beräknas.
Sammanfattningsvis är detta en grundläggande maskininlärningsalgoritm som är pålitlig av många skäl som användarvänlighet och snabb beräkningstid. Det är en bra algoritm att använda när man börjar utforska maskininlärningsvärlden, men det har fortfarande utrymme för förbättringar och modifiering.