Неотрицательная факторизация матрицы
[ множит матрицу n-by-m W,H] = nnmf(A,k)A в неотрицательные факторы W (n-by-k) и H (k-по-м). Факторизация не точна; W*H является приближением более низкого ранга к A. Факторы W и H минимизировать среднеквадратичный остаток D между A и W*H.
D = norm(A - W*H,'fro')/sqrt(n*m)Факторизация использует итеративный алгоритм, начинающийся со случайных начальных значений для W и H. Потому что среднеквадратичный остаток D может иметь локальные минимумы, повторяющиеся факторизации могут давать разные W и H. Иногда алгоритм сходится к решению ранга ниже k, что может указывать на то, что результат не оптимален.
[ изменяет факторизацию, используя один или несколько аргументов пары имя-значение. Например, можно запросить повторные факторизации путем установки W,H] = nnmf(A,k,Name,Value)'Replicates' целочисленное значение больше 1.
[1] Берри, Майкл У., Мюррей Браун, Эми Н. Лэнгвилл, В. Пол Паука и Роберт Дж. Племмонс. «Алгоритмы и приложения для аппроксимационной факторизации неотрицательных матриц». Расчетная статистика и анализ данных 52, № 1 (сентябрь 2007 года): 155-73. https://doi.org/10.1016/j.csda.2006.11.006.