Kümeleme, denetimsiz makine öğrenmesinin en temel problemlerinden biridir. Verileri benzerliklerine göre gruplamak için onlarca algoritma geliştirilmiştir, ancak en yaygın kullanılan iki yöntem K-Means ve DBSCAN'dır. Bu yazıda, bu iki algoritmayı çalışma prensipleri, avantajları, dezavantajları ve hangi durumlarda hangisinin daha başarılı olduğu açısından karşılaştıracağız.
Kümeleme algoritmaları, veri bilimi projelerinde müşteri segmentasyonu, anomali tespiti, görüntü sıkıştırma gibi birçok alanda kullanılır. Hangi algoritmayı seçeceğiniz, verinin yapısına ve probleminize bağlıdır. Bu karşılaştırma, size doğru aracı seçmenizde yardımcı olacak.
K-Means Algoritması Nedir?
K-Means, en popüler bölümleyici (partitional) kümeleme algoritmasıdır. Veriyi önceden belirlenen k sayıda kümeye ayırır. Her küme, merkezi olan bir centroid ile temsil edilir. Çalışma adımları şöyledir:
- Başlangıç: Rastgele k centroid seçilir.
- Atama: Her veri noktası en yakın centroid’e atanır.
- Güncelleme: Her kümenin centroid’i, o kümedeki noktaların ortalaması alınarak yeniden hesaplanır.
- Tekrar: 2. ve 3. adımlar, centroid’ler değişmeyene veya maksimum iterasyona ulaşana kadar tekrarlanır.
K-Means basit ve hızlıdır, büyük veri kümelerinde bile lineer zamanlı çalışır. Ancak küme sayısını (k) önceden belirlemeniz gerekir, aykırı değerlere duyarlıdır ve yalnızca dairesel (veya dışbükey) şekilli kümeleri bulabilir.
DBSCAN Algoritması Nedir?
DBSCAN (Density-Based Spatial Clustering of Applications with Noise), yoğunluk tabanlı bir kümeleme algoritmasıdır. Kümeleri, veri noktalarının yoğun olduğu bölgeler olarak tanımlar. İki önemli parametresi vardır: eps (bir noktanın komşuluk yarıçapı) ve minPts (bir küme oluşturmak için gereken minimum nokta sayısı). Çalışma mantığı şöyledir:
- Her nokta için, eps yarıçapı içindeki komşu sayısı hesaplanır.
- Eğer komşu sayısı ≥ minPts ise nokta çekirdek nokta (core point) olur ve yeni bir küme başlatılır.
- Çekirdek noktaların komşuları da aynı kümeye eklenir; bu işlem yoğunluk erişilebilirliği ile genişler.
- Hiçbir kümeye ait olmayan noktalar gürültü (noise) olarak işaretlenir.
DBSCAN’ın en büyük avantajı, aykırı değerlere karşı dayanıklı olması ve rastgele şekilli kümeleri bulabilmesidir. Ayrıca küme sayısını önceden belirtmeye gerek yoktur. Dezavantajları ise parametre seçiminin zor olması (özellikle eps) ve yoğunluğun değişken olduğu verilerde başarısız olabilmesidir.
K-Means vs DBSCAN: Temel Farklar
Her iki algoritma da denetimsizdir, ancak aralarında birçok fark vardır. Aşağıdaki tabloda bu farkları karşılaştırdık:
| Özellik | K-Means | DBSCAN |
|---|---|---|
| Küme sayısı | Önceden belirtilmeli (k) | Otomatik olarak belirlenir |
| Küme şekli | Dairesel, dışbükey | Rastgele şekiller (içbükey, yamuk vb.) |
| Aykırı değer duyarlılığı | Yüksek | Düşük (aykırıları gürültü olarak işaretler) |
| Parametre sayısı | 1 (k) | 2 (eps, minPts) |
| Kararlılık | Başlangıç centroid’lerine bağlı | Deterministik (aynı veride aynı sonuç) |
| Hız | Hızlı (O(n*k*i)) | Yavaş (O(n log n)) |
| Yoğunluk değişimi | Duyarsız | Hassas (değişken yoğunlukta başarısız) |
| Gürültü işleme | Tüm noktaları bir kümeye atar | Gürültüyü ayrı tutar |
Hangi Durumda Hangisini Kullanmalı?
Algoritma seçimi, verinizin özelliklerine ve amacınıza bağlıdır. İşte bazı yönlendirici sorular:
- Küme sayısını biliyor musunuz? Evet → K-Means; Hayır → DBSCAN deneyin.
- Verinizde aykırı değerler var mı? Evet → DBSCAN (gürültü olarak işaretler); K-Means onları da kümeler.
- Küme şekilleri dairesel mi? Evet → K-Means iyi çalışır; Hayır (örneğin, kıvrımlı şekiller) → DBSCAN.
- Veri yoğunluğu değişken mi? Evet → DBSCAN zorlanabilir; K-Means daha sabit olabilir.
- Büyük veri seti? K-Means daha hızlıdır; DBSCAN’ın karmaşıklığı daha yüksektir.
Örneğin, bir müşteri segmentasyonu projesinde genellikle K-Means tercih edilir, çünkü segment sayısı iş hedeflerine göre belirlenir ve segmentler genellikle dairesel yapıdadır. Ancak bir anomali tespiti projesinde DBSCAN daha uygundur, çünkü aykırı değerleri doğal olarak ayrıştırır.
Sık Yapılan Hatalar ve Dikkat Edilmesi Gerekenler
K-Means kullanırken en sık yapılan hata, k değerini yanlış seçmektir. Dirsek yöntemi (elbow method) veya siluet skoru kullanarak optimal k belirlenmelidir. Ayrıca verinin standartlaştırılması (z-score) önemlidir; aksi halde farklı ölçekteki değişkenler mesafe hesaplamasını bozar. DBSCAN’da ise eps parametresi kritiktir. Çok küçük seçilirse tüm noktalar gürültü olur; çok büyük seçilirse her şey tek bir küme olur. minPts genellikle boyut sayısının iki katı olarak önerilir. DBSCAN ayrıca, değişken yoğunluklu verilerde zorluk yaşar; bu durumda HDBSCAN gibi varyantları veya OPTICS algoritması değerlendirilebilir.
Kümeleme, makine öğrenmesi projelerinin önemli bir adımıdır. Düzenlileştirme tekniklerini anlamak da model başarımını etkiler; L1 ve L2 düzenlileştirme yazımızda bu konuyu detaylandırdık. Boyut indirgeme yöntemleriyle de kümeleme öncesi veriyi görselleştirebilirsiniz; PCA vs t-SNE vs UMAP karşılaştırmamız bu konuda yardımcı olacaktır. Ayrıca gradient boosting modelleri de sınıflandırma ve regresyon problemlerinde kullanılır; XGBoost, LightGBM ve CatBoost rehberimize de göz atabilirsiniz.
Sonuç
K-Means ve DBSCAN, farklı güçlü yönleri olan iki temel kümeleme algoritmasıdır. K-Means basit, hızlı ve yorumlanması kolaydır; ancak küme sayısını bilmeyi gerektirir ve dairesel kümelere uygundur. DBSCAN ise daha esnektir, küme sayısını otomatik bulur, aykırı değerlere dayanıklıdır ve keyfi şekilli kümeleri tespit eder. Doğru algoritmayı seçmek için verinizin yapısını iyi analiz edin ve gerekirse her iki algoritmayı da deneyerek performansı değerlendirin.
Sık Sorulan Sorular
K-Means ve DBSCAN arasındaki en temel fark nedir?
En temel fark, K-Means'in küme sayısını önceden belirleme gereği ve yalnızca dairesel kümeler bulabilmesi, DBSCAN'ın ise küme sayısını otomatik olarak belirlemesi ve rastgele şekilli kümeleri tespit edebilmesidir. Ayrıca DBSCAN aykırı değerleri gürültü olarak işaretlerken, K-Means tüm noktaları bir kümeye atar.
DBSCAN'da eps ve minPts parametreleri nasıl seçilir?
eps için k-en yakın komşu mesafe grafiği (k-distance graph) kullanılır; diz noktasındaki mesafe eps değeri olarak alınır. minPts genellikle veri setindeki boyut sayısının iki katı veya daha fazla olarak seçilir (örneğin 2D veride minPts ≥ 4). Küçük veri setlerinde minPts=2 de kullanılabilir.
K-Means neden aykırı değerlere duyarlıdır?
K-Means, centroid’leri ortalamalarla güncellediği için aykırı değerler centroid’i kendine doğru çeker, bu da küme merkezlerinin kaymasına ve yanlış kümeleme sonuçlarına yol açar. Ayrıca aykırı değerler herhangi bir kümeye atanır, hiçbir zaman gürültü olarak işaretlenmez.
Hangi durumda K-Means yerine DBSCAN kullanmalıyım?
Verinizde aykırı değerler varsa, küme şekilleri dairesel değilse (örneğin içbükey veya halkasal), küme sayısını bilmiyorsanız veya gürültüyü ayrıştırmak istiyorsanız DBSCAN tercih edilmelidir. Ancak veri yoğunluğu çok değişkense veya büyük veri setlerinde hız önemliyse K-Means daha uygundur.






