Hiyerarşik Kümeleme ve R ile Dendogram Çizmek

Bir önceki yazımızda hiyerarşik kümelemeden bahsetmiştik. Noktaları ve kümeleri birleştire birleştire tek büyük bir kümeye ulaşmıştık ve bu küme ne işimize yarayacak demiştik. Cevabı dendogramda saklı. Aslında hiyerarşik kümelemede belirlenen adımlar uygulanırken her hareket kaydediliyor ve dendogram oluşturuluyor. Bu yazımızda dendogram ne işe yarar, nasıl oluşturulur, nasıl okunur? sorularının cevabını R ile yapacağımız basit bir örnek ile bulmaya çalışacağız. Böylelikle hem dendogramı biraz daha iyi anlayacağız hem de hiyerarşik kümelemeyi pekiştireceğiz.

R ile basit bir örnek üzerinden anlatalım. x ve y adında 10 elemanlı iki liste oluşturalım. Liste elemanlarının alacağı değerleri 1-5 arasında sınırlayalım.

set.seed(123)
x = runif(10,1,5)
set.seed(100)
y = runif(10,1,5)

x ve y listelerini dataframe yapalım.

df = data.frame(x,y)

Saçılma diyagramını çizelim.

plot(df)


Dataframe’i görüntüleyelim.

view(df)


Öklid yöntemi ile mesafeleri ölçüp mesafeler matrisini oluşturalım.

mesafeler = dist(df,method = "euclidean")

Bu matris üzerinde hclust() fonksiyonunu kullanarak hiyerarşik kümeleme yapalım.

mesafeler.clust <- hclust(mesafeler,method = "ward.D")

Dendogramımızı çizelim.

plot(mesafeler.clust)

Yukarıdaki dendogramda Y ekseni mesafeyi gösteriyor. X ekseninde ise dataframde bulunan her bir satırı temsil eden rakamlar mevcut. Her rakam saçılma diyagramındaki bir nokta ve dataframe deki x,y niteliklerinden oluşuyor. Dendogramın bacakları nokta veya kümelere bakar, üst çizgisi ise bacaklarda bulunan nokta veya kümeler arasındaki mesafenin Y eksenindeki izdüşümüdür. Aşağıda 5-8 ve 2-4 noktaları (satırları) için izdüşüm ve mesafe matrisindeki değerlerini görebiliriz.


Peki dendogram bize küme sayısı hakkında bir fikir verir mi? Elbette. Zaten baktığınızda kafanızda birşeyler canlanıyordur. Dendogramda optimal küme sayısını bulmak için bacak kesme operasyonu yapmalıyız. Yatay bir çizginin (dendogram üst çizgileri) kesmediği en uzun bacaktan yatay bir çizgi çekilir. Bu yatay çizgi kaç farklı bacak kesmiş ise küme sayısı olarak kesilen bacak sayısını kullanabiliriz.


Sonuç olarak 1 ile 5 arasında rastgele oluşturduğumuz 10 noktayı hiyerarşik kümeleme kullanarak iki küme altında toplamış olduk. Veriyle kalın…

 

Kapak görseli: https://unsplash.com/photos/Adg9B8NTxj0

Yazar Hakkında
Toplam 174 yazı
Erkan ŞİRİN
Erkan ŞİRİN
10 yılı aşkın süredir yurtiçi ve yurtdışında sektörde büyük veri mühendisliği, platform yönetimi ve makine öğrenmesi ile ilgili çalışmalar yürütmekte ve aynı zamanda birçok kurum ve şirkete danışmanlık ve eğitimler vermektedir. Çalışma alanları: Data ve MLOps platformları, gerçek zamanlı veri işleme, değişen veriyi yakalama (CDC) ve Lakehouse.
Yorumlar (Yorum yapılmamış)

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

×

Bir Şeyler Ara