Bắt đầu ngayBắt đầu miễn phí

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

Xem khóa học

Hướng dẫn bài tập

  • Import NMF từ sklearn.decomposition.
  • Tạo một đối tượng NMF tên là model với 7 thà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ủa model lên samples. Gán kết quả cho features.
  • Với mỗi thành phần của mô hình (truy cập qua model.components_), gọi hàm show_as_image() cho thành phần đó bên trong vòng lặp.
  • Gán hàng 0 của features cho digit_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)
Chỉnh sửa và Chạy Mã