Negatif olmayan matris ayrıştırma (NMF)

Python'da Unsupervised Learning

Benjamin Wilson

Director of Research at lateral.io

Negatif olmayan matris ayrıştırma

  • NMF = "negatif olmayan matris ayrıştırma"
  • Boyut indirgeme tekniği
  • NMF modelleri yorumlanabilirdir (PCA’nın aksine)
  • Kolay yorum = kolay açıklama!
  • Ancak tüm örnek özellikleri negatif olmamalıdır (>= 0)
Python'da Unsupervised Learning

Yorumlanabilir parçalar

  • NMF, belgeleri konu (veya "tema") birleşimleri olarak ifade eder

 

Metin kutusu: DataCamp, Veri Bilimi Eğitiminde beceri odaklı eğitim sunan, teknik yenilikte öncü... yaklaşık eşittir işareti 0.6 çarpı program, r, python, function, method kelimeli metin kutusu artı 0.5 çarpı data, analysis, cluster, statistics, mean kelimeli metin kutusu artı 0.7 çarpı teaching, learn, lesson, lessons, course kelimeli metin kutusu

Python'da Unsupervised Learning

Yorumlanabilir parçalar

  • NMF, görüntüleri desen birleşimleri olarak ifade eder

 

3 şeritli kutu yaklaşık eşittir 0.98 çarpı tek şeritli kutu artı 0.91 çarpı farklı şeritli kutu artı 0.95 çarpı başka şeritli kutu

Python'da Unsupervised Learning

scikit-learn NMF kullanımı

  • fit() / transform() desenini izler
  • Bileşen sayısı belirtilmelidir, ör. NMF(n_components=2)
  • NumPy dizileri ve csr_matrix ile çalışır
Python'da Unsupervised Learning

Örnek kelime-sıklığı dizisi

  • Kelime sıklığı dizisi, 4 kelime, çok sayıda belge
  • Her belgedeki kelime varlığını "tf-idf" ile ölçün
    • "tf" = belgedeki kelimenin sıklığı
    • "idf" sık kelimelerin etkisini azaltır

Kelime sıklığı dizisi

Python'da Unsupervised Learning

NMF kullanım örneği

  • samples, kelime sıklığı dizisidir
from sklearn.decomposition import NMF

model = NMF(n_components=2)
model.fit(samples)
NMF(n_components=2)
nmf_features = model.transform(samples)
Python'da Unsupervised Learning

NMF bileşenleri

  • NMF, bileşenlere sahiptir
  • ... tıpkı PCA’nın temel bileşenleri gibi
  • Bileşen boyutu = örneklerin boyutu
  • Girdiler negatif değildir
print(model.components_)
[[ 0.01  0.    2.13  0.54]
 [ 0.99  1.47  0.    0.5 ]]
Python'da Unsupervised Learning

NMF özellikleri

  • NMF özellik değerleri negatif değildir
  • Örnekleri yeniden kurmak için kullanılabilir
  • ... özellik değerlerini bileşenlerle birleştirerek
print(nmf_features)
[[ 0.    0.2 ]
 [ 0.19  0.  ]
  ...
 [ 0.15  0.12]]
Python'da Unsupervised Learning

Bir örneğin yeniden kurulumu

print(samples[i,:])
[ 0.12  0.18  0.32  0.14]
print(nmf_features[i,:])
[ 0.15  0.12]

Özellik değeriyle çarpılan ve toplanan NMF bileşenleri

Python'da Unsupervised Learning

Örnek yeniden kurma

  • Bileşenleri özellik değerleriyle çarpın ve toplayın
  • Matris çarpımı olarak da gösterilebilir
  • Bu, "NMF"deki "MatrIs Ayrıştırma"dır
Python'da Unsupervised Learning

NMF yalnızca negatif olmayan veriye uyar

  • Her belgede kelime sıklıkları
  • Diziler olarak kodlanan görüntüler
  • Ses spektrogramları
  • E-ticaret satın alma geçmişleri
  • ... ve daha fazlası!
Python'da Unsupervised Learning

Hadi pratik yapalım!

Python'da Unsupervised Learning

Preparing Video For Download...