DBSCAN (Density-Based Spatial Clustering of Applications with Noise)
Yoğunluk tabanlı kümeleme ve anomali tespiti için DBSCAN'i keşfet. Ultralytics YOLO26 ile birlikte veri kümelerindeki keyfi şekilleri ve gürültüyü nasıl tanımladığını öğren.
DBSCAN (Density-Based Spatial Clustering of Applications with Noise), veriler içindeki farklı grupları yoğunluğa göre belirlemek için kullanılan güçlü bir gözetimsiz öğrenme algoritmasıdır. Küresel kümeler varsayan veya önceden belirlenmiş bir grup sayısı gerektiren geleneksel kümeleme yöntemlerinin aksine DBSCAN, düşük yoğunluklu alanlarla ayrılmış yüksek yoğunluklu bölgeleri tespit eder. Bu yeteneği, temel yapının bilinmediği karmaşık gerçek dünya veri setlerini analiz etmek için onu olağanüstü derecede etkili kılar; böylece her tür şekil ve boyuttaki kümeleri keşfedebilir. Bu algoritmanın en önemli avantajlarından biri, düşük yoğunluklu bölgelerdeki noktaları bir kümeye zorlamak yerine otomatik olarak gürültü şeklinde sınıflandırması sayesinde yerleşik anomali tespiti sağlamasıdır.
Temel Kavramlar ve Parametreler#
Algoritma, her veri noktasının etrafında bir komşuluk tanımlayarak ve bu yakın çevrede kaç tane başka nokta bulunduğunu sayarak çalışır. Bu süreci kontrol eden iki temel hiperparametre bulunur ve verilerin belirli özellikleriyle eşleşmesi için dikkatli bir hiperparametre ayarı gerektirir:
- Epsilon (eps): Bu parametre, komşuları aramak için bir nokta etrafındaki maksimum yarıçapı belirtir. "Erişilebilirlik" mesafesini tanımlar.
- Minimum Nokta Sayısı (minPts): Bu, yoğun bir bölge veya "çekirdek" oluşturmak için Epsilon yarıçapı içinde gereken minimum veri noktası sayısını belirler.
Bu parametrelere dayanarak, DBSCAN veri setindeki her noktayı üç tipten birine kategorize eder:
-
Çekirdek Noktalar:
epsyarıçapı içinde en azminPtskomşusu olan noktalar. Bu noktalar bir kümenin iç kısmını oluşturur. -
Sınır Noktalar: Bir çekirdek noktanın
minPtsyarıçapı içinde yer alan ancak kendileriepsdeğerinden daha az komşuya sahip olan noktalar. Bunlar bir kümenin kenarlarını oluşturur. -
Gürültü Noktaları: Ne çekirdek ne de sınır noktası olan noktalar. Bunlar etkili bir şekilde dış değerler olarak ele alınır ve aykırı değer tespiti gibi görevler için faydalıdır.
DBSCAN ve K-Means Kümeleme Karşılaştırması#
Her ikisi de makine öğrenimi (ML) için temel nitelikte olsa da DBSCAN, belirli senaryolarda K-Means Kümeleme yöntemine kıyasla belirgin avantajlar sunar. K-Means merkezlere ve Öklid mesafesine dayanır ve genellikle kümelerin dışbükey veya küresel olduğunu varsayar. Bu durum, uzatılmış veya hilal şeklindeki verilerde zayıf performans gösterilmesine yol açabilir. Buna karşılık DBSCAN'in yoğunluk tabanlı yaklaşımı, veri dağılımının doğal sınırlarını takip etmesine olanak tanır.
Bir diğer önemli fark ise başlatma aşamasında ortaya çıkar. K-Means, kullanıcıdan küme sayısını (k) önceden belirtmesini ister ki bu da ön bilgi olmadan zorlayıcı olabilir. DBSCAN ise küme sayısını veri yoğunluğundan doğal olarak çıkarır. Ek olarak K-Means, her noktayı bir gruba dahil etmeye zorladığı için aykırı değerlere karşı hassastır ve bu durum potansiyel olarak küme merkezlerini çarpıtabilir. DBSCAN'in noktaları gürültü olarak etiketleme yeteneği, veri anomalilerinin geçerli kümeleri kirletmesini engeller ve tahcitsel modelleme (predictive modeling) gibi sonraki aşamadaki görevler için daha temiz sonuçlar garanti eder.
Gerçek Dünya Uygulamaları#
DBSCAN, uzamsal analiz ve sağlam gürültü yönetimi gerektiren endüstrilerde yaygın olarak uygulanır.
- Coğrafi Uzamsal Analiz: Şehircilik ve lojistikte analistler, teslimat filolarından veya araç paylaşım hizmetlerinden gelen GPS koordinatlarını gruplamak için DBSCAN kullanır. Şirketler, yüksek yoğunluklu bırakma bölgelerini belirleyerek rota planlamasını ve depo konumlarını optimize edebilir. Örneğin, loijstikte yapay zeka kullanımı genellikle verimliliği artırmak için teslimat duraklarının kümelenmesini içerir.
- Görüntü Tabanlı Anomali Tespiti: Üretimde, YOLO26 gibi modeller tarafından desteklenen görsel denetim sistemleri yüzey kusurlarını tespit edebilir. DBSCAN, bu kusurların koordinatlarını bir ürün haritası üzerinde kümeleyebilir. İzole tespitler sensör gürültüsü olarak reddedilebilirken yoğun kümeler sistematik bir üretim hatasına işaret eder ve kalite kontrolü için bir uyarıyı tetikler.
Kod Örneği: Tespit Merkezlerini Kümeleme#
Bilgisayarlı görü iş akışlarında geliştiriciler genellikle nesne dedektörlerini eğitmek ve ardından sonuçları sonradan işlemek için Ultralytics Platform kullanır. Aşağıdaki örnek, tespit edilen nesnelerin merkezlerini kümelemek için sklearn kütüphanesinin nasıl kullanılacağını göstermektedir. Bu, uzamsal olarak ilişkili tespitlerin gruplanmasına yardımcı olur ve aynı nesne için birden fazla sınırlayıcı kutuyu potansiyel olarak birleştirebilir veya nesne gruplarını tanımlayabilir.
import numpy as np
from sklearn.cluster import DBSCAN
# Simulated centroids of objects detected by YOLO26
# [x, y] coordinates representing object locations
centroids = np.array(
[
[100, 100],
[102, 104],
[101, 102], # Cluster 1 (Dense group)
[200, 200],
[205, 202], # Cluster 2 (Another group)
[500, 500], # Noise (Outlier)
]
)
# Initialize DBSCAN with a radius (eps) of 10 and min_samples of 2
# This groups points close to each other
clustering = DBSCAN(eps=10, min_samples=2).fit(centroids)
# Labels: 0, 1 are cluster IDs; -1 represents noise
print(f"Cluster Labels: {clustering.labels_}")
# Output: [ 0 0 0 1 1 -1]Derin Öğrenme ile Entegrasyon#
DBSCAN klasik bir algoritma olmasına rağmen modern derin öğrenmeyle etkili bir şekilde eşleşir. Örneğin, bir evrişimli sinir ağından (CNN) çıkarılan yüksek boyutlu özellikler, DBSCAN uygulanmadan önce PCA veya t-SNE gibi boyut azaltma teknikleri kullanılarak azaltılabilir. Bu hibrit yaklaşım, karmaşık görüntü verilerinin yalnızca piksel konumuna göre değil, anlamsal benzerliğe göre kümelenmesine olanak tanır. Bu durum, etiketli eğitim verilerinin kıt olduğu gözetimsiz öğrenme senaryolarında araştırmacıların etiketlenmemiş devasa görüntü arşivlerini verimli bir şekilde organize etmesine yardımcı olmak açısından özellikle faydalıdır.






