Bevezetés a klaszterezésbe5 perc olvasás

A klaszterezés nagy részt hasonlít az osztályozásra, azonban más maga az alapprobléma, amiből kiindul. A klaszterezés során ugyanis azt nem tudjuk, hogy hány és milyen osztályaink vannak, viszont az osztályozásnál igen. Ebből adódóan az a célunk, hogy a megfigyelések vizsgálatával valamilyen csoportokra ismerjünk rá. Ezeknek a csoportoknak pedig olyan elemeket kell tartalmazniuk, amelyek valamilyen szempontból nézve hasonlónak tekinthetők. Ezzel ellentétben egy osztályozási probléma során arra a kérdésre keressük a választ, hogy ha van n darab különböző osztályunk, akkor vajon egy új megfigyelés várhatóan melyik osztályhoz fog tartozni. Az osztályozásról itt olvashatsz bővebben.

Jelentősége

A klaszterezés számos esetben bizonyul hasznos eszköznek, ugyanis ennek segítségével tudjuk kategóriákba rendezni megfigyeléseinket. Többek között az üzleti életben is nagy szerepe van a  klaszterezési módszereknek. Például egy kiskereskedelmi áruházlánc esetében fontos információ lehet, hogy milyen típusú vásárlók veszik az áruház termékeit, hiszen ezen információ birtokában a vállalat jobban át tudja alakítani a termékkínálatát vagy hatékonyabb árazási módszert tud alkalmazni annak érdekében, hogy optimalizálja a forgalmát. Emellett a klaszterezésnek még számos felhasználási területe van, például a kutatások során is egy alapvető eszköz. Mondjuk egy mikrobiológiai kísérlet során a különböző tenyészetek csoportosítására lehet alkalmazni. Összességeben tehát egy igencsak hasznos eszközről beszélünk.

A klaszterező algoritmusok egyik hatalmas előnye, hogy több dimenziós térben is tudunk velük csoportokat keresni. Ez azt jelenti, hogy ha egy megfigyelés során kettőnél több ismérvvel rendelkezünk, akkor akár az összes ilyen ismérv felhasználásával tudunk klasztereket keresni az adataink között.

A k-Means algoritmus

A k-means algoritmus lényegében elég hasonló az osztályozásnál használt kNN algoritmushoz, éppen ezért próbáljuk meg minél jobban elkülöníteni a két algoritmust egymástól, ugyanis bár hasonlóak mégis teljesen más célra szolgálnak, hiszen az elsőt klaszterezésre, a másodikat pedig osztályozásra használjuk.

Az algoritmus lépései

1. Kiválasztjuk a klaszterek számát: k

2. Kiválasztunk k darab tetszőleges pontot, amely a k darab klaszter középpontja lesz.

3. Minden egyes megfigyelésünket hozzárendeljük ahhoz a klaszterhez, amelyikhez a legközelebb van eukleidészii távolság alapján. Ez k darab klasztert fog eredményezni.

4. Kiszámítjuk az új klaszterközéppontok helyét a klaszterekhez tartozó pontok x, illetve y koordinátáinak átlagolásával, majd újra hozzárendeljük az egyes megfigyeléseinket a klaszterekhez a harmadik pontban bemutatott módszerrel.

5. Ha van olyan megfigyelés, amelyik az egyik klaszterből átkerült egy másikba, akkor visszaugrunk a negyedik ponthoz, ha pedig nincs ilyen megfigyelés, akkor a klaszterezés véget ér.

Ezzel az öt lépéssel tehát el is készült a klaszterezés, azonban meg kell említenem, hogy ennél az algoritmusnál nem feltétlen kapunk egyértelmű megoldást. Ez alatt azt értem, hogy mikor tetszőlegesen kiválasztjuk a klaszterközéppontok helyét, akkor akár több féle végeredményt is kaphatunk attól függően, hogy milyen pontokat választottunk ki. Erre megoldást jelent a k-Means++ algoritmus, amelyről itt olvashatsz bővebben.

Az algoritmus egy másik kérdéses része, hogy vajon az első lépésnél milyen k értéket válasszunk, mi az optimális. Ezzel kapcsolatban az úgy nevezett “elbow method” segítségével juthatunk dűlőre. A módszer alkalmazásával egy olyan ábrához jutunk, amely egyrészt a k értékét, azaz a klaszterek számát tartalmazza, másrészt pedig a klaszteren belüli távolságnégyzetek összegét (WCSS). Az ábra vizsgálatakor a hüvelykujj szabály az, hogy azt a k értéket válasszuk, amelynél láthatóan megtörik csökkenő görbénk. Tehát az a k érték az optimális, amelynél még viszonylag sokkal csökken a WCSS értéke, azonban a k+1 esetén ez már nem igazán jelentős mértékű.

A fenti ábra alapján például a k=3 a jó választás, de ez nem mindig teljesen egyértelmű.

Kiegészítés

A klaszterezés egy igen hasznos és érdekes problémakör, ahol sok, ehhez hasonlóan kreatív vizuálisan is átlátható megoldás születik. Ha esetleg jobban érdekel valakit a klaszterezés és szeretne többet tudni ezzel a témával kapcsolatban, akkor annak mindenképpen ajánlom a hierarchikus klaszterezési algoritmusokat. Ezeknél az módszereknél is nagy szerepet tölt be az ábrázolás, ezért érdemes a dendogramokkal is jobban megismerkedni.

 

 

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 *