La NMF identifie les parties interprétables

Apprentissage non supervisé en Python

Benjamin Wilson

Director of Research at lateral.io

Exemple : La NMF identifie les parties interprétables

  • Articles sur les tableaux de fréquence des mots (tf-idf)
  • 20 000 articles scientifiques (lignes)
  • 800 mots (colonnes)

Articles word frequency array

Apprentissage non supervisé en Python

Application de la NMF aux articles

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)
Apprentissage non supervisé en Python

Les composants NMF sont des sujets

 

nmf.components_

Apprentissage non supervisé en Python

Les composants NMF sont des sujets

 

one row of nmf.components_ selected and a bar plot for each word where height represents the tfidf

Apprentissage non supervisé en Python

Les composants NMF sont des sujets

 

box with top words and values: species 2.95, plant 1.05, plants 0.78, etc.

Apprentissage non supervisé en Python

Les composants NMF sont des sujets

 

new box with top words from different row of nmf.components_: university 3.57, prof 1.19, college 0.88, etc

Apprentissage non supervisé en Python

Composantes NMF

  • Pour les documents :
    • Les composants NMF représentent des thèmes
    • Les fonctionnalités NMF regroupent les sujets dans des documents
  • Pour les images, les composants NMF sont des parties d'images

 

box with 3 stripes approximately equals 0.98 times box with one stripe plus 0.91 times box with a different stripe plus 0.95 times box with a different stripe

Apprentissage non supervisé en Python

Images en niveaux de gris

  • Image « en niveaux de gris » = aucune couleur, uniquement des nuances de gris
  • Mesurer la luminosité des pixels
  • Représenter avec une valeur comprise entre 0 et 1 (0 étant noir)
  • Convertir en tableau 2D

2 by 3 rectangle of pixels with varying degrees of white/black/gray

Apprentissage non supervisé en Python

Exemple d'image en niveaux de gris

  • Une image en niveaux de gris 8x8 de la lune, représentée sous forme de tableau

 

pixelated illustration of the moon with arrow pointing to array of numbers with the same dimension holding numbers between 0 to 1

Apprentissage non supervisé en Python

Images en niveaux de gris sous forme de tableaux plats

  • Énumérer les entrées
  • Ligne par ligne
  • De gauche à droite, de haut en bas

2 by 3 pixel box pointing to array with numbers

Apprentissage non supervisé en Python

Images en niveaux de gris sous forme de tableaux plats

  • Énumérer les entrées
  • Ligne par ligne
  • De gauche à droite, de haut en bas

2 by 3 pixel box pointing to 2 by 3 array with numbers pointing to a 1 by 6 array of numbers

Apprentissage non supervisé en Python

Encodage d'une collection d'images

  • Collecter des images de même taille
  • Encoder sous forme de tableau 2D
  • Chaque ligne correspond à une image
  • Chaque colonne correspond à un pixel
  • … NMF applicable !

One row of nmf.components_ that represents the 2x3 pixel image

Apprentissage non supervisé en Python

Visualisation des échantillons

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()
Apprentissage non supervisé en Python

Passons à la pratique !

Apprentissage non supervisé en Python

Preparing Video For Download...