NMF lär sig tolkningsbara delar

Oövervakad inlärning i Python

Benjamin Wilson

Director of Research at lateral.io

Exempel: NMF lär sig tolkningsbara delar

  • Ordfrekvensmatris för artiklar (tf-idf)
  • 20 000 vetenskapliga artiklar (rader)
  • 800 ord (kolumner)

Ordfrekvensmatris för artiklar

Oövervakad inlärning i Python

Tillämpa NMF på artiklarna

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)
Oövervakad inlärning i Python

NMF-komponenter är ämnen

 

nmf.components_

Oövervakad inlärning i Python

NMF-komponenter är ämnen

 

En rad ur nmf.components_ vald, med ett stapeldiagram för varje ord där höjden representerar tf-idf-värdet

Oövervakad inlärning i Python

NMF-komponenter är ämnen

 

Ruta med toppord och värden: species 2,95, plant 1,05, plants 0,78, osv.

Oövervakad inlärning i Python

NMF-komponenter är ämnen

 

Ny ruta med toppord från annan rad i nmf.components_: university 3,57, prof 1,19, college 0,88, osv.

Oövervakad inlärning i Python

NMF-komponenter

  • För dokument:
    • NMF-komponenter representerar ämnen
    • NMF-särdrag kombinerar ämnen till dokument
  • För bilder representerar NMF-komponenter bilddelar

 

Ruta med 3 ränder ≈ 0,98 × ruta med en rand + 0,91 × ruta med annan rand + 0,95 × ruta med ytterligare en rand

Oövervakad inlärning i Python

Gråskalebilder

  • "Gråskalebild" = inga färger, bara nyanser av grått
  • Mät pixelljusstyrka
  • Representera med värde mellan 0 och 1 (0 är svart)
  • Konvertera till 2D-matris

2×3 pixelruta med varierande grader av vitt/svart/grått

Oövervakad inlärning i Python

Exempel på gråskalebild

  • En 8×8 gråskalebild av månen, representerad som en matris

 

Pixlad illustration av månen med pil som pekar mot en talmatris med samma dimension och värden mellan 0 och 1

Oövervakad inlärning i Python

Gråskalebilder som platta arrayer

  • Räkna upp elementen
  • Rad för rad
  • Från vänster till höger, uppifrån och ned

2×3 pixelruta som pekar mot en array med tal

Oövervakad inlärning i Python

Gråskalebilder som platta arrayer

  • Räkna upp elementen
  • Rad för rad
  • Från vänster till höger, uppifrån och ned

2×3 pixelruta som pekar mot 2×3-matris med tal som pekar mot 1×6-array med tal

Oövervakad inlärning i Python

Koda en bildsamling

  • Samling av bilder med samma storlek
  • Koda som 2D-matris
  • Varje rad motsvarar en bild
  • Varje kolumn motsvarar en pixel
  • ... NMF kan tillämpas!

En rad ur nmf.components_ som representerar 2×3-pixelbilden

Oövervakad inlärning i Python

Visualisera urval

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()
Oövervakad inlärning i Python

Nu kör vi en övning!

Oövervakad inlärning i Python

Preparing Video For Download...