NMF mempelajari bagian yang mudah dipahami

Unsupervised Learning in Python

Benjamin Wilson

Director of Research at lateral.io

Contoh: NMF mempelajari bagian yang mudah dipahami

  • Array frekuensi kata artikel (tf-idf)
  • 20.000 artikel ilmiah (baris)
  • 800 kata (kolom)

Array frekuensi kata artikel

Unsupervised Learning in Python

Menerapkan NMF pada artikel

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 in Python

Komponen NMF adalah topik

 

nmf.components_

Unsupervised Learning in Python

Komponen NMF adalah topik

 

satu baris nmf.components_ dipilih dan diagram batang per kata dengan tinggi mewakili tfidf

Unsupervised Learning in Python

Komponen NMF adalah topik

 

kotak dengan kata dan nilai teratas: species 2.95, plant 1.05, plants 0.78, dll.

Unsupervised Learning in Python

Komponen NMF adalah topik

 

kotak baru dengan kata teratas dari baris berbeda nmf.components_: university 3.57, prof 1.19, college 0.88, dll.

Unsupervised Learning in Python

Komponen NMF

  • Untuk dokumen:
    • Komponen NMF merepresentasikan topik
    • Fitur NMF menggabungkan topik menjadi dokumen
  • Untuk gambar, komponen NMF adalah bagian-bagian gambar

 

kotak dengan 3 garis ≈ 0,98 × kotak dengan satu garis + 0,91 × kotak dengan garis lain + 0,95 × kotak dengan garis lain

Unsupervised Learning in Python

Gambar grayscale

  • Gambar "grayscale" = tanpa warna, hanya abu-abu
  • Ukur kecerahan piksel
  • Nilai 0–1 (0 = hitam)
  • Ubah ke array 2D

persegi panjang 2×3 piksel dengan tingkat putih/hitam/abu berbeda

Unsupervised Learning in Python

Contoh gambar grayscale

  • Gambar bulan 8×8 grayscale, ditulis sebagai array

 

ilustrasi bulan berpiksel dengan panah ke array angka berdimensi sama berisi nilai 0–1

Unsupervised Learning in Python

Gambar grayscale sebagai array datar

  • Enumerasi entri
  • Baris demi baris
  • Kiri ke kanan, atas ke bawah

kotak piksel 2×3 menunjuk ke array dengan angka

Unsupervised Learning in Python

Gambar grayscale sebagai array datar

  • Enumerasi entri
  • Baris demi baris
  • Kiri ke kanan, atas ke bawah

kotak piksel 2×3 menunjuk ke array 2×3 dengan angka yang menunjuk ke array 1×6 angka

Unsupervised Learning in Python

Mengenkode kumpulan gambar

  • Kumpulan gambar berukuran sama
  • Enkode sebagai array 2D
  • Setiap baris = satu gambar
  • Setiap kolom = satu piksel
  • ... dapat menerapkan NMF!

Satu baris nmf.components_ yang merepresentasikan gambar piksel 2×3

Unsupervised Learning in Python

Memvisualisasikan sampel

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 in Python

Ayo berlatih!

Unsupervised Learning in Python

Preparing Video For Download...