Jaccard( train, test )
存疑:
保留分子不为0对应的元素;
节点x与y并集的元素数目 = x与y的度之和【为什么必须先有共同邻居??】 - 交集的元素数目【共同邻居】
function [ thisauc ] = Jaccard( train, test )
%% 计算jaccard指标并返回AUC值
sim = train * train;
% 完成分子的计算,分子同共同邻居算法
deg_row = repmat(sum(train,1), [size(train,1),1]);
%sum(X,1)计算列和,repmet在列上扩展1倍,行上扩展size(train,1)倍
不懂???
deg_row = deg_row .* spones(sim); %这一行结果是节点度矩阵???
% 只需保留分子不为0对应的元素????
deg_row = triu(deg_row) + triu(deg_row');
sim = sim./(deg_row.*spones(sim)-sim); clear deg_row;
% 计算相似度矩阵 节点x与y并集的元素数目 = x与y的度之和【xy必须有共同邻居】 - 交集的元素数目??
sim(isnan(sim)) = 0; sim(isinf(sim)) = 0;
thisauc = CalcAUC(train,test,sim, 10000);
% 评测,计算该指标对应的AUC
end