K-Means’e Giriş
Coddy'nin Makine Öğrenmesine Giriş kursunda ders 9 / 19.
K-means, en basit ve en yaygın kullanılan kümeleme algoritmalarından biridir. n adet gözlemi, her bir gözlemin en yakın ortalamaya (merkez noktası - centroid) sahip kümeye ait olduğu ve kümenin bir prototipi olarak hizmet ettiği k adet kümeye bölmeyi amaçlar. Diyelim ki elinizde bir sürü farklı meyve var ve bunları türlerine göre sepetlere ayırmak istiyorsunuz ama etiketleriniz yok. K-means, meyveler yerine veri noktalarıyla tam olarak bunu yapmanıza yardımcı olur!

Incheol, CC BY-SA 4.0, Wikimedia Commons aracılığıyla
K-Means Nasıl Çalışır?
Algoritma, bir veri kümesini k kümeye bölmek için basit ve verimli bir yinelemeli prosedür izler.
- Merkez Noktalarını Başlatın: İlk olarak, veri kümesinden başlangıç merkez noktaları olarak
knokta seçin. Bu noktalar rastgele veya belirli bir stratejiye göre seçilebilir. - Kümeleri Atayın: Veri kümesindeki her bir nokta için, en yakın merkez noktasını bulun (Öklid mesafesi gibi mesafe ölçümleri kullanarak) ve noktayı o kümeye atayın.
- Merkez Noktalarını Güncelleyin: Tüm noktalar kümelere atandıktan sonra, her kümedeki tüm noktaların ortalamasını alarak merkez noktalarını yeniden hesaplayın.
- 2. ve 3. Adımları Tekrarlayın: Yukarıdaki adımlar, merkez noktaları artık önemli ölçüde değişmeyene kadar tekrarlanır. Bu, algoritmanın yakınsadığı ve kümelerin kararlı olduğu anlamına gelir.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Görev
KolayOptimal küme sayısını, k, belirlemek çok önemli bir adımdır. Bunun için çeşitli yöntemler vardır ve Dirsek Yöntemi (Elbow Method) en popüler olanlardan biridir.
Bu teknik, K-means algoritmasını k=1'den k=n'ye kadar sürekli olarak yinelemeyi içerir. Her k değeri için, küme içi kareler toplamı (WCSS) değerini hesaplarız.
Her kümenin bir merkezi (centroid) vardır; WCSS, merkezden olan tüm uzaklıkların karelerinin toplamıdır.
Aynı kümedeki veri noktalarının bir listesini alan ve kümenin wcss değerini döndüren wcss adında bir fonksiyon oluşturun. Şu adımları izleyin:
Merkezi (centroid) bulun - Bir merkez, bir kümedeki tüm noktaların ortalama konumunu temsil eden bir noktadır:

Örneğin, işte iki adet 3D noktadan oluşan bir liste:(1, 2 ,3), (4, 5, 6). Merkez şudur:(1 + 4) / 2 = 2.5, (2 + 5) / 2 = 3.5, (3 + 6) / 2 = 4.5, >> (2.5, 3.5, 4.5)- Her nokta ile merkez arasındaki Öklid mesafesini (Euclidian distance) hesaplayın
- Tüm mesafelerin toplamını nokta sayısına bölerek döndürün
Kendin dene
def euclidian_distance(point_a, point_b):
return (sum([(point_a[i] - point_b[i])**2 for i in range(len(point_a))]))**0.5
def wcss(points):
# Buraya kod yazınMakine Öğrenmesine Giriş bölümündeki tüm dersler
Kendi başına pratik yap: Online Python derleyicisi