斯皮尔曼排名相关系数
/**斯皮尔曼排名相关系数
* Created by Administrator on 2017/4/9.
*/
public class SpearmanRankCorrelation {
/*
公式1: ρ = 1 - 6∑(xi-yi) / n(n^2 -1)
公式2: ρ = ∑(xi-x*)(yi-y*) / ( ∑(xi-x*)^2 * ∑(yi-y*)^2)^0.5
*/
public double spearManDistance(Instance x,Instance y){
if (x.noAttributes() != y.noAttributes()){
throw new RuntimeException("两个数据实例的属性数目不一致");
}
long n = x.noAttributes();
long lower = n * (n * n -1);
double sum = 0.0;
for (int i=0;i<n;i++){
sum += x.value(i) - y.value(i);
}
return 1.0 - (6 * (sum / ((double)lower)));
}
}