Как заставить разреженность на H в sklearn.decomposition.NMF, учитывая, что X ~=W*H?
Мне нужно сделать H разреженным, а именно: учитывая X ~= W*H, мы хотим, чтобы H было разреженным.
model1 = NMF(n_components=rank, init='random', random_state=0, max_iter=9000)
W = model1.fit_transform(X)
H = model1.components_
Глядя на scikit docs, я не вижу, как это можно сделать, но я надеюсь, что что-то упустил, отсюда и этот вопрос / пост.
Я знаком с словарным обучением и sparcecoder от scikit, но это / те не ограничивают решение неотрицательным значением, которое требуется в сценарии, над которым я работаю (обработка аудиосигнала, потоки аддитивны).
Примером X является матрица [Частотные ячейки, временные ячейки], а W должен быть [F-ячейки, атомы], которая требует, чтобы H определялось как [атомы, образцы],
в частности: X[512, 10E6] ~= W[512, 32] * H[32, 10E6]