Bevezetés az osztályozásba | kNN algoritmus3 perc olvasás

Mikor munkánk során olyan problémával szembesülünk, hogy azt kell megállapítanunk, hogy egy adott tuladjonságokkal bíró megfigyelést hogyan kategorizáljuk, akkor a statisztikai eszközkészletünkből sok mindenhez fordulhatunk. Az egyre növekvő adatmennyiséggel egyetemben az osztályozó algoritmusok népszerűsége is nőtt. Osztályozás céljából használhatjuk a logisztikus regressziót, az SVM-et, a Naiv Bayes módszert, döntési fákat, illetve az ebből eredő random forest módszert is. Én most egy sokkal egyszerűbb és intuitívabb algoritmust szeretnék bemutatni, ami nem más, mint a kNN algoritmus.

Osztályozás

Egy egyszerű osztályozási probléma során az a kérdésünk, hogyha vannak különböző megfigyeléseink, illetve kettő vagy annál több lehetséges kategóriánk, akkor egy új megfigyelés során az vajon várhatóan melyik kategóriához fog tartozni. Erre a kérdésre szeretnénk választ adni. Ezt a várható osztályértéket szeretnénk megbecsülni az alapján, amit eddig tudunk az adatokkal kapcsolatban.

Szerencsénkre minden ilyen jellegű problémára tudunk építeni egy olyan machine learning algoritmust, amely képes számunkra megbecsülni azt, hogy egy adott paraméterekkel rendelkező pont vajon melyik osztályhoz fog tartozni.

Az algoritmus működése

A kNN algoritmusnak igencsak leíró neve van, ugyanis a “k-nearest-neighbours” kifejezés rövidítés egyértelműen arra akar utalni, hogy az algoritmus vélhetően a szomszédos pontok alapján próbálja majd meghatározni, hogy az új megfigyelés melyik kategóriába tartozhat. Az algoritmus működése összesen 4 főbb szakaszra bontható:

  1.  Az első lépésben kiválasztjuk az algoritmus alapját képező k változó értékét. Ez határozza meg, hogy az algoritmus hány szomszédos megfigyelést fog figyelembe venni.
  2. Miután megadtuk a szomszédos pontok számát, meg kell határoznunk magukat a pontokat is. Ezeket az új megfigyelésünktől mért euklideszii távolság alapján tudjuk kiválasztani.

  3. Most, hogy megvannak a kiválasztott pontok is, vizsgáljuk meg, hogy az egyes kategóriákba hány darab esik a szomszédos megfigyelések közül.
  4. Utolsó lépésként pedig, ahhoz az osztályhoz rendeljük hozzá az új megfigyelésünket, amelyikbe a legtöbb szomszédos pont esett a k darab közül.

Négy egyszerű lépés alatt el is készült a modell, amelyet ha egy megfelelően nagy training set-en betanítunk, akkor egy igen hasznos eszközre tehetünk szert.

Értékelés

Előnyök

Az algoritmus rendkívül egyszerű, azonban meglepően jó eredményeket lehet vele elérni. Egy másik előnye, hogy mivel nem egy lineáris eszközről van szó, így sokkal hatékonyabb a nemlineáris problémák megoldása esetén az olyan módszerekkel szemben, mint a logaritmikus regresszió vagy az SVM.

Hátrányok

A kNN algoritmus egyik legnagyobb veszélye, hogy könnyedén lehetséges a training set-en történő túltanítás, azaz az épített osztályozási modellünk könnyen az overfitting áldozatául eshet. Ez magyarul azt jelenti, hogy az algoritmus annyira pontosan le akarja fedni a training set-ben található megfigyeléseinket, hogy modellünk elég csekély pontossággal fogja megbecsülni új adatok várható osztályát.

 

Gulácsy Dominik

About Dominik Gulácsy

Sophomore at Corvinus University of Budapest studying International Business who is motivated to use relevant academic knowledge to solve problems through optimisation. Dedicated to fully support the development of new business solutions in close collaboration with team members by IoT and data science applications. Gained experience in SQL and VBA but looking forward to learning more. A keen supporter of the circular economy.

View all posts by Dominik Gulácsy →

Leave a Reply

Your email address will not be published. Required fields are marked *