Ana içeriğe atla

Silhouette Skoru: Kümeleme Kalitesi Nasıl Değerlendirilir

Formül, yorum aralıkları, bir scikit-learn örneği, doğru küme sayısını seçmek için kullanım ve diğer kümeleme metrikleriyle karşılaştırması dahil olmak üzere silhouette skoruna yönelik uygulamalı bir rehber.
Güncel 31 Tem 2026  · 12 dk. oku

Yapay Zekâyla Keşfet

ChatGPT'de açClaude'da açPerplexity'de aç

Bir kümeleme modeli eğittikten sonra, kümelerin gerçekten iyi olup olmadığını nasıl anlarsınız?

Evrensel bir cevap yok. Geleneksel denetimli öğrenmede, tahminleri gerçek etiketlerle karşılaştırabilir ve bir doğruluk değeri elde edebilirsiniz. Kümelemede bunu yapamazsınız. k=5 seçtiniz, ancak farklı bir k değeri daha iyi olur muydu? Etiketler olmadan, algoritmanın yapıyı bulup bulmadığını ya da veriyi rastgele parçalara ayırıp ayırmadığını anlayamazsınız.

Aradığınız metrik silhouette skorudur. Her bir noktanın, kendisine en yakın bir sonraki kümeye göre, atandığı kümeye ne kadar iyi uyduğunu gösterir ve en yaygın kullanılan metriklerden biridir. Etiket olmadan çalışır ve yorumlaması kolaydır.

Bu yazıda, formülü ve nasıl okunacağını adım adım anlatacak, scikit-learn ile bir Python örneği gösterecek ve ne zaman ideal bir çözüm olduğunu, ne zaman olmadığını ele alacağım.

Kümelmede yeni misiniz? Algoritmanın nasıl çalıştığını ve Python’da nasıl kullanacağınızı öğrenmek için scikit-learn ile k-Means Kümelemeye Giriş eğitimimizi okuyun. 

Silhouette Skoru Nedir?

Silhouette skoru, her bir noktanın kendi kümesine ne kadar iyi uyduğunu söyleyen, -1 ile 1 arasında bir sayıdır.

Bu sayı size iki şeyi gösterir:

  1. Bir noktanın, kendi kümesindeki diğer noktalara ne kadar yakın olduğu
  2. Ait olmadığı en yakın kümeye ne kadar uzak olduğu

Nokta kendi grubunun içinde iyi konumlanmış ve diğerlerinden uzaksa, skor yüksektir. Sınırdaysa, komşu bir kümeye kendi kümesinden daha yakınsa, skor düşüktür.

Özetle, silhouette skoru size bu dengeyi gösterir. Hem noktaların her küme içinde ne kadar sıkı gruplanmış olduğunu hem de kümelerin birbirinden ne kadar iyi ayrıldığını içerir. İkisi de eşit derecede önemlidir. Noktaları iyi gruplayıp kümeleri üst üste bindiren bir kümeleme işe yaramaz; kümeleri iyi ayırıp noktaları küme içinde gevşek bırakan bir kümeleme de öyle.

İyi ayrılmış kümeler ile örtüşen kümelerin karşılaştırması

İyi ayrılmış kümeler ile örtüşen kümelerin karşılaştırması

Daha yüksek skorlar, daha iyi tanımlanmış kümeler anlamına gelir. 1’e yakın bir skor, noktaların kendi kümesi içinde sıkı biçimde konumlandığını ve diğerlerinden uzak olduğunu gösterir. 0’a yakın bir skor, kümelerin örtüştüğünü veya sınırların belirsiz olduğunu gösterir. Negatif skor, noktanın atandığı kümeden çok farklı bir kümeye daha yakın olduğu anlamına gelir.

Silhouette Skoru Nasıl Çalışır?

Her noktanın kendi silhouette skoru vardır ve bu skor iki uzaklıktan türetilir.

İlki, noktanın atandığı kümedeki diğer noktalara olan ortalama uzaklığıdır. Bu küçükse, nokta kümedeki diğerlerine yakındır. Büyükse, nokta kümesine gevşek bağlıdır.

İkincisi, noktanın en yakın komşu kümedeki noktalara olan ortalama uzaklığıdır. Bu büyükse, nokta diğer kümelerden açıkça ayrılmıştır. Küçükse, nokta sınıra yakındır.

Bir noktanın kümelere olan uzaklığı

Bir noktanın kümelere olan uzaklığı

