Неотрицательная матричная факторизация
[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
-by-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.