NMF học ra các phần dễ hiểu

Unsupervised Learning bằng Python

Benjamin Wilson

Director of Research at lateral.io

Ví dụ: NMF học ra các phần dễ hiểu

  • Mảng tần suất từ của bài viết (tf-idf)
  • 20.000 bài báo khoa học (hàng)
  • 800 từ (cột)

Mảng tần suất từ của bài viết

Unsupervised Learning bằng Python

Áp dụng NMF cho các bài viết

print(articles.shape)
(20000, 800)
from sklearn.decomposition import NMF
nmf = NMF(n_components=10)
nmf.fit(articles)
NMF(n_components=10)
print(nmf.components_.shape)
(10, 800)
Unsupervised Learning bằng Python

Thành phần NMF là chủ đề

 

nmf.components_

Unsupervised Learning bằng Python

Thành phần NMF là chủ đề

 

một hàng của nmf.components_ được chọn và biểu đồ cột cho từng từ với chiều cao thể hiện tfidf

Unsupervised Learning bằng Python

Thành phần NMF là chủ đề

 

hộp với các từ và giá trị hàng đầu: species 2.95, plant 1.05, plants 0.78, v.v.

Unsupervised Learning bằng Python

Thành phần NMF là chủ đề

 

hộp mới với các từ hàng đầu từ một hàng khác của nmf.components_: university 3.57, prof 1.19, college 0.88, v.v.

Unsupervised Learning bằng Python

Thành phần NMF

  • Với văn bản:
    • Thành phần NMF đại diện cho chủ đề
    • Đặc trưng NMF kết hợp chủ đề thành tài liệu
  • Với ảnh, thành phần NMF là các phần của ảnh

 

hộp có 3 sọc xấp xỉ bằng 0.98 lần hộp có một sọc cộng 0.91 lần hộp có sọc khác cộng 0.95 lần hộp có sọc khác

Unsupervised Learning bằng Python

Ảnh grayscale

  • Ảnh "grayscale" = không màu, chỉ mức xám
  • Đo độ sáng điểm ảnh
  • Biểu diễn bằng giá trị 0–1 (0 là đen)
  • Chuyển thành mảng 2D

hình chữ nhật 2x3 ô điểm ảnh với các mức trắng/đen/xám khác nhau

Unsupervised Learning bằng Python

Ví dụ ảnh grayscale

  • Ảnh mặt trăng 8x8 dạng grayscale, viết dưới dạng mảng

 

minh họa mặt trăng dạng pixel với mũi tên chỉ tới mảng số cùng kích thước, giá trị từ 0 đến 1

Unsupervised Learning bằng Python

Ảnh grayscale dưới dạng mảng phẳng

  • Đánh số các phần tử
  • Theo từng hàng
  • Từ trái sang phải, trên xuống dưới

hộp điểm ảnh 2x3 trỏ tới mảng số

Unsupervised Learning bằng Python

Ảnh grayscale dưới dạng mảng phẳng

  • Đánh số các phần tử
  • Theo từng hàng
  • Từ trái sang phải, trên xuống dưới

hộp điểm ảnh 2x3 trỏ tới mảng 2x3 số rồi trỏ tới mảng 1x6 số

Unsupervised Learning bằng Python

Mã hóa một bộ ảnh

  • Bộ ảnh cùng kích thước
  • Mã hóa thành mảng 2D
  • Mỗi hàng là một ảnh
  • Mỗi cột là một điểm ảnh
  • ... có thể áp dụng NMF!

Một hàng của nmf.components_ đại diện ảnh điểm ảnh 2x3

Unsupervised Learning bằng Python

Trực quan hóa mẫu

print(sample)
[ 0.   1.   0.5  1.   0.   1. ]
bitmap = sample.reshape((2, 3))
print(bitmap)
[[ 0.   1.   0.5]
 [ 1.   0.   1. ]]
from matplotlib import pyplot as plt
plt.imshow(bitmap, cmap='gray', interpolation='nearest')
plt.show()
Unsupervised Learning bằng Python

Ayo berlatih!

Unsupervised Learning bằng Python

Preparing Video For Download...