Silhouette değeri bu iki sayıyı karşılaştırır. Kendi kümesinin iyice içinde ve diğerlerinden uzak bir nokta yüksek skor alır. Sınırda olan (başka bir kümeye yakın) bir nokta düşük skor alır. Kendi kümesinden çok farklı bir kümeye daha yakın olan bir nokta negatif skor alır.

Burada hatırlanması gereken, tek başına hiçbir uzaklığın yeterli olmadığıdır. 

Sıkı bir küme, hemen yanında başka bir küme ile konumlanmış olabilir. İyi ayrılmış bir küme, kendi içinde dağınık olabilir. Atamaya güvenmek için iki uzaklığa da ihtiyaç vardır.

Silhouette Skoru Formülü

Tek bir nokta için formül şöyledir:

Silhouette skoru formülü

Silhouette skoru formülü

Burada:

  • a noktanın, aynı kümedeki diğer tüm noktalara olan ortalama uzaklığıdır

  • b noktanın, en yakın komşu kümedeki tüm noktalara olan ortalama uzaklığıdır

Formül, b ile a arasındaki farkı, ikisinden hangisi daha büyükse ona böler. 

Genel olarak, skoru yorumlamak için şu yönergeleri kullanabilirsiniz:

  • b, a’dan çok daha büyük olduğunda: Nokta, diğer kümelerden uzak ve kendi kümesine yakın demektir. Pay b’ye yakındır, payda da b’dir ve skor 1’e yaklaşır

  • a, b’den çok daha büyük olduğunda: Nokta, kendi kümesine nazaran başka bir kümeye daha yakındır. Pay, -a’ya yakın büyük bir negatif sayıdır, payda a’dır ve skor -1’e yaklaşır

  • a ve b kabaca eşit olduğunda: Nokta iki kümenin sınırındadır. Pay 0’a yakındır ve skor da öyle

Ayrıntılara birazdan daha fazla değineceğiz.

Silhouette Skoru Nasıl Yorumlanır

Silhouette skorunu okumak için kabaca bir rehber:

  • 1’e yakın: Noktalar kendi kümelerinin iyice içinde ve diğerlerinden uzaktır
  • 0,7 civarı: İyi kümeleme; gruplar belirgin ve noktalar kendi kümelerindeki diğer noktalara yakındır
  • 0,5 civarı: Makul kümeleme; kümeler arasında bir miktar örtüşme vardır ama hâlâ ayırt edilebilirler
  • 0’a yakın: Kümeler örtüşür veya sınırlar belirsizdir. Yapı gerçek olmayabilir
  • 0’ın altında: Noktalar yanlış kümeye daha yakındır. Bu, yanlış küme sayısı seçildiğinde veya veri zaten iyi kümelenmediğinde görülebilir.

Yukarıdaki eşikler sadece yaklaşık kılavuzlardır. İyi bir silhouette skorunun ne olduğu veri setine bağlıdır.

Seyrek ve yüksek boyutlu veriler, kümeler iyi olsa bile genellikle daha düşük skorlar üretir. Sıkı paketlenmiş, iyi ayrılmış veriler 0,7’nin üzerinde skorlar verebilir. Skorları evrensel bir eşikle değil, aynı veri seti üzerindeki modeller arasında karşılaştırmalısınız.

Silhouette Skoru Nasıl Hesaplanır

Silhouette skorunu bir seferde bir nokta için hesaplarsınız. Tek bir nokta için işleyişi şöyle:

Adım 1: Noktanın, kendi kümesindeki diğer her bir noktaya olan ortalama uzaklığı olan a’yı hesaplayın. Nokta 4 başka noktanın olduğu bir kümedeyse ve bu noktalara uzaklıklar 1.2, 1.5, 1.0 ve 1.3 ise:

Silhouette skoru hesaplama (1)

Silhouette skoru hesaplama (1)

Adım 2: En yakın komşu kümeyi bulun (noktanın kendi kümesi dışındaki, noktaya olan ortalama uzaklığı en düşük olan küme). Ardından, noktanın o kümedeki her bir noktaya olan ortalama uzaklığı olan b’yi hesaplayın. En yakın kümede uzaklıklar 2.4, 2.8, 3.0, 2.6 ve 2.7 olan 5 nokta varsa:

Silhouette skoru hesaplama (2)

Silhouette skoru hesaplama (2)

Adım 3: a ve b’yi formüle yerleştirin:

Silhouette skoru hesaplama (3)

Silhouette skoru hesaplama (3)

