K-Means'i Elle Uygulama
Coddy'nin Machine Learning Journey'sinin Denetimsiz Öğrenme bölümünün bir parçası. Ders 3 / 51.
K-means, k kümeyi bulmak için iki adımdan oluşan bir turu tekrarlar. Ata: her nokta en yakın merkeze katılır. Taşı: her merkez, noktalarının ortalamasına gider. Üç dondurma arabası:
NumPy'de, dists her merkez için bir sütun içeren bir uzaklık tablosuyken bir tur:
labels = dists.argmin(axis=1) # ata
for c in range(k):
centers[c] = X[labels == c].mean(axis=0) # taşıargmin(axis=1) her satırın en küçük sütununu verir: en yakın merkezi. Tur üstüne tur merkezler yerleşir; hiçbiri hareket etmediğinde k-means tamamlanır.
Görev
KolayBir tişört üreticisi, S, M ve L bedenlerini bugünün müşterilerine göre yeniden düzenliyor. Eski beden tablosu merkezleri başlatıyor, distances(people, centers) uzaklık tablosunu veriyor ve program çalıştırılacak tur sayısını okuyor.
- Her turda: herkesi ata, ardından her merkezi hareket ettir.
- Aşağıda gösterildiği gibi, her bedenin merkezini ve son turda o bedeni alan kişi sayısını yazdır.
Başka bir üretici için:
Rounds run: 2
S: chest 87.3 cm, length 65.1 cm, 14 people
M: chest 95.0 cm, length 68.9 cm, 31 people
L: chest 104.8 cm, length 72.6 cm, 45 peopleKendin dene
import numpy as np
# Aşağıdaki satırları değiştirmeyin
rng = np.random.default_rng(12)
chest = np.concatenate([rng.normal(88, 3, 30), rng.normal(98, 3.5, 35), rng.normal(110, 4, 25)])
length = np.concatenate([rng.normal(66, 1.8, 30), rng.normal(70, 2, 35), rng.normal(75, 2.2, 25)])
# 90 müşteri, her biri için bir satır: göğüs çevresi ve uzunluk cm cinsinden
people = np.round(np.column_stack([chest, length]), 1)
# Eski beden tablosu merkezleri başlangıç değerlerine ayarlar: S, M, L
sizes = ["S", "M", "L"]
centers = np.array([[85.0, 64.0], [90.0, 67.0], [96.0, 69.0]])
rounds = int(input())
# Mesafe tablosu: kişi başına bir satır, merkez başına bir sütun
def distances(X, centers):
table = np.zeros((len(X), len(centers)))
for c in range(len(centers)):
table[:, c] = np.sqrt(((X - centers[c]) ** 2).sum(axis=1))
return table
# Kodunuzu aşağıya yazın
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Denetimsiz Öğrenme bölümündeki tüm dersler
1Grupları Bulma
Etiketler Olmadan ÖğrenmeBenzerliği ÖlçmeK-Means'i Elle Uygulamascikit-learn ile K-MeansÖzet: Spor Salonu Üyeleri7Uygulamada PCA
64 Boyutu GörmekBileşenleri Örüntü Olarak GörmekSıkıştır ve Yeniden OluşturModelden Önce PCATekrar: Yüz Tarayıcı10Proje: Rakam Kaşifi
Rakamları İncelePCA ile KüçültRakamları KümeleKümelere Ad VerAykırı Olanları Bul2k Sayısını Seçme
AtaletDirsek YöntemiSilüet PuanlarıKümeleme Öncesi ÖlçeklemeÖzet: Teslimat BölgeleriKendi başına pratik yap: Online Python derleyicisi