NMF học ra các phần cấu thành của ảnh
Bây giờ hãy vận dụng những gì bạn đã học về NMF để phân rã bộ dữ liệu chữ số (digits). Bạn tiếp tục được cung cấp các ảnh chữ số dưới dạng mảng 2D samples. Lần này, bạn còn được cung cấp một hàm show_as_image() để hiển thị ảnh được mã hóa bởi bất kỳ mảng 1D nào:
def show_as_image(sample):
bitmap = sample.reshape((13, 8))
plt.figure()
plt.imshow(bitmap, cmap='gray', interpolation='nearest')
plt.colorbar()
plt.show()
Sau khi hoàn thành, hãy dành chút thời gian xem các biểu đồ và để ý cách NMF biểu diễn chữ số như là tổng của các thành phần!
Bài tập này là một phần của khóa học
Unsupervised Learning bằng Python
Hướng dẫn bài tập
- Import
NMFtừsklearn.decomposition. - Tạo một đối tượng
NMFtên làmodelvới7thành phần. (7 là số ô trên màn hình hiển thị LED). - Áp dụng phương thức
.fit_transform()củamodellênsamples. Gán kết quả chofeatures. - Với mỗi thành phần của mô hình (truy cập qua
model.components_), gọi hàmshow_as_image()cho thành phần đó bên trong vòng lặp. - Gán hàng
0củafeatureschodigit_features. - In
digit_features.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# Import NMF
____
# Create an NMF model: model
model = ____
# Apply fit_transform to samples: features
features = ____
# Call show_as_image on each component
for component in model.components_:
____
# Select the 0th row of features: digit_features
digit_features = ____
# Print digit_features
print(digit_features)