Adım 4: Bunu veri setindeki her nokta için tekrarlayın. Kümelemenin genel silhouette skoru, tüm nokta skorlarının ortalamasıdır.

Python’da Silhouette Skoru Örneği

Scikit-learn, silhouette skorunu hesaplamak için, her ikisi de sklearn.metrics içinde yer alan iki fonksiyon sunar:

  • silhouette_score() tüm kümeleme için ortalama skoru döndürür

  • silhouette_samples() her bir nokta için skoru döndürür

Bunları, sentetik bir veri setinde KMeans ile şöyle kullanabilirsiniz:

from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs
from sklearn.metrics import silhouette_score, silhouette_samples

# Synthetic data with 4 clusters
X, _ = make_blobs(n_samples=500, centers=4, cluster_std=1.0, random_state=42)

# Clustering model
kmeans = KMeans(n_clusters=4, random_state=42, n_init=10)
labels = kmeans.fit_predict(X)

# Overall silhouette score
score = silhouette_score(X, labels)
print(f"Overall silhouette score: {score:.3f}")

# Per-point silhouette values
sample_scores = silhouette_samples(X, labels)
print(f"First 5 point scores: {sample_scores[:5]}")

Yukarıdaki kod parçasını çalıştırdığınızda şu çıktıyı alacaksınız:

Python örnek çıktısı

Python örnek çıktısı

0,791’lik genel skor, dört kümenin iyi tanımlandığı ve ayrıldığı anlamına gelir.

Nokta bazlı skorlar, her veri noktasını analiz etmenizi sağlar. 

Yüksek bireysel skora sahip noktalar, kendi kümelerinin içinde iyi konumlanmıştır. Düşük veya negatif skorlu noktalar sınırda ya da yanlış atanmıştır; bu da aykırı değerleri tespit etmek veya sınırdaki noktaları gözden geçirmek için kullanışlıdır.

En Uygun Küme Sayısını Seçme

Silhouette skorunun en yaygın kullanımlarından biri, KMeans için doğru k değerini seçmektir. 

Bunu yapmak üç adımdan oluşur:

  1. Bir dizi k değeri için KMeans’i eğitin
  2. Her uygunluk için silhouette skorunu hesaplayın
  3. Skoru en yüksek olan k’yı seçin

Kodu şöyle yazabilirsiniz:

from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs
from sklearn.metrics import silhouette_score

X, _ = make_blobs(n_samples=500, centers=4, cluster_std=1.0, random_state=42)

# Fit KMeans for k=2 to k=10 and keep track of the silhouette score for each
k_values = range(2, 11)
scores = []
for k in k_values:
    kmeans = KMeans(n_clusters=k, random_state=42, n_init=10)
    labels = kmeans.fit_predict(X)
    scores.append(silhouette_score(X, labels))
    print(f"k={k}: silhouette = {scores[-1]:.3f}")

Her k için göreceğiniz çıktı skoru şudur:

Farklı k değerlerinde silhouette skoru

Farklı k değerlerinde silhouette skoru

En yüksek skor k=4’te. Seçmek isteyeceğiniz değer budur.

Unutulmaması gereken bir nokta, silhouette skorunun alan bilgisinin yerine geçmediğidir. İş probleminiz 5 müşteri segmenti gerektiriyor ve silhouette en yüksek 4’te çıkıyorsa, otomatik olarak 4’ü seçmeyin. Metrik, veride yapının en temiz olduğu yeri gösterir, ancak bazen doğru küme sayısı, probleminizde anlamlı olana karşılık gelendir.

Silhouette Skoru ve Diğer Kümeleme Metrikleri

Silhouette skoru, kümelemeyi değerlendirmek için muhtemelen en yaygın metriktir, ancak tek seçenek değildir. Alternatiflerle nasıl karşılaştırıldığını görelim.

Silhouette skoru vs. dirsek yöntemi

Dirsek yöntemi, KMeans’te k seçimi için görsel bir tekniktir. Bir dizi k değeri için modelleri uydurur, atalet (küme içi kareler toplamı) ile k arasındaki grafiği çizer ve eğrinin keskin bir dirsek yaptığı değeri seçersiniz.

Burada avantaj, hızlı ve kolay olması nedeniyle dirsek yöntemindedir. Ancak “dirsek” her zaman bariz değildir. Dağınık verilerde eğri bazen düzgün görünebilir ve nerede büküldüğünü söyleyemezsiniz.

