Video: The Great Gildersleeve: Leroy's Pet Pig / Leila's Party / New Neighbor Rumson Bullard 2024
krijgt Ongeacht of het machine-leerprobleem is om een nummer of een klasse te raden, het idee achter de leerstrategie van het k-Nearest Neighbours (kNN) -algoritme is altijd hetzelfde. Het algoritme vindt de meest vergelijkbare waarnemingen als degene die u moet voorspellen en waaruit u een goede intuïtie van het mogelijke antwoord afleidt door de naburige waarden te middelen, of door de meest voorkomende antwoordklasse onder hen te kiezen.
De leerstrategie in een kNN lijkt meer op onthouden. Het is net als onthouden wat het antwoord zou moeten zijn als de vraag bepaalde kenmerken heeft (gebaseerd op omstandigheden of voorbeelden uit het verleden) in plaats van het antwoord echt te kennen, omdat je de vraag begrijpt aan de hand van specifieke classificatieregels. In zekere zin wordt kNN vaak gedefinieerd als een lui algoritme omdat er geen echt leren wordt gedaan tijdens de trainingstijd, alleen bij het vastleggen van gegevens.
Een lui algoritme zijn, impliceert dat kNN redelijk snel is in het trainen, maar erg traag in het voorspellen. (Het merendeel van de zoekactiviteiten en berekeningen van de buren gebeurt op dat moment.) Het houdt ook in dat het algoritme nogal geheugenintensief is omdat je je dataset in het geheugen moet opslaan (wat betekent dat er een limiet is aan mogelijke applicaties wanneer omgaan met big data).
Idealiter kan kNN het verschil maken wanneer u aan classificatie werkt en u veel labels hebt om mee om te gaan (bijvoorbeeld wanneer een softwareagent een tag op een sociaal netwerk plaatst of een verkoopaanbeveling voorstelt). kNN kan gemakkelijk omgaan met honderden labels, terwijl andere leeralgoritmen een ander model voor elk label moeten specificeren.
Meestal werkt kNN de buren van een waarneming na gebruik van een maat van afstand zoals Euclidisch (de meest gebruikelijke keuze) of Manhattan (werkt beter als je veel overbodige functies in je gegevens hebt). Er bestaan geen absolute regels over welke afstandsmaat het beste is om te gebruiken. Het hangt echt af van de implementatie die je hebt. Je moet ook elke afstand als een afzonderlijke hypothese testen en verifiëren door middel van kruisvalidatie over welke maat beter werkt met het probleem dat je aan het oplossen bent.