Đặt tên cho các cụm
Thuộc phần Học không giám sát trong hành trình Machine Learning của Coddy. Bài học 46 trên 51.
Các cụm được đánh số, không được đặt tên. Giờ bạn có thể dùng nhãn: bảng chéo đếm số lần mỗi chữ số xuất hiện trong từng cụm, như các chữ số 1, 7 và 9 trong 3 cụm này:
Đặt tên mỗi cụm theo chữ số xuất hiện nhiều nhất trong cụm đó. Số lần quét của chữ số ấy được tính là phân loại đúng:
ct = pd.crosstab(km.labels_, y)
names = ct.idxmax(axis=1) # cột có giá trị lớn nhất trong mỗi hàng
right = ct.max(axis=1).sum()
print(names.tolist(), right)Lệnh này in ra [9, 7, 1] 496: 496 trong số 541 lượt quét được phân loại đúng nhờ các nhóm tìm thấy mà không cần nhãn nào.
Thử thách
Trung bìnhĐặt tên cho 10 cụm của bạn. Phần khởi đầu có km, được khớp mà không cần nhãn; giờ bạn có thể dùng các chữ số trong y.
- Lập bảng chéo các cụm với
yvà đặt tên mỗi cụm theo chữ số phổ biến nhất trong cụm đó. - Theo thứ tự tên, in ra số ảnh quét được đặt tên đúng, kích thước và tỷ lệ đặt tên đúng của mỗi cụm, dưới dạng phần trăm nguyên.
- In ra tổng số ảnh quét được đặt tên đúng, với tỷ lệ phần trăm lấy đến 1 chữ số thập phân.
Với 5 cụm:
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%)Cụm nào của bạn yếu nhất, và có gì ẩn trong đó?
Tự làm thử
import pandas as pd
from sklearn.datasets import load_digits
from sklearn.decomposition import PCA
from sklearn.cluster import KMeans
# Từ bài «Quan sát các chữ số»: 1,797 ảnh quét, mỗi ảnh có 64 pixel, độ đậm nét từ 0 đến 16
digits = load_digits()
X = digits.data
y = digits.target
# Từ bài «Giảm kích thước bằng PCA»: 13 số cho mỗi ảnh quét giữ lại 80% phương sai
pca = PCA(n_components=0.8)
X_small = pca.fit_transform(X)
# Từ bài «Phân cụm các chữ số»: tìm 10 cụm mà không cần nhãn
km = KMeans(n_clusters=10, n_init=10, random_state=0).fit(X_small)
# Viết code bên dưới
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Học không giám sát
1Tìm các nhóm
Học không cần nhãnĐo độ tương đồngTự thực hiện K-MeansK-Means trong scikit-learnÔn tập: thành viên phòng gym7PCA trong thực tế
Quan sát 64 chiềuCác thành phần như mẫu hìnhNén và dựng lạiPCA trước khi xây dựng mô hìnhÔn tập: máy quét khuôn mặt10Dự án: Khám phá chữ số
Quan sát các chữ sốThu gọn bằng PCAPhân cụm chữ sốĐặt tên cho các cụmTìm những chữ số khác biệt2Chọn k
Quán tínhPhương pháp khuỷu tayĐiểm số SilhouetteChuẩn hóa thang đo trước khi phân cụmÔn tập: Các vùng giao hàngTự luyện tập: Trình biên dịch Python online