读书人

AP聚类算法的matlab部分程序求解释!

发布时间: 2013-01-25 15:55:29 作者: rapoo

AP聚类算法的matlab部分程序,求解释!
% Compute responsibilities R(i,k)=S(i,k)-max{A(i,j)+S(i,j)} j=1,2,3,……N,j!=k

for ii=1:N %ii为公式中的k
old = R(:,ii);
AS = A(:,ii) + ST(:,ii); % 列向量
[Y,I]=max(AS); % I返回最大值的index
AS(I)=-Inf;
[Y2,I2]=max(AS); %
R(:,ii)=ST(:,ii)-Y;
R(I,ii)=ST(I,ii)-Y2;
R(:,ii)=(1-lam)*R(:,ii)+lam*old;% Damping
end;

请问这里为什么要要取次大值呢,且公式中的j!=k在哪里体现出来了?
[解决办法]
[Y,I]=max(AS); % I返回最大值的index
AS(I)=-Inf;
[Y2,I2]=max(AS); %
R(:,ii)=ST(:,ii)-Y; % 这里做减法用的是是最大值
R(I,ii)=ST(I,ii)-Y2; % 次最大值只用在ii列的原最大值那一行的那一个元素

多贴点代码,这里看不出j!=k和为什么要用用次最大值处理原最大值对应的元素

读书人网 >其他开发语言

热点推荐