1 of 28

Adatbányászat alapjai

Felügyelet nélküli módszerek

Prof. Dr. Kovács László diái alapján

Kunné Dr. Tamás Judit�2024/25/2

2 of 28

Klaszterezés

  • Nincsenek előre megadott címkék a csoportokhoz
  • Magukat az adatokat csoportosítjuk, hogy új kategóriákat fedezzünk fel, például utcai rablások alapján különböző veszélyezettségű területeket különböztethetünk meg, vagy a házak értékeit vizsgálva egy adott ház helyéből az értékére következtethetünk
  • Alapelve, hogy maximalizáljuk a csoportokon belüli hasonlóságot és ezzel egyidőben minimalizáljuk a csoportok közötti hasonlóságot
  • Hasonlósági mérték lehet euklideszi távolság folytonos attribútumok esetén, illetve egyéb, a feladattól függő mérőszámok
  • Adat redukcióra és vizualizációra is használják
  • Segít kiugró értékek detektálásában is

3 of 28

Példa klaszterezés feladatra

  • Piaci szegmentáció, tehát a piac felosztása az ügyfelek diszjunkt halmazokra való bontás útján, ahol minden egyes potenciális célcsoportot, piaci szegment különböző marketing eszközökkel tervezünk elérni
  • Egymáshoz hasonló dokumentumok csoportjainak keresése a bennük megjelenő fontosabb kulcsszavak alapján
    • Példa: Csoportosítandó 3204 cikk a Los Angeles Timesból
    • Hasonlósági mérték: mennyi közös szó van a dokumentumokban

4 of 28

5 of 28

Hierarchikus klaszterezés

  • Agglomeratív(Összevonó) megközelítés
  • kezdetben minden objektum külön klaszter
  • a legközelebbi szomszédos klaszterek egyesülnek
  • Mohó
  • Leállási feltétel:
    • Klaszter darabszám
    • Távolság
    • (Ezeket előre meg kell adni)
  • „bottom-up” más néven

6 of 28

Hierarchikus klaszterezés

  • Felosztó megközelítés
    • Minden egy klaszterbe tartozik először
    • A klasztereket egyre kisebb klaszterekre bontja
    • Mohó, mindig az éppen aktuálisan a legjobb bontást választja
    • Leállási feltétel:
      • Klaszter darabszám
      • Távolság
    • „top-down” másik néven

7 of 28

Dendrogram

  • Az összevonási folyamat �vizualizálására
  • Az egyik végén az egyes elemek
  • Másik végén egyetlen klaszter
  • Mutatja a hierarchiát
  • El is lehet vágni a fát �magasságban

8 of 28

Összevonó megközelítés fajtái

Klaszter távolságának meghatározása alapján

  • súlypont (centroid)�átlagos(average)�legközelebbi (single)�legtávolabbi (complete)
  • variancia (Ward)

9 of 28

K-means (k-közép)

Iteratív újrapozicionálás

  • A klaszterek számának javítása�A centroidok kezdeti helyzete�A jelenlegi pozíciók frissítése�Új centroid pozíciók�megáll, ha nincs szükség áthelyezésre�konvergens

10 of 28

K-means clustering

Frissítés

  • Objektumok hozzárendelése az aktuális centroidokhoz�Számítsa újra az egyes klaszterek középponti pozícióit�értékelje a régi és az új pozíciók közötti különbségeket

11 of 28

K-means

Kiértékelés

  • objektív funkció: Sum of Squared Error �teljes távolság a centroidoktól�minimalizálás a cél�konvergens

12 of 28

K-means

Klaszter jósága

  • Klaszterek optimális száma
  • Elkülönülés és kohézió
  • Klaszteren belüli és klaszterek közötti távolságok összehasonlítása
  • Silhouette módszer
  • ai = távolság a centroidtól
  • bi = Távolság a következő klasztertől

13 of 28

  • ha si > 0.5 akkor a klaszterezés elfogadhato
  • ha 0.5 > si > 0.25, akkor talán elfogadhato a klaszterezés
  • ha 0.25 > si akkor a klaszterezés nem elfogadhato
  • Különböző klaszterszámokra tesztelik

14 of 28

Könyök (Elbow) módszer

  • Különböző k értékekkel futtatjuk a k-means módszert
  • minden k értékre kiszámítjuk az SSE értéket
  • Keresse meg a könyök helyzetét az SSE függvényen
  • nem túl megbízható

15 of 28

K-means Python kód

import numpy as np import pandas as pd

from matplotlib import pyplot as plt

from sklearn.datasets.samples_generator import make_blobs from sklearn.cluster import KMeans

X, y = make_blobs(n_samples=300, centers=6, cluster_std=0.60, random_state=0) plt.scatter(X[:,0], X[:,1])

plt.show() wcss = []

for i in range(1, 11):

kmeans = KMeans(n_clusters=i, init='k-means++', max_iter=300, n_init=10, random_state=0)

