NMF 非负矩阵分解Matlab代码

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

NMF 非负矩阵分解Matlab代码

% D 输入数据n(个)* m(维)r 降维后的维度% D=W*H W 基向量矩阵H 在基下的坐标向量

function [W,H]=NMF(D,r)

sizeD=size(D);

n=sizeD(1);

m=sizeD(2);

W=abs(rand(n,r));

H=abs(rand(r,m));

for iterate=1:100

WD=W'*D;

WWH=W'*W*H;

for a = 1:r

for u=1:m

H(a,u)=H(a,u)*WD(a,u)/WWH(a,u);

end

end

DH=D*H';

WHH=W*H*H';

for i = 1:n

for a=1:r

W(i,a)=W(i,a)*DH(i,a)/WHH(i,a);

end

end

end

相关文档
最新文档