Silhouette skoru her bir k için gerçek bir sayı verir; böylece daha anlamlı bir karşılaştırma yapabilirsiniz. Hesaplaması daha yavaş olsa da kararı görsel yoruma bırakmaz.

Hızlı bir sağlama için dirsek yöntemini kullanın. Savunabileceğiniz bir yanıt gerektiğinde silhouette skorunu kullanın.

Silhouette skoru vs. Davies-Bouldin indeksi

Davies-Bouldin indeksi (DBI), her küme ile en benzer kümesi arasındaki ortalama benzerliği ölçer. Daha düşük DBI daha iyi kümeleme demektir; mükemmel skor 0’dır.

DBI, benzerliği hesaplamak için küme merkezlerini kullanır; bu da onu büyük veri setlerinde silhouette skorundan daha hızlı kılar. Ayrıca sıkı ve iyi ayrılmış kümeleri ödüllendirme konusunda benzer bir sezgiye dayanır.

Ancak DBI yalnızca kümelemenin tamamı hakkında bilgi verir. Silhouette skoru ise nokta bazında da skor verir; böylece sınırdaki noktaları ve aykırı değerleri bulabilirsiniz.

Büyük veri setleriyle çalışıyor ve hız önemliyse DBI kullanın. Bireysel noktaları incelemek istediğinizde silhouette skorunu kullanın.

Silhouette skoru vs. Calinski-Harabasz indeksi

Calinski-Harabasz indeksi (CH), varyans oranı ölçütü olarak da bilinir; kümeler arası dağılımın, küme içi dağılıma oranıdır. Daha yüksek skorlar daha iyi kümeleme anlamına gelir ve skorun üst sınırı yoktur.

CH hızlıdır ve yalnızca küme düzeyinde istatistikler içerdiği için büyük veri setlerinde iyi çalışır. Silhouette ve DBI gibi, dışbükey ve iyi ayrılmış kümelerde en iyi performansı verir.

CH’nin doğal bir ölçeği de yoktur; bu nedenle CH skorlarını farklı veri setleri arasında değil, aynı veri seti üzerindeki modeller arasında karşılaştırabilirsiniz.

Veri setiniz büyükse ve hızlı sonuçlara ihtiyacınız varsa CH kullanın. Yorumlanabilirlik ve bireysel veri noktalarına ilişkin içgörüler istediğinizde silhouette skorunu kullanın.

İçsel vs. dışsal kümeleme metrikleri

Yukarıdaki metriklerin tümü (silhouette, DBI, CH, dirsek) içsel metriklerdir. Yalnızca verinin kendisini kullanarak, yerleşik etiketler olmadan kümelemeyi değerlendirirler. Bu, etiketlerin olmadığı gerçek dünya kümeleme problemleri için onları standart seçim yapar.

Dışsal metrikler, küme atamalarını bilinen etiketlerle karşılaştırır. Ayarlanmış Rand İndeksi (ARI), Normalize Karşılıklı Bilgi (NMI) ve homojenlik yaygın örneklerdir. Etiketleriniz olduğunda ve bir kümeleme algoritmasının onları ne kadar iyi bulduğunu test etmek istediğinizde kullanılırlar.

Etiketleriniz olmadığında, ki tipik durum budur, içsel metrikleri kullanın. Etiketli veriler üzerinde kümeleme algoritmalarını kıyaslarken dışsal metrikleri kullanın.

İşte metriklerin yan yana kısa bir özeti:

Yöntem Aralık En iyi değer Hız Kullanım amacı
Silhouette skoru -1 ile 1 1’e yakın Büyük veri setlerinde yavaş Yorumlanabilirlik ve nokta bazlı içgörüler
Dirsek yöntemi 0’dan sonsuza Dirseği arayın Hızlı Hızlı kontroller
Davies-Bouldin indeksi 0’dan sonsuza 0’a yakın Hızlı Büyük veri setleri
Calinski-Harabasz indeksi 0’dan sonsuza Yüksek daha iyidir Hızlı Büyük, etiketlenmemiş veri setleri

Silhouette skorunun alternatiflerle karşılaştırması

Silhouette Skorunun Sınırlamaları

