Menu
CoddyTech

Kümelere Ad Ver

Coddy'nin Machine Learning Journey'sinin Denetimsiz Öğrenme bölümünün bir parçası. Ders 46 / 51.

Kümeler isimlerle değil, sayılarla gelir. Artık etiketleri kullanabilirsiniz: çapraz tablo, bu 3 kümedeki 1'ler, 7'ler ve 9'lar gibi, her kümeye hangi rakamların düştüğünü sayar:

Kümeler aşağıda, 1, 7 ve 9 rakamları yatayda olacak şekilde, sayıları gösteren 3'e 3 tablo. Her satırdaki en büyük sayı kutu içine alınmış: küme 0'da 166 tane dokuz, küme 1'de 176 tane yedi, küme 2'de 154 tane bir var

Her kümeye en sık görülen rakamının adını verin. O rakama ait taramalar doğru adlandırılmış sayılır:

ct = pd.crosstab(km.labels_, y)
names = ct.idxmax(axis=1)      # her satırın en büyük değerli sütunu
right = ct.max(axis=1).sum()
print(names.tolist(), right)

Bu, [9, 7, 1] 496 çıktısını verir: 541 taramanın 496'sı, tek bir etiket bile olmadan bulunan gruplar sayesinde doğru olarak adlandırıldı.

challenge icon

Görev

Orta

10 kümenizi adlandırın. Başlangıç kodunda, etiketler kullanılmadan eğitilmiş km bulunuyor; artık y içindeki rakamları kullanabilirsiniz.

  1. Kümeleri y ile çapraz tabloya dökün ve her kümeyi en sık görülen rakamın adıyla adlandırın.
  2. Adlarına göre sıralı olarak her küme için doğru adlandırılan tarama sayısını, kümenin boyutunu ve doğru adlandırılanların payını tam yüzde olarak yazdırın.
  3. Genel olarak doğru adlandırılan tarama sayısını, yüzdeyi 1 ondalık basamakla yazdırın.

5 küme için:

Cluster named 0: 175 of 177 scans (99%)
Cluster named 2: 160 of 367 scans (44%)
Cluster named 3: 168 of 531 scans (32%)
Cluster named 6: 179 of 359 scans (50%)
Cluster named 7: 176 of 363 scans (48%)
Named right without labels: 858 of 1797 scans (47.7%)

Kümelerinizden hangisi en zayıf ve içinde ne gizli?

Kendin dene

import pandas as pd
from sklearn.datasets import load_digits
from sklearn.decomposition import PCA
from sklearn.cluster import KMeans

# Rakamlara Bak bölümünden: 64 piksellik 1,797 tarama, mürekkep değerleri 0 ile 16 arasında
digits = load_digits()
X = digits.data
y = digits.target

# PCA ile Küçült bölümünden: Varyansın 80%'i, tarama başına 13 sayıda
pca = PCA(n_components=0.8)
X_small = pca.fit_transform(X)

# Rakamları Kümele bölümünden: Etiket kullanılmadan bulunan 10 küme
km = KMeans(n_clusters=10, n_init=10, random_state=0).fit(X_small)

# Kodunuzu aşağıya yazın
quiz iconKendini test et

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

Kendi başına pratik yap: Online Python derleyicisi