Kiejtés

  • IPA: [ ˈklɒstɛrɛlɛmzeːʃ]

Főnév

klaszterelemzés

  1. (informatika, mesterséges intelligencia) A klaszterelemzés (angolul: cluster analysis) egy felügyelet nélküli gépi tanulási technika, amelynek célja, hogy a hasonló adatpontokat csoportokba (klaszterekbe) rendezze úgy, hogy a csoporton belüli adatok hasonlóak legyenek, míg a különböző klaszterek adatai eltérjenek egymástól. A klaszterelemzés célja az adatok rejtett struktúráinak feltárása, és gyakran alkalmazzák adatkutatásban, adatelemzésben és mintázatfelismerésben.

A klaszterelemzés különösen hasznos lehet olyan esetekben, amikor az adatokban nincsenek előre definiált címkék vagy kategóriák, és az a cél, hogy az adatokat természetes csoportokba rendezzük.

A klaszterelemzés lépései:

  1. Adatok előkészítése: Az első lépés az adatok tisztítása, átalakítása és normalizálása, hogy az adatok megfelelően használhatók legyenek a klaszterezési algoritmusokhoz.
  2. Klaszterezési algoritmus kiválasztása: Számos különféle klaszterezési algoritmus létezik, mindegyiknek megvannak az erősségei és gyengeségei az adott feladathoz. Az algoritmusok választása attól függ, hogy milyen típusú adatokkal dolgozunk, és hogy milyen klasztereket szeretnénk azonosítani.
  3. Klaszterek meghatározása: A klaszterezési algoritmus elvégzi az adatpontok csoportosítását. Az eredmények értelmezése és a klaszterek száma gyakran paraméterként határozható meg, de néhány algoritmus automatikusan meghatározza a klaszterek számát.
  4. Értékelés: A klaszterezés minőségének értékelése nehéz lehet, mert nincsenek előre definiált címkék. Az eredmények értékelése különféle mérőszámokkal végezhető, mint például a sziluett-mutató, az inerciaváltozás, vagy a Davies–Bouldin-index.

Legnépszerűbb klaszterezési algoritmusok:

  1. K-közép klaszterezés (K-means clustering):

    • Az egyik legelterjedtebb és legismertebb klaszterezési algoritmus. A K-közép algoritmus célja, hogy az adatpontokat K klaszterbe rendezze, ahol K egy előre megadott érték.
    • Az algoritmus úgy működik, hogy véletlenszerűen kiválaszt K klaszter középpontot (centroidot), majd az adatpontokat a legközelebbi középponthoz rendeli. Ezután újraszámítja a középpontokat, és addig iterál, amíg a klaszterek stabilizálódnak.
    • A K-means algoritmus gyors és egyszerű, de előre meg kell adni a klaszterek számát, és érzékeny a zajra és az outlierekre.

    Példa Pythonban (scikit-learn használatával):

    from sklearn.cluster import KMeans
    import numpy as np
    
    # Példaadatok
    X = np.array([[1, 2], [1, 4], [1, 0], [4, 2], [4, 4], [4, 0]])
    
    # K-means algoritmus 2 klaszterre
    kmeans = KMeans(n_clusters=2)
    kmeans.fit(X)
    
    print(kmeans.labels_)  # Az adatpontok klaszter címkéi
    print(kmeans.cluster_centers_)  # A klaszter középpontok koordinátái
    
  2. Hierarchikus klaszterezés (Hierarchical Clustering):

    • A hierarchikus klaszterezés olyan klasztereket épít, amelyek fastruktúrában (dendrogramma) helyezkednek el. Két fő típusa van:
      • Agglomeratív klaszterezés: Minden adatpont külön klasztert alkot, majd ezeket fokozatosan összekapcsolják, amíg egyetlen klaszter nem marad.
      • Divizív klaszterezés: A klaszterezés az összes adatpontot egy klaszterként kezeli, majd fokozatosan bontja le kisebb klaszterekre.
    • Ez az algoritmus nem igényli előre a klaszterek számának megadását, de a nagy adatkészleteknél nagy számítási erőforrást igényel.

    Példa Pythonban:

    from scipy.cluster.hierarchy import dendrogram, linkage
    import matplotlib.pyplot as plt
    
    # Adatok
    X = np.array([[1, 2], [1, 4], [1, 0], [4, 2], [4, 4], [4, 0]])
    
    # Hierarchikus klaszterezés
    Z = linkage(X, 'ward')
    
    # Dendrogramma rajzolása
    dendrogram(Z)
    plt.show()
    
  3. DBSCAN (Density-Based Spatial Clustering of Applications with Noise):

    • A DBSCAN algoritmus a klasztereket az adatok sűrűsége alapján határozza meg. Képes azonosítani a szabályos klasztereket, és jól kezelni az outliereket (zajos adatokat).
    • Az algoritmus nem igényli a klaszterek számának előzetes megadását, hanem két paraméter alapján működik: az eps (a maximális távolság két pont között) és a min_samples (a klaszterek létrehozásához szükséges minimális pontok száma).
    • A DBSCAN algoritmus különösen jól használható, ha az adatpontok nem gömb alakú klasztereket alkotnak.

    Példa Pythonban:

    from sklearn.cluster import DBSCAN
    
    # Példaadatok
    X = np.array([[1, 2], [1, 4], [1, 0], [4, 2], [4, 4], [4, 0], [10, 10]])
    
    # DBSCAN klaszterezés
    dbscan = DBSCAN(eps=1.5, min_samples=2)
    dbscan.fit(X)
    
    print(dbscan.labels_)  # Az adatpontok klaszter címkéi (-1 a zajos adat)
    
  4. Gaussian Mixture Model (GMM):

    • A Gaussian Mixture Model az adatokat több különböző normális eloszlás keverékeként (Gaussian eloszlásként) kezeli. Az algoritmus valószínűségi alapú, és lehetővé teszi, hogy az egyes adatpontokhoz valószínűségi klaszter-hozzárendelést végezzen (azaz egy adatponthoz több klaszterhez való tartozás valószínűségét is rendelhetjük).
    • A GMM rugalmasabb a K-means-nál, mivel nem feltételezi, hogy a klaszterek gömb alakúak. Nagyobb számítási teljesítményt igényel, és jól alkalmazható bonyolultabb klaszterszerkezetek esetén.

