Veri Madenciliğinde Kümeleme (Clustering)

√Kümeleme sınıflandırmadan farklı olarak denetimsiz/eğitimsiz bir yöntemdir. Sınıflandırmada bir hedef değişken vardır ve veri setinin bir kısmı eğitim için ayrılır, modelin öğrenmesini sağlanır. Bu öğrenmeye göre aynı niteliklere sahip yeni bir nesnenin hangi sınıfa dahil olacağı tahmin edilir. Kümelemede ise hedef değişken yoktur dolayısıyla sınıf da yoktur. Sınıflandırmada amaç benzer nesneleri aynı sınıfa dahil etmek iken; kümelemede amaç benzer nesneleri aynı grupta toplamaktır. Örneğin; Kırşehirliler buraya, psikopatlar oraya, salağa yatanlar öbür tarafa gibi. Sınıflandırmada zaten bir salağa yatan tayfa vardır ve bunlar benzer, ortak özellikler taşıyordur, boynu bükük durmak, sessiz davranmak, aşırı uyumlu görünmek gibi. Yeni biriyle karşılaştığımızda bu kişinin özellikleri en çok salağa yatanlar ile benzeşiyor ise “Haa! bak bu da salağa yatanlardan” diye sınıflandırırız.

Kümelemede kaç grup oluşacağı verinin içindeki nesnelerin birbirine benzerlik derecesine göre değişir. Örneğin 100 kişilik bir grupta herkesin adı Ahmet ve yaşı da 30 ise bu grubu ancak tek kümeye ayırabiliriz. Farklı kümelerin oluşması için nesnelerin tamamen birbirine benzememesi çok fazla da birbirinde ayrı olmaması gerekir. Herkesin adı Ahmet olsun ancak yaşlar farklı olsun. İşte şimdi bu grubu yaşlara göre kümeleyebiliriz. Çocuk, genç, orta yaş, yaşlı gibi. Peki isimler farklı olsa ne olur? Fark eden pek bir şey olmaz çünkü iki yaşın birbirine ne kadar yakın ve uzak olduğunu ölçebiliriz ancak isimlerle bunu yapamayız. Öyleyse bu örnekte isim niteliğini kümelemek için kullanamayız. Peki isimden vazgeçtim sadece yaşa göre kümeleyelim, kaç küme olacak? 100 kişilik grupta diyelim ki 40 farklı yaş olsun. Ne yapacağız 40 farklı küme mi oluşturacağız yoksa 4 mü 14 mü? İşte bu noktada işleri biraz daha kolaylaştırmak için kullanıcı katkısı alınır. Az önceki örneğimizde yaşlara göre dört küme belirleyelim demiştik. Biz kümeleme algoritmasına 4 küme yap dediğimizde o da işini ona göre yapacaktır. 14 küme yap deseydik bile 100 kişilik grubu 14 kümeye ayıracaktı elbet. Ancak 14 kümeyi yorumlarken zorlanabiliriz. Ne iş göreceğiz 14 yaş kümesiyle mesela. Ancak 4 gibi makul bir sayı belirlersek yorumlanabilirliği ve faydası daha çok olan bir küme elde etmiş oluruz. Çocuklara şunu yapalım, gençlere şunu verelim, yaşlılar böyle yapsın gibi. Küme sayısını sezgisel olarak belirlemenin yanında bir çok yöntemle de belirlenebilir. Ancak sorumluluk araştırmacıdadır 🙂

Benzerlik ve Uzaklık

Kümelemede sık sık kullanılan iki kavram: benzerlik ve uzaklık. Benzerlik ve uzaklık farklı kavramlar önce onu belirtelim. Ben de belli bir zamana kadar ikisinin farkını tam anlayamamıştım, umarım şimdi anlamışımdır. İkisini de ölçen farklı yöntemler var. Nesneleri birbirine benzerliklerine göre bir kümede toplarız demiştik. Makineler rakamlardan anlar, biz de makineye uzaklık ve benzerliği anlatmak için işi rakamlara dökmeliyiz. Elimizdeki veriyi saçılma diyagramına saçalım ve birbirine yakın nesneler aynı kümededir diyelim. Analitik uzayda iki nokta (her nokta bir nesneyi temsil eder) arası uzaklığı birbirine yakın olan nesneler aynı kümede toplanabilir deriz. Aynı kümede olan nesneler olabildiğince birbirine yakın diğer kümelerden ise uzak olmalıdır. Peki nesneler iki boyutlu analitik uzayda temsil edilebilecek kadar basit iki niteliğe sahip değil ise uzaklığı nasıl hesaplayacağız?

UZAKLIK

Numerik nitelikler için Öklid (Euclid)  sağolsun buna çözüm bulmuş. Öklid mesafesi, çok boyutlu uzayda nesnelerin birbirine olan uzaklığıdır. İki nesne ne kadar birbirine yakın ise öklit uzaklığı da o kadar sıfıra yakın olur. İki nesne arasındaki mesafe Euclid’e göre:

 İkiNesneArasıMesafe = NiteliklerArasıFarklarKarelerToplamı

a ve b iki ayrı nesne olsun bu nesnelerin i=1,2,3… z’ye kadar nitelikleri olsun.

$ mes(a,b)=\sqrt { \sum _{ i=1 }^{ z }{ ({ a }_{ i }-{ b }_{ i })^{ 2 } } } $

a = {1,2,3} ve b = {4,5,6} ikisi arasındaki mesafeyi hesaplayalım:

$ mes(a,b)=\sqrt { (1-4)^{ 2 }+(2-5)^{ 2 }+(3-6)^{ 2 } } $
$ mes(a,b)=\sqrt { 9+9+9 } $
$ mes(a,b)=5,19 $

Nitelikler nümerik değil ise başka yöntemler de kullanılabilir. Örneğin; Hamming.

BENZERLİK

Benzerlik ise iki nokta arasındaki mesafenin tersi bir anlama sahiptir. Benzerlik konusunda farklı ölçüm yöntemleri olsa da genel formülü şu şekilde ifade edebiliriz.

$ ikiNesneArasiBenzerlik = \frac { 1 }{ 1+ikiNoktaArasiMesafe }  $

Benzerliği ölçmek için kullanılan yöntemlerden bazıları şunlardır: Dice, Jaccard, Kosinüs (Cosine), Pearson ve Overlap. Kosünüs için örneğimizi burada yapalım. Kosinüs formülü:

$ { Benzerlik(a,b) }_{ KOSINUS}=\frac { \sum _{ i=1 }^{ n }{ { a }_{ i }b_{ i } } }{ \sqrt { \sum _{ i=1 }^{ n }{ { a }_{ i }^{ 2 } } } \sum _{ i=1 }^{ n }{ { b }_{ i }^{ 2 } } }  $

Rakamları formüldeki yerine koyalım:

$ { Benzerlik(a,b) }_{ KOSINUS }=\frac { (1*4)+(2*5)+(3*6) }{ \sqrt { \left[ { 1 }^{ 2 }+2^{ 2 }+3^{ 2 } \right] \left[ { 4 }^{ 2 }+5^{ 2 }+6^{ 2 } \right] } } = \frac { 32 }{ 32,83 } = 0,97 $

Yazar Hakkında
Toplam 179 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