Menu
CoddyTech

Beri Nama pada Kelompok

Termasuk bagian Pembelajaran Tanpa Pengawasan dalam perjalanan Machine Learning di Coddy. Pelajaran 46 dari 51.

Cluster memiliki angka, bukan nama. Sekarang kamu dapat menggunakan label: tabel silang menghitung jumlah setiap digit yang masuk ke tiap cluster, seperti angka 1, 7, dan 9 ini dalam 3 cluster:

Tabel 3 kali 3 berisi jumlah, cluster ditampilkan ke bawah dan digit 1, 7, dan 9 ditampilkan ke samping. Jumlah terbesar di setiap baris diberi kotak: cluster 0 berisi 166 angka sembilan, cluster 1 berisi 176 angka tujuh, cluster 2 berisi 154 angka satu

Beri nama setiap cluster sesuai digit yang paling sering muncul. Hasil pemindaian digit tersebut dihitung benar:

ct = pd.crosstab(km.labels_, y)
names = ct.idxmax(axis=1)      # kolom dengan nilai terbesar di setiap baris
right = ct.max(axis=1).sum()
print(names.tolist(), right)

Ini mencetak [9, 7, 1] 496: 496 dari 541 pemindaian berhasil diidentifikasi dengan benar, berdasarkan grup yang ditemukan tanpa satu label pun.

challenge icon

Tantangan

Sedang

Beri nama pada 10 cluster-mu. Kode awal menyediakan km, yang dilatih tanpa label; sekarang kamu boleh menggunakan angka dalam y.

  1. Buat tabel silang cluster dengan y, lalu beri nama setiap cluster sesuai digit yang paling umum di dalamnya.
  2. Urutkan berdasarkan nama, lalu cetak jumlah pemindaian di setiap cluster yang diberi nama dengan benar, ukurannya, dan persentase jumlah pemindaian yang diberi nama dengan benar, sebagai persentase bilangan bulat.
  3. Cetak jumlah keseluruhan pemindaian yang diberi nama dengan benar, dengan persentase hingga 1 angka desimal.

Untuk 5 cluster:

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%)

Cluster mana yang paling lemah, dan apa yang tersembunyi di dalamnya?

Coba sendiri

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

# Dari Look at the Digits: 1,797 hasil pemindaian dengan 64 piksel, nilai tinta dari 0 hingga 16
digits = load_digits()
X = digits.data
y = digits.target

# Dari Shrink with PCA: 80% varians dalam 13 angka per hasil pemindaian
pca = PCA(n_components=0.8)
X_small = pca.fit_transform(X)

# Dari Cluster the Digits: 10 klaster, ditemukan tanpa label
km = KMeans(n_clusters=10, n_init=10, random_state=0).fit(X_small)

# Tulis kodemu di bawah ini
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Pembelajaran Tanpa Pengawasan

Latihan sendiri: Compiler Python online