Klaszterelemzés értékelése:

A klaszterelemzés egyik kihívása az eredmények értékelése, mivel nincs előre meghatározott címkézett adat. Az alábbi mérőszámokat használják gyakran a klaszterezés minőségének mérésére:

  1. Sziluett-mutató (Silhouette Score):
    • Ez a mérőszám azt vizsgálja, hogy mennyire hasonlítanak egymáshoz az adatpontok a saját klaszterükön belül, illetve mennyire különböznek a más klaszterekhez tartozó adatpontoktól. A mutató értéke -1 és 1 között mozog, ahol a magasabb érték jobb klaszterezést jelez.
  2. Inerciaváltozás (Within-cluster Sum of Squares, WCSS):
    • Ez a mutató a klaszterek közötti különbségek minimalizálására törekszik, és azt méri, hogy az adatpontok milyen távol vannak a középponttól. A kisebb érték jobb klaszterezést jelent. Ez a módszer különösen gyakori a K-means algoritmus értékelésénél.
  3. Davies–Bouldin-index:
    • Ez egy másik gyakori mérőszám, amely azt méri, hogy az egyes klaszterek mennyire különböznek egymástól, és hogy mekkora az átfedés az adatpontok között. Alacsonyabb Davies–Bouldin-index jobb klaszterezést jelent.
  4. Dendrogramma: A hierarchikus klaszterezés eredményének vizuális értékelésére gyakran használják a dendrogrammát, amely megmutatja a klaszterek közötti távolságokat és a csoportosításokat.

Alkalmazási területek:

  • Piackutatás: A klaszterelemzés segíthet a vásárlók szegmentálásában a viselkedési, demográfiai vagy vásárlási adatok alapján.
  • Kép- és videófeldolgozás: Képek és videók tartalmának csoportosítása, mintázatok keresése.
  • Bioinformatika: Génexpressziós adatok csoportosítása, hasonló gének vagy biológiai mintázatok azonosítása.
  • Képzés és oktatás: Hasonló tudásszintű vagy tanulási stílusú diákok klaszterezése az oktatási módszerek személyre szabása érdekében.
  • Hálózatelemzés: Hasonló csomópontok vagy alhálózatok azonosítása társadalmi hálózatokban, vagy hasonló viselkedésű felhasználók csoportosítása az internetes hálózatokban.

Összefoglalás:

A klaszterelemzés egy felügyelet nélküli gépi tanulási módszer, amely az adatokat természetes csoportokra osztja. Számos algoritmus létezik különféle adatszerkezetek és alkalmazási területek számára, mint például a K-means, hierarchikus klaszterezés, DBSCAN és GMM. A klaszterelemzés fontos szerepet játszik az adatok feltárásában és az adatok rejtett mintázatainak felfedezésében különböző iparágakban és kutatási területeken.