Thu gọn bằng PCA
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 44 trên 51.
64 pixel là nhiều hơn số chiều cần thiết. PCA có thể nhắm đến một tỷ lệ phương sai thay vì một số lượng thành phần:
n_components=0.9 giữ lại số thành phần ít nhất chứa 90%:
pca = PCA(n_components=0.9)
X_small = pca.fit_transform(X)
print(pca.n_components_, X_small.shape)Lệnh này in ra 21 (1797, 21): một phần ba số lượng, phần lớn bức ảnh.
Không có phép co giãn nào ở đây: mọi pixel đều dùng chung một đơn vị, với giá trị mực từ 0 đến 16. Việc co giãn sẽ phóng đại các pixel gần như trống ở viền thành những đặc trưng đầy đủ.
Thử thách
Trung bìnhĐã đến lúc giảm kích thước các bản quét. Chương trình đọc tỷ lệ phương sai cần giữ lại, chẳng hạn 0.8.
- In ra số thành phần PCA cần thiết để giữ tỷ lệ đó trên các pixel thô, rồi trên các pixel đã chuẩn hóa.
- Giữ phiên bản cần ít thành phần hơn: in tên phiên bản và hình dạng của dữ liệu đã giảm chiều.
Với 0.6:
Raw pixels: 7 components
Scaled pixels: 11 components
Keep: raw pixels, shape (1797, 7)Từ đây trở đi, dự án giữ lại 80% phương sai.
Tự làm thử
from sklearn.datasets import load_digits
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler
# Từ Look at the Digits: 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ỷ lệ phương sai cần giữ lại, chẳng hạn 0.8
share = float(input())
# 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