【AA、RA】PA
AA( train, test )
![](https://img.haomeiwen.com/i14733011/bc5a99a877dd5b32.png)
function [ thisauc ] = AA( train, test )
%% 计算AA指标并返回AUC值
train1 = train ./ repmat(log(sum(train,2)),[1,size(train,1)]);【共同邻居节点的度的对数分之一】
![](https://img.haomeiwen.com/i14733011/64b0856d09592539.png)
![](https://img.haomeiwen.com/i14733011/165e53678365f9ae.png)
% 计算每个节点的权重【但是对于(1,2)位置元素,代表何意??1列扩展了5列而已】,1/log(k_i),网络规模过大时需分块处理
train1(isnan(train1)) = 0;
train1(isinf(train1)) = 0;
% 将除数为零得到的异常值置0
![](https://img.haomeiwen.com/i14733011/901069d567a941fa.png)
sim = train * train1; clear train1; %????【】
% 实现相似度矩阵的计算
thisauc = CalcAUC(train,test,sim, 10000);
% 评测,计算该指标对应的AUC
end
RA
function [ thisauc ] = RA( train, test )
%% 计算RA指标并返回AUC值
train1 = train ./ repmat(sum(train,2),[1,size(train,1)]);
![](https://img.haomeiwen.com/i14733011/8ebbc9c2eb47b0ce.png)
% 计算每个节点的权重,1/k_i,网络规模过大时需要分块处理
train1(isnan(train1)) = 0;
train1(isinf(train1)) = 0;
sim = train * train1; clear train1;%【累和是怎么算的??】
![](https://img.haomeiwen.com/i14733011/70f4eced5a8e8317.jpg)
% 实现相似度矩阵的计算
thisauc = CalcAUC(train,test,sim, 10000);
% 评测,计算该指标对应的AUC
end
PA( train, test )偏好连接相似性
![](https://img.haomeiwen.com/i14733011/46a29c39fafa19a6.png)
function [ thisauc ] = PA( train, test )
%% 计算PA指标并返回AUC值
deg_row = sum(train,2); 【计算行和,节点度】
![](https://img.haomeiwen.com/i14733011/ea7888fcc18faa35.png)
% 所有节点的度构成列向量,将它乘以它的转置即可
sim = deg_row * deg_row';
![](https://img.haomeiwen.com/i14733011/6b7811fce67b22c4.png)
clear deg_row deg_col;
% 相似度矩阵计算完成
![](https://img.haomeiwen.com/i14733011/c7dda6414200f764.png)
thisauc = CalcAUC(train,test,sim, 10000);
% 评测,计算该指标对应的AUC
end