klaszterelemzés
Kiejtés
- IPA: [ ˈklɒstɛrɛlɛmzeːʃ]
Főnév
klaszterelemzés
- (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:
- 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.
- 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.
- 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.
- É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:
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
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()
- A hierarchikus klaszterezés olyan klasztereket épít, amelyek fastruktúrában (dendrogramma) helyezkednek el. Két fő típusa van:
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)
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:
- 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.
- 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.
- 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.
- 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.
- angol: cluster analysis (en)
- orosz: кластерный анализ (ru) (klasternyj analiz)
- klaszterelemzés - Értelmező szótár (MEK)
- klaszterelemzés - Etimológiai szótár (UMIL)
- klaszterelemzés - Szótár.net (hu-hu)
- klaszterelemzés - DeepL (hu-de)
- klaszterelemzés - Яндекс (hu-ru)
- klaszterelemzés - Google (hu-en)
- klaszterelemzés - Helyesírási szótár (MTA)
- klaszterelemzés - Wikidata
- klaszterelemzés - Wikipédia (magyar)