Deel 1 van een serie over inleidende machine learning-algoritmen
Als u bekend bent met machine learning en de basisalgoritmen die gebruikt in het veld, dan heb je waarschijnlijk wel gehoord van het k-dichtstbijzijnde buren-algoritme, of KNN. Dit algoritme is een van de eenvoudigere technieken die bij machine learning worden gebruikt. Het is een methode die door velen in de branche de voorkeur heeft vanwege het gebruiksgemak en de korte rekentijd.
Wat is KNN? KNN is een model dat datapunten classificeert op basis van de punten die er het meest op lijken. Het gebruikt testgegevens om een ‘gefundeerde schatting’ te maken over hoe een niet-geclassificeerd punt moet worden geclassificeerd.
Voordelen:
- Gemakkelijk te gebruiken.
- Snelle rekentijd.
- Maakt geen aannames over de gegevens.
Nadelen:
- Nauwkeurigheid hangt af van de kwaliteit van de gegevens.
- Moet een optimale k-waarde vinden (aantal dichtstbijzijnde buren).
- Slecht in het classificeren van gegevenspunten in een grens waar ze op de een of andere manier kunnen worden geclassificeerd.
KNN is een algoritme dat zowel als niet-parametrisch wordt beschouwd als een voorbeeld van lui leren. Wat betekenen deze twee termen precies?
- Niet-parametrisch betekent dat het geen aannames doet. Het model bestaat volledig uit de gegeven gegevens in plaats van aan te nemen dat de structuur normaal is.
- Lazy learning betekent dat het algoritme niets oplevert generalisaties. Dit betekent dat er bij het gebruik van deze methode weinig training nodig is. Hierdoor worden alle trainingsgegevens ook gebruikt bij het testen bij gebruik van KNN.
Waar te gebruiken KNN
KNN wordt vaak gebruikt in eenvoudige aanbevelingssystemen, afbeelding herkenningstechnologie en besluitvormingsmodellen. Het is het algoritme dat bedrijven zoals Netflix of Amazon gebruiken om verschillende films aan te bevelen om naar te kijken of boeken om te kopen. Netflix lanceerde zelfs de Netflix Prize-wedstrijd, waarbij $ 1 miljoen werd toegekend aan het team dat het meest nauwkeurige aanbevelingsalgoritme heeft gemaakt!
Je vraagt je misschien af: “Maar hoe doen deze bedrijven dit?” Deze bedrijven passen KNN toe op een dataset die is verzameld over de films die je hebt bekeken of de boeken die je op hun website hebt gekocht. Deze bedrijven voeren dan je beschikbare klantgegevens in en vergelijken die met andere klanten die soortgelijke films hebben bekeken. of soortgelijke boeken hebben gekocht. Dit gegevenspunt wordt vervolgens geclassificeerd als een bepaald profiel op basis van hun verleden met KNN. De aanbevolen films en boeken zijn dan afhankelijk van hoe het algoritme dat gegevenspunt classificeert.
De afbeelding hierboven laat zien hoe KNN werkt bij het classificeren van een datapunt op basis van een bepaalde dataset. Het wordt vergeleken met de dichtstbijzijnde punten en geclassificeerd op basis van welke punten het het dichtst bij en het meest vergelijkbaar is. Hier kunt u zien dat het punt Xj wordt geclassificeerd als W1 (rood) of W3 (groen) op basis van de afstand tot elke groep punten.
De Ma thematics Behind KNN
Net als bijna al het andere werkt KNN vanwege de diepgewortelde wiskundige theorieën die het gebruikt. Bij het implementeren van KNN is de eerste stap om datapunten om te zetten in kenmerkvectoren of hun wiskundige waarde. Het algoritme werkt vervolgens door de afstand tussen de wiskundige waarden van deze punten te vinden. De meest gebruikelijke manier om deze afstand te vinden is de Euclidische afstand, zoals hieronder weergegeven.
KNN voert deze formule uit om de afstand tussen elk gegevenspunt en de testgegevens te berekenen. Vervolgens vindt het de waarschijnlijkheid dat deze punten vergelijkbaar zijn met de testgegevens en classificeert het op basis van welke punten de hoogste waarschijnlijkheden delen.
Om deze formule te visualiseren, zou het er ongeveer zo uitzien:
Conclusie
Nu kent u de basisprincipes van een van de meest basale algoritmen voor machine learning .Het is een geweldige plek om te beginnen wanneer u voor het eerst leert modellen te bouwen op basis van verschillende datasets. Als u een dataset heeft met veel verschillende punten en nauwkeurige informatie, is dit een geweldige plek om machine learning met KNN te gaan verkennen.
Houd bij het gebruik van dit algoritme rekening met de volgende drie punten:
- Zoek eerst een dataset waarmee u gemakkelijk kunt werken, idealiter een met veel verschillende punten en gelabelde gegevens.
- Ten tweede, zoek uit welke taal zal worden gemakkelijkst voor gebruik om het probleem op te lossen. Ik ben het meest bekend met het gebruik van KNN in R, maar Python is ook een populaire taal bij professionals op het gebied van machine learning.
- Ten derde, doe je onderzoek. Het is belangrijk om de juiste praktijken voor het gebruik van dit algoritme te leren, zodat u de meest nauwkeurige resultaten uit uw gegevensverzameling kunt halen.
Er zijn verschillende onderzoeken uitgevoerd naar hoe dit algoritme kan worden verbeterd. Deze onderzoeken zijn bedoeld om ervoor te zorgen dat u categorieën anders kunt wegen om een nauwkeurigere classificatie te maken. De weging van deze categorieën is afhankelijk van hoe de afstand wordt berekend.
Concluderend is dit een fundamenteel algoritme voor machine learning dat betrouwbaar is om vele redenen, zoals gebruiksgemak en snelle rekentijd. Het is een goed algoritme om te gebruiken bij het verkennen van de wereld van machine learning, maar er is nog ruimte voor verbetering en aanpassing.