% 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
非负矩阵分解算法
最新推荐文章于 2025-05-26 10:12:42 发布