Silhouette skorunun bilinmeye değer birkaç sınırlaması vardır:

  • Uzaklık tabanlı kümeleme varsayımı: Silhouette skoru varsayılan olarak Öklid uzaklığına dayanır. KMeans ve diğer merkez tabanlı algoritmalar için iyi çalışır; ancak kümelerin keyfi şekillere sahip olduğu ve net bir merkezinin bulunmadığı DBSCAN gibi yoğunluk tabanlı yöntemlere uygun değildir
  • Daha küçük, iyi ayrılmış kümelerle en iyi çalışır: Metrik, birbirinden uzak, sıkı ve küresel kümeleri ödüllendirir. Verinizde kümeler birbirine yakınsa veya örtüşüyorsa, kümeleme doğru olsa bile skor düşük çıkar
  • Düzensiz küme şekillerinde en iyisi değildir: Gerçek dünyada kümeler her zaman dışbükey değildir. Verinizde durum böyle değilse, atamalar doğru olsa bile kümeler düşük silhouette skorları alabilir
  • Büyük veri setlerinde hesaplama maliyeti: Silhouette skorunu hesaplamak, noktalar arasındaki ikili uzaklıkları gerektirir ve O(n^2) ölçeklenir. Milyonlarca noktalı veri setlerinde bu pahalı hale gelir
  • Seçilen uzaklık metriğine duyarlılık: Skor, Öklid, Manhattan, kosinüs veya başka bir uzaklık kullanmanıza bağlı olarak değişir. Veriniz Öklid varsayımlarını karşılamıyorsa, silhouette skoru yanıltıcı olabilir

Silhouette Skorunu Kullanma İçin En İyi Uygulamalar

Silhouette skoru, birkaç temel uygulamayı takip ettiğinizde en iyi sonucu verir:

  • Birden çok kümeleme çözümünü karşılaştırın: Tek bir silhouette skoru hesaplamakla yetinmeyin. Farklı k değerleriyle (veya farklı algoritmalarla) kümeleme modelleri uydurmalı ve skorlarını yan yana karşılaştırmalısınız
  • Skorla birlikte kümeleri görselleştirin: Tek bir sayı tüm hikayeyi anlatmaz. Kümelerinizi çizin ve şekillerin mantıklı olup olmadığına bakın
  • Yalnızca en yüksek skor için optimize etmeyin: En yüksek silhouette skoru her zaman doğru yanıt değildir. k=2 için yapılan bir kümeleme, probleminizde 5 küme anlamlı olsa bile, çoğu zaman k=5’ten daha yüksek skor verir
  • Alan bilgisi ile birleştirin: Skor, veride yapının en temiz olduğu yeri gösterir. Alan bilgisi ise hangi yapının gerçekten faydalı olduğunu söyler. İkisini birlikte kullanın
  • Birden çok kümeleme metriğini değerlendirin: Silhouette, DBI, CH ve diğer metrikler kümeleme kalitesini farklı şekillerde ölçer. Aynı şeyi söylediklerinde doğru yoldasınız; söylemediklerinde ise veriye bakın

Sonuç

Silhouette skoru, hem noktaların ne kadar sıkı gruplanmış olduğunu hem de kümelerin birbirinden ne kadar iyi ayrıldığını gösterdiği için, kümelemeyi değerlendirmenin en sezgisel yollarından biridir. 

Hesaplamayı nokta nokta yapar, sonuçları ortalarsınız ve -1 ile 1 arasında tek bir sayı elde edersiniz. 1’e yakın skorlar daha iyi tanımlanmış kümeler anlamına gelir; 0’a yakın veya 0’ın altındaki skorlar ise yapının aslında gerçek bir yapı olmadığını gösterir

Ancak silhouette skoru sadece bir başlangıçtır. Bunu küme görselleştirmeleri ve en önemlisi, probleminize ilişkin alan bilginizle birlikte kullanmalısınız. Tüm bunlar aynı yöne işaret ettiğinde sonuca güvenebilirsiniz.

Silhouette skoru, Python’da Denetimsiz Öğrenme başlığının daha büyük resminin bir parçasıdır. Bugün kaydolun ve etiketlenmemiş verileri nasıl kümeler, dönüştürür, görselleştirir ve içgörü çıkarırsınız öğrenin.


Dario Radečić's photo
Author
Dario Radečić
LinkedIn
Hırvatistan merkezli Kıdemli Veri Bilimci. 700’ün üzerinde yayımlanmış makaleyle 10 M+ görüntüleme elde eden, önde gelen bir teknoloji yazarı. TPOT ile Makine Öğrenimi Otomasyonu kitabının yazarı.
Konular

DataCamp ile öğrenin

Kurs

R ile Kümeleme Analizi

4 sa
44.1K
Ayrıntıları GörRight Arrow
Kursa Başla
Devamını GörRight Arrow