简单介绍:非负矩阵分解(NMF)是在矩阵中所有元素均为非负数约束条件之下的矩阵分解方法。
NMF的基本思想简单描述为:对于任意给定的一个非负矩阵A,NMF算法能够寻找到一个非负矩阵U和一个非负矩阵V,使得满足 ,从而将一个非负的矩阵分解为左右两个非负矩阵的乘积,也就是A=U*V。由于分解前后的矩阵中仅包含非负的元素,因此,原矩阵A中的一列向量可以解释为对左矩阵U中所有列向量(称为基向量)的加权和,而权重系数为右矩阵V中对应列向量中的元素。
NMF算法提供了基于简单迭代的求解U,V的方法,求解方法具有收敛速度快、左右非负矩阵存储空间小的特点,它能将高维的数据矩阵降维处理,适合处理大规模数据。
NMF作用:在大规模的矩阵数据中发现具有解释功能关系。
matlab程序:
% D 输入数据 n(个)* m(维) r 降维后的维度
% D=W*H W 基向量矩阵 H 在基下的坐标向量
% D=W*H W 基向量矩阵 H 在基下的坐标向量
function [W,H]=NMF(D,r)
sizeD=size(D);
n=sizeD(1);
m=sizeD(2);
m=sizeD(2);