Phân cụm chữ số
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 45 trên 51.
Giờ đến bước khám phá. Yêu cầu k-means chia 13 con số trong mỗi bản quét thành 10 nhóm, mỗi nhóm ứng với một chữ số mà bạn hy vọng thuật toán sẽ tìm ra. Thuật toán không bao giờ thấy nhãn:
km = KMeans(n_clusters=10, n_init=10, random_state=0).fit(X_small)Một tâm nằm trong không gian PCA, nơi k-means hoạt động: 13 con số, không có hình ảnh. pca.inverse_transform dựng lại 64 pixel của tâm đó:
value_counts() liệt kê các cụm từ lớn nhất đến nhỏ nhất, nên bộ sưu tập các tâm cụm trông như một bản thống kê về các ảnh quét.
Thử thách
Trung bìnhMã khởi đầu chứa các ảnh quét và X_small, phiên bản gồm 13 số của chúng.
- Tìm 10 cụm trong
X_smallbằng k-means. - Khôi phục 64 pixel của mỗi tâm cụm.
- Vẽ bộ sưu tập gồm 2 hàng, 5 cột, sắp xếp cụm lớn nhất trước: hiển thị mỗi tâm cụm dưới dạng ảnh 8 × 8 bằng
gray_r, đặt tiêu đề là kích thước cụm, chẳng hạn120 scans. Chỉnh bố cục cho gọn rồi hiển thị.
Nếu dùng 5 cụm, kết quả sẽ trông như sau:
Bài của bạn có 10 cụm. Coddy mô tả từng biểu đồ. k-means tự tìm ra những chữ số nào?
Tự làm thử
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_digits
from sklearn.decomposition import PCA
from sklearn.cluster import KMeans
# Từ phần Xem các chữ số: 1,797 ảnh quét, mỗi ảnh có 64 pixel, mức mực từ 0 đến 16
digits = load_digits()
X = digits.data
y = digits.target
# Từ phần Thu gọn 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)
# Viết code của bạn 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