Stosuję nieujemną macierzarię macierzy (NMF) na dużej macierzy. Zasadniczo metoda NMF wykonuje następujące czynności: biorąc pod uwagę m-n macierzy A, NMF rozkłada się do A = WH, gdzie W jest m przez d, a H - przez n. Metoda ProjectedGradientNMF jest zaimplementowana w pakiecie Pleqona Sklearn. Chciałbym, aby algorytm zwrócił zarówno W, jak i H. Ale wydaje się, że zwraca tylko H, a nie W. Zastosowanie algorytmu ponownie do AT (transpozycja) może dać mi W. Jednak chciałbym uniknąć obliczenia go dwa razy, ponieważ matrix ix bardzo duży.Nieujemna faktoryzacja macierzy w Sklearn
Jeśli mógłbyś mi powiedzieć, jak uzyskać jednocześnie W i H, byłoby wspaniale! Poniżej jest mój kod:
from sklearn.decomposition import ProjectedGradientNMF
import numpy
A = numpy.random.uniform(size = [40, 30])
nmf_model = ProjectedGradientNMF(n_components = 5, init='random', random_state=0)
nmf_model.fit(A)
H = nmf_model.components_.T
Could stosowania algorytmu ponownie A.T (transpozycję) naprawdę dać W.? Nie jestem w stanie tego zweryfikować. – svural