kmeans.fit(X) wcss.append(kmeans.inertia_)

plt.plot(range(1, 11), wcss) plt.title('Elbow Method') plt.xlabel('Number of clusters') plt.ylabel('WCSS')

plt.show()

16 of 28

kmeans = KMeans(n_clusters=4, init='k-means++', max_iter=300, n_init=10, random_state=0)

pred_y = kmeans.fit_predict(X) plt.scatter(X[:,0], X[:,1])

plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], s=300, c='red')

plt.show()

17 of 28

RapidMiner

18 of 28

RapidMiner

19 of 28

SOM klaszterezés (Self-organizing Map)

Adat reprezentálására

  • Bemenet: Adatok sok dimenziós térben�Kimenet: Klaszterek az alacsony dimenziós térben�A centroidok optimalizált pozícióval rendelkeznek�reprezentációs tér (rács)�centroidok alapján�neurális haló

20 of 28

SOM klaszterezés

Algoritmus

  • A centroidok inicializálása� A reprezentációs térben lévő rácscsomópontok hozzárendelése centroidokhoz�Az adatpontok feldolgozása sorozatban�Minden objektumhoz: keresse meg a legközelebbi középpontot�A középpont mozgatása az objektum felé

21 of 28

SOM

  • a szomszédos rács középpontjait is mozgatja az objektum felé�A tanulási sebesség általában nulla�A távolságmátrix kiszámítása a centroidok között�Állítsa be a rácspontok helyzetét a centroidok közötti távolságok alapján

22 of 28

SOM clustering

23 of 28

K-medoid

  • K-means algoritmus módosulata
    • a k-means csak olyan esetben használható mikor értelmezett a klaszterközéppont
  • k-medoid az adatpontok közötti távolságot összehasonlításán alapszik
  • a klasztereket medoid-al reprezentálja
    • medoid: az adott klaszter elemeihez legközelebb eső adatpont
    • „klaszterközéppont” egy létező adatelem
  • az algoritmus menete megegyezik a k-means menetével
  • kezdetben választunk k darab tetszőleges adatpontot: ezek lesznek a medoid-ok
  • adatpontok medoid-okhoz történő hozzárendelése
  • medoid-ok vándorlása

24 of 28

Társítási szabályok keresése

  • Adott rekordok egy halmaza, amely tételeket (termékek) egy összességét tartalmazza
  • Keressünk olyan összefüggéseket, következtetéseket, amely egyes tételek előfordulását előrejelzi más tételek előfordulása alapján (asszociáció)

Feltárt szabályok:

{Tej} --> {Kóla}

{Pelenka, Tej} --> {Sör}

25 of 28

Példa társítási szabály keresés feladatra

  • Marketing és reklám
    • Legyen a feltárt szabály {Édessütemény, …} -> {Burgonyaszirom}
    • Burgonyaszirom, mint következmény
      • Arra használható, hogy meghatározzuk, mit tegyünk az eladás meggyorsításáért
    • Édessütemény, mint előzmény
      • Arra használható, hogy lássuk, mely termékekre van hatással az, ha a bolt felhagy az édessütemények forgalmazásával
    • Együttesen a kettő
      • Arra használható, hogy lássuk, mely termékeket kell az édessütemények mellett árulni, hogy előremozdítsuk a burgonyaszirom forgalmát

26 of 28

  • Bevásárlóközpontok polckezelése
    • Célja azon termékek meghatározása, amelyeket elég sok vásárló vesz meg egyszerre
    • Példa: Ha egy vásárló pelenkát és tejet vesz, akkor nagy valószínűséggel vesz sört is
      • Ne lepődjünk meg, ha a pelenkák után 6-os csomagban sört találunk

27 of 28

Szekvenciális mintázatok keresése

  • Adott objektumok egy halmaza úgy, hogy minden objektumhoz tartozik eseményeknek egy sorozata
  • Keressünk olyan szabályokat, amelyek a különböző események között minél erősebb szekvenciális függőségeket jeleznek előre
  • A szabályokat az első felfedezett mintázatok alakítják ki
    • A mintázatokban előforduló eseményeknek időbeli peremfeltételeknek kell eleget tenniük

28 of 28

Példa szekvenciális minta keresésésre

  • Hibaüzenet a telekommunikációban:
    • (Átalakító_hiba Túlzott_vezeték_áram)

(Egyenirányító_riadó) --> (Tűz_riadó)

  • Tranzakciók sorozata automatizált vásárlásnál:
    • Számítástechnikai könyvesbolt:

(Bevezetés_a_Visual_C_be) (Bevezetés_C++_ba) --> (Perl_kezdőknek, Tcl_Tk_nyelv)

    • Sportruházat bolt:

(Cipő) (Teniszütő, Teniszlabda) --> (Sport_dzseki)

    • Számítástechnikai bolt:

(Kamera) -> (64GB_SD_kártya)