Silüet Puanları
Coddy'nin Machine Learning Journey'sinin Denetimsiz Öğrenme bölümünün bir parçası. Ders 8 / 51.
Atalet k ile her zaman iyileşir, bu yüzden bir dirsek noktasına ihtiyaç duyar. Silüet her noktaya daha adil bir soru sorar: Kendi grubuma mı yoksa sıradaki gruba mı daha yakınım?
Bir nokta (b - a) / max(a, b) puanı alır: grubu içinde sıkı biçimde kümelenmişse 1'e yakın, sınırdaysa 0'a yakın, yanlış gruptaysa 0'ın altında. Ortalama puan, kümelemenin puanını verir:
from sklearn.metrics import silhouette_score
for k in [2, 3, 4]:
km = KMeans(n_clusters=k, n_init=10, random_state=0)
km.fit(X)
print(k, f"{silhouette_score(X, km.labels_):.3f}")Elmalar için bu, şunu yazdırır:
2 0.534
3 0.657
4 0.545En yüksek değerine en iyi k'da, burada 3'te ulaşır; bu noktada noktalar kendilerini en çok ait oldukları yerde hisseder.
Görev
Kolayİki tahminci, kıyılarına vuran fırtına türlerinin sayısı konusunda anlaşamıyor. Başlangıç kodunda 150 fırtına, en yüksek rüzgâr ve yağış verileri bulunuyor; önce Ana'nın k değerini, ardından Ben'inkini okuyor.
- Her k değerini silhouette puanına göre 3 ondalık basamakla puanla.
- Hangi tahmincinin k değerinin daha iyi uyduğunu yazdır.
- 2 ile 8 arasındaki en iyi k değerini puanıyla birlikte yazdır.
Başka bir kıyı için:
Ana, k = 2: 0.512
Ben, k = 3: 0.574
Ben's k fits better
Best from 2 to 8: k = 3 (0.574)Kendin dene
import numpy as np
from sklearn.cluster import KMeans
from sklearn.metrics import silhouette_score
# Aşağıdaki satırları değiştirmeyin
rng = np.random.default_rng(6)
# Dört fırtına türü: tipik rüzgâr ve yağış değerleri ile her türden kaç tane olduğu
kinds = [(30, 8, 40), (12, 34, 35), (21, 21, 30), (11, 9, 45)]
parts = []
for w, r, n in kinds:
parts.append(np.column_stack([rng.normal(w, 2.5, n), rng.normal(r, 3, n)]))
# Bir kıyıdaki 150 fırtına, her satırda bir fırtına: en yüksek rüzgâr hızı (m/s) ve yağış miktarı (saatte mm)
storms = np.round(np.concatenate(parts), 1)
# İki hava tahmincisinin belirlediği fırtına türü sayıları
k_ana = int(input())
k_ben = int(input())
# 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