20. tétel - Klaszterezés
Mit értünk klaszterezési feladatok alatt? Mutassa be a K-means algoritmust! Ismertesse a DBSCAN algoritmus alapfogalmait és alapvető lépéseit! Mi a különbség az egyes módszerek között?
Klaszterezési feladatok
- A klaszterezés közeli adatokból csoportokat (klasztereket) alakít ki.
- Az egymástól távoli elemek különböző klaszterekbe kerülnek.
- Gyakran a csoportok elhelyezkedése és száma előre nem ismert
flowchart TB K[Klaszterezés]-->H[Hierarchikus] & NH[Nem hierarchikus] H --> O["`**Összevonó** *(kezdetben minden elem külön klaszter, majd ezeket összevonogatja nagyobb klaszterekké)*`"] H --> F["`**Felosztó** *(kezdetben az összes elem egy klaszterben van, és ezt bontogatja kisebb klaszterekre)*`"] O --> DS[DBSCAN] NH --> KM["K-means"]
K-közép (K-means) algoritmus
- Nem hierarchikus
- \(N\) darab centroidot tárol (\(C_1\), \(C_2\), ... \(C_n\))
- Minden pont abba klaszterbe (\(K_1\), \(K_2\), ... \(K_n\)) tartozik, amelynek a centroidjához legközelebb van
- Úgy mozgatja a centroidokat, hogy minél inkább egymástól elkülönülő klaszterek jöjjenek létre
Alapvető lépések
- Inicializálás, kezdő centroidok (klaszterek ”középpontjának”) megadása
- tipikusan véletlenszerűen
- Elemek besorolása a klaszterekbe a távolsági adatok alapján
- minden elem a hozzá legközelebbi centroid klaszterébe kerül.
- Ez alapján klaszterek középpontjának módosítása -minden centroid új pozíciója a hozzá tartozó elemek pozícióinak átlaga lesz
- Ha változtak a középpontok, akkor megismételjük a műveletet.
- Ha nem változtak a középpontok, kilép az eljárás
Folyamatábra
flowchart TB
I["Inicializálás (véletlen kezdőpontok felvétele)"]
BES[Elemek besorolása a klaszterekbe a távolságok alapján]
KP["Centroidok módosítása (a klaszterbe tartozó elemek pozíciójának átlagolásával)"]
V{Változtak a centroidok?}--"igen"-->BES
I-->BES-->KP-->V--"nem"-->K[Kilépés]
Megvalósítás

- \(C'\) halmaz mindig az előző iteráció elemeit tárolja
- ide hozzuk létre a kezdő centroidokat is
- Az új centroidokat mindig a \(C\) halmazba hozzuk létre
- \(K\) halmazok tárolják a klaszterek elemeit
- ezeket mindig újra létrehozzuk
- A függvény visszatérési értéke a klaszterek halmaza
Értékelés
- Előny: Egyszerű, gyors
- Hátrány: előre meg kell adni a klaszterek számát, amit sokszor nem tudunk
- Kiegészítési lehetőség: ha ezt nem tudjuk, az algoritmust le lehet futtatni egymás után többféle K értékkel
- Gyakorlati probléma: képszegmentálás
DBSCAN
- Sűrűség-alapú klaszterezési eljárás
- Hierarchikus, öszevonó jellegű módszer
Bemenetei
| Jel | Magyarázat |
|---|---|
| \(S\) | pontok halmaza, amiben keresünk |
| \(d_s\) | két pont távolságát megadó függvény |
| \(minPts\) | minimális darabszám |
| \(\epsilon\) | maximális távolság |
Fogalmak
- Belső pont: olyan pont, amitől a legfeljebb \(\epsilon\) távolságra lévő elemek száma legalább \(minPts\)
- Közvetlenül sűrű elérhetőség: ha egy belső ponttól egy \(q\) pont távolsága legfeljebb \(\epsilon\), akkor \(q\) közvetlenül sűrűn elérhető
- Sűrű elérhetőség: ha egy belső pontból át tudunk "lépkedni" \(q\)-ig úgy, hogy a köztes pontok mindig közvetlenül sűrűn elérhetőek az előző pontból, akkor \(q\) sűrűn elérhető
- tehát a közvetlen sűrű elérhetőség tranzitív lezártja
- Kivülállók: azok a pontok, amelyek nem elérhetőek a többi pontból
Alapvető lépések
- Vegyük azokat a pontokat, amelyeknek az \(\epsilon\) környezetében legalább \(minPts\) darab másik pont található.
- Ezeket a belső pontokat és az \(\epsilon\) környezetben lévő pontokat tekinthetjük egy klaszter kiinduló halmazának.
- Amennyiben vannak a térben olyan pontok, amelyek még nem részei ennek a halmaznak, viszont annak valamelyik belső pontjától \(\epsilon\) távolságon belül vannak, akkor ezekkel egészítsük ki a halmazt.
- Amennyiben már nem találunk ilyen pontot, megkaptuk a kezdőpontból elérhető legnagyobb klasztert.
- Végezzük el a műveletet a többi belső pontra.
A klaszterek átfedhetik egymást.
- Tipikusan az egy klaszter különböző pontjaiból induló keresések átfedő eredményeket adnak.
- Ezért menet közben csak olyan kezdőpontokat választunk, illetve olyan elemekkel bővítünk, amelyek még nem lettek feldolgozva.
K-means és DBSCAN különbségei
| K-means | DBSCAN | |
|---|---|---|
| Típus | Nem hierarchikus | Hierarchikus, összevonó |
| A klaszterek számát... | tudni kell előre | nem kell tudni előre |
| Zajkezelés | A zajt is klaszterbe akarja rakni | Jól kezeli a zajt, a kívülállók nem kerülnek klaszterbe |
| Számításigény | Nem különösebben számításigényes | Sok elem esetén meglehetősen számításigényes |


