Makine öğreniminde örüntüleri tanımlamak, gürültüyü işlemek ve karmaşık veri kümelerini analiz etmek için güçlü bir kümeleme algoritması olan DBSCAN'ı keşfedin.
DBSCAN (Gürültülü Uygulamaların Yoğunluk Tabanlı Mekansal Kümelenmesi), dünyada yaygın olarak kullanılan bir algoritmadır. tanımlamak için tasarlanmış makine öğrenimi (ML) Veri noktalarının yoğunluğuna dayalı olarak bir veri kümesi içindeki farklı gruplar. Kümelerin olduğunu varsayan algoritmaların aksine küresel veya önceden tanımlanmış sayıda grup gerektirirken, DBSCAN rastgele şekillerdeki kümeleri keşfetmede ve boyutları. Özellikle aşağıdakilerde etkilidir verilerin bulunduğu denetimsiz öğrenme görevleri gürültü veya aykırı değerler içermez, bu da onu veri keşfi ve örüntü tanıma için sağlam bir araç haline getirir.
DBSCAN'in temel ilkesi, bir kümenin diğer kümelerden ayrılmış yoğun bir nokta alanından oluşmasıdır daha düşük yoğunluklu alanlar tarafından. Algoritma iki kritik unsura dayanır Bu yoğunluğu tanımlamak için hiperparametreler:
eps): İki nokta arasındaki maksimum mesafenin aşağıdaki gibi kabul edilmesi için
diğerinin komşuluğu. Bu yarıçap yerel inceleme alanını tanımlar.
min_samples): Yoğun bir nokta oluşturmak için gereken minimum nokta sayısı
içindeki bölge eps Yarıçap.
Bu parametrelere dayanarak, DBSCAN her veri noktasını üç özel türe ayırır ve aşağıdakileri etkili bir şekilde filtreler veri ön işleme aşamasında gürültü:
min_samples noktaları (dahil
kendisi) içinde eps Mahalle.
Daha derin bir teknik dalış için DBSCAN hakkında Scikit-learn belgeleri kapsamlı uygulama ayrıntıları sağlar ve temel kavramları aşağıdaki bölümde keşfedebilirsiniz 1996 tarihli orijinal araştırma makalesi.
DBSCAN ve DBSCAN arasındaki farkı anlama K-Means Kümeleme, aşağıdakileri seçmek için gereklidir veri analizi işlem hattınız için doğru araç.
DBSCAN genel bir kümeleme algoritması olmakla birlikte, modern kümeleme algoritmalarında önemli bir rol oynamaktadır. bilgisayarla görme (CV) ve yapay zeka iş akışları, genellikle işlem sonrası adım olarak hizmet vermektedir.
Aşağıdaki örnekte, uzamsal verileri kümelemek için DBSCAN'ın nasıl kullanılacağı gösterilmektedir. Bir görüntü işlem hattında
detections dizisi aşağıdakileri temsil edebilir (x, y) tarafından tespit edilen nesnelerin koordinatları
YOLO modeli.
import numpy as np
from sklearn.cluster import DBSCAN
# Simulated centroids from YOLO11 detections (x, y coordinates)
# Points clustered around (10,10) and (50,50), with one outlier at (100,100)
detections = np.array([[10, 10], [11, 12], [10, 11], [50, 50], [51, 52], [100, 100]])
# Initialize DBSCAN with a neighborhood radius of 5 and min 2 points per cluster
clustering = DBSCAN(eps=5, min_samples=2).fit(detections)
# Output labels: 0 and 1 are clusters, -1 represents the noise point (outlier)
print(f"Cluster Labels: {clustering.labels_}")
# Expected Output: [ 0 0 0 1 1 -1]
DBSCAN, sonuçları iyileştirmek için genellikle derin öğrenme modelleriyle birlikte kullanılır. Örneğin, aşağıdaki işlemleri gerçekleştirdikten sonra görüntü segmentasyonu veya örnek segmentasyonu, algoritma şunları yapabilir Aksi takdirde birleştirilebilecek uzamsal olarak bitişik nesnelerin farklı örneklerini ayırır. Ayrıca şu konularda da değerlidir yaymak için yarı denetimli öğrenme Küçük bir etiketli veri kümesinden yüksek yoğunluklu bölgelerdeki yakındaki etiketsiz noktalara etiketler.
Araştırmacılar ve mühendisler için, aşağıdaki gibi kütüphaneler NumPy ve Scikit-learn, DBSCAN'ın daha büyük boru hatlarına entegrasyonunu kolaylaştırır gibi çerçeveler tarafından desteklenmektedir. PyTorch. Bunları anlamak klasik teknikler, karmaşık verilerin çıktılarını yorumlama ve manipüle etme becerisini geliştirir. sinir ağları.