Sobes.tech
Middle — Senior

Mi az a DBSCAN és hogyan segít a kiugró értékek megtalálásában?

sobes.tech MI

Válasz az MI-től

A DBSCAN (Sűrűség-alapú Térbeli Csoportosítás Zajjal) egy olyan csoportosítási algoritmus, amely a sűrűség alapján csoportosítja az adatpontokat. A klasztereket magas sűrűségű pontok területeiként azonosítja, és azokat a pontokat, amelyek nem tartoznak egyik klaszterhez sem, kiugró értékeknek (zajnak) jelöli.

Az algoritmus két fő paramétert használ:

  • eps — a pont körüli környezet sugara;
  • minPts — a minimális pontszám a eps környezetben egy klaszter kialakításához.

Ha egy pont eps környezetében kevesebb, mint minPts szomszéd van, akkor kiugró értéknek tekinthető. Így a DBSCAN segít automatikusan felismerni a kiugró értékeket, különválasztva a ritka vagy izolált pontokat a sűrű adatcsoportoktól anélkül, hogy előre meg kellene határozni a klaszterek számát.

Pythonban a scikit-learn könyvtár segítségével például így használható:

from sklearn.cluster import DBSCAN
import numpy as np

X = np.array([[1, 2], [2, 2], [2, 3], [8, 7], [8, 8], [25, 80]])

clustering = DBSCAN(eps=3, min_samples=2).fit(X)
print(clustering.labels_)
# Kimenet: klaszter címkék, -1 kiugró értéket jelent