Неотрицательная матричная факторизация
[W,H] = nnmf(A,k)
[W,H] = nnmf(A,k,param1,val1,param2,val2,...)
[W,H,D] = nnmf(...)
[W,H] = nnmf(A,k) учитывает неотрицательный n-by-m матричный A в неотрицательные факторы W (n-by-k) и H K- m). Факторизация не точна; 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 нормированы так, чтобы строки H имейте единичную длину. Столбцы W упорядочены путем уменьшения длины.
[W,H] = nnmf(A,k, задает дополнительное название параметра / пары значения из следующей таблицы.param1,val1,param2,val2,...)
| Параметр | Значение |
|---|---|
'algorithm' | Любой В общем случае |
'w0' | n-by- |
'h0' |
|
'options' | Структура опций, как создано
Чтобы вычислить параллельно, вам нужен Parallel Computing Toolbox™. |
'replicates' | Число раз, чтобы повторить факторизацию, с помощью новых случайных начальных значений в |
[W,H,D] = nnmf(...) также возвращает D, среднеквадратичная невязка.
[1] Ягода, M. W. и др. “Алгоритмы и Приложения для Аппроксимированной Неотрицательной Матричной Факторизации”. Вычислительная Статистика и Анализ данных. Издание 52, № 1, 2007, стр 155–173.