Mahout-Pearson correlation的实现

计算公式:

并通过以下代码对Mahout in Action的结果进行了验证:

代码例如以下:

`

package com.example.mahout;

public class TestColl {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    //int a[]={68,71,62,75,58,60,67,68,71,69,68,67,63,62,60,63,65,67,63,61};
    //double b[] ={4.1,4.6,3.8,4.4,3.2,3.1,3.8,4.1,4.3,3.7,3.5,3.2,3.7,3.3,3.4,4.0,4.1,3.8,3.4,3.6};
    double a[]={5,3.0,2.5};
    double b[]={4,3,2.0};

    int i,j;
    double sum_a=0,sum_b=0,sum_XY=0,sum_X=0,sum_Y=0,sum_X2=0,sum_Y2=0;
    double  mean_a,var_a,mean_b,var_b;
    for(i=0;i<a.length;i++){
        sum_a+=a[i];
        sum_b+=b[i];
        sum_XY+=a[i]*b[i];
        sum_X2+=a[i]*a[i];
        sum_Y2+=b[i]*b[i];
    }

    mean_a = sum_a/a.length;
    mean_b = sum_b/b.length;
    System.out.println("sum_a:"+sum_a);
    System.out.println("sum_b:"+sum_b);
    System.out.println("mean_a:"+mean_a);
    System.out.println("mean_b:"+mean_b);
    sum_X=sum_a;
    sum_Y = sum_b;

    sum_a=sum_b=0;
    for(i=0;i<a.length;i++){
        sum_a+=(a[i]-mean_a)*(a[i]-mean_a);
        sum_b+=(b[i]-mean_b)*(b[i]-mean_b);
    }
    var_a=sum_a/(a.length-1);
    var_b=sum_b/(a.length-1);
    System.out.println("var_a:"+var_a);
    System.out.println("var_b:"+var_b);
    System.out.println("sum_XY:"+sum_XY);
    System.out.println("sum_X:"+sum_X);
    System.out.println("sum_X2:"+sum_X2);
    System.out.println("sum_Y2:"+sum_Y2);
    double r_up = a.length*sum_XY-sum_X*sum_Y;
    double r_down = Math.sqrt((a.length*sum_X2-sum_X*sum_X)*(a.length*sum_Y2-sum_Y*sum_Y));
    double r=r_up/r_down;

    System.out.println("r_up:"+r_up);
    System.out.println("r_down:"+r_down);
    System.out.println("r:"+r);

}

}

`

时间: 2024-08-05 05:13:01

Mahout-Pearson correlation的实现的相关文章

Spearman&#39;s rank correlation coefficient 和 Pearson correlation coefficient详细

In statistics, Spearman's rank correlation coefficient or Spearman's rho, named after Charles Spearman and often denoted by the Greek letter (rho) or as , is a nonparametric measure of statistical dependence between two variables. It assesses how wel

皮尔逊相关系数(Pearson Correlation Coefficient, Pearson&#39;s r)

Pearson's r,称为皮尔逊相关系数(Pearson correlation coefficient),用来反映两个随机变量之间的线性相关程度. 用于总体(population)时记作ρ (rho)(population correlation coefficient): 给定两个随机变量X,Y,ρ的公式为:  其中:   是协方差 是X的标准差 是Y的标准差 用于样本(sample)时记作r(sample correlation coefficient): 给定两个随机变量x,y,r的公

皮尔逊相关系数与余弦相似度(Pearson Correlation Coefficient &amp; Cosine Similarity)

之前<皮尔逊相关系数(Pearson Correlation Coefficient, Pearson's r)>一文介绍了皮尔逊相关系数.那么,皮尔逊相关系数(Pearson Correlation Coefficient)和余弦相似度(Cosine Similarity)之间有什么关联呢? 首先,我们来看一下什么是余弦相似度.说到余弦相似度,就要用到余弦定理(Law of Cosine). 假设两个向量和之间的夹角为.,向量的长度分别是和,对应的边长为向量减去向量的长度,也就是. 根据余弦

[Statistics] Comparison of Three Correlation Coefficients: Pearson, Kendall, Spearman

There are three popular metrics to measure the correlation between two random variables: Pearson's correlation coefficient, Kendall's tau and Spearman's rank correlation coefficient. In this article, I will make a detailed comparison among the three

汇总从代数角度与几何角度理解相似度计算方法(以机器学习Mahout框架为主线)

相似度的计算是数据挖掘与机器学习中的一个永恒的话题,为了能更好地理解与比较各种相似度计算的方法,能灵活运用到各种计算模型中,自己在研究机器学习之Mahout框架时,源代码中也实现了很多相似度计算方法,本文结合机器学习Mahout框架中各种相似度计算方法的实现,并且从代数角度和几何角度来理解相似度的计算方法.并阐述其优缺点,及自己的适用场景.本文通过总结和归纳,一共总结了9中距离测量方法,方法一到方法七是Mahout中完完本本实现了,其中前面是方面名,破折号后是Mahout中各方法实现的类名,本文

Mahout的taste里的几种相似度计算方法

欧几里德相似度(Euclidean Distance) 最初用于计算欧几里德空间中两个点的距离,以两个用户x和y为例子,看成是n维空间的两个向量x和y,  xi表示用户x对itemi的喜好值,yi表示用户y对itemi的喜好值,他们之前的欧几里德距离是 对应的欧几里德相似度,一般采用以下公式进行转换:距离越小 ,相似度越大 在taste里,计算user之间和item之前欧几里德相似度的类是EuclideanDistanceSimilarity. 皮尔逊相似度(Pearson Correlatio

Pearson相关系数

理解皮尔逊相关的两个角度 其一, 按照高中数学水平来理解, 皮尔逊相关(Pearson Correlation Coefficient)很简单, 可以看做将两组数据首先做Z分数处理之后, 然后两组数据的乘积和除以样本数 Z分数一般代表正态分布中, 数据偏离中心点的距离.等于变量减掉平均数再除以标准差.(就是高考的标准分类似的处理) 标准差则等于变量减掉平均数的平方和,再除以样本数,最后再开方. 所以, 根据这个最朴素的理解,我们可以将公式依次精简为: 其二, 按照大学的线性数学水平来理解, 它比

机器学习相似度计算方法选择理论依据

在分类聚类算法,推荐系统中,常要用到两个输入变量(通常是特征向量的形式)距离的计算,即相似性度量.不同相似性度量对于算法的结果,有些时候,差异很大.因此,有必要根据输入数据的特征,选择一种合适的相似性度量方法. 令X=(x1,x2,..,xn)T,Y=(y1,y2,...yn)T为两个输入向量, 1.欧几里得距离(Euclidean distance)-EuclideanDistanceMeasure. ? 相当于高维空间内向量说表示的点到点之间的距离. 由于特征向量的各分量的量纲不一致,通常需

探索推荐引擎内部的秘密,第 2 部分: 深入推荐引擎相关算法 - 协同过滤(转)

第 2 部分: 深入推荐引擎相关算法 - 协同过滤 本系列的第一篇为读者概要介绍了推荐引擎,下面几篇文章将深入介绍推荐引擎的相关算法,并帮助读者高效的实现这些算法. 在现今的推荐技术和算法中,最被大家广泛认可和采用的就是基于协同过滤的推荐方法.它以其方法模型简单,数据依赖性低,数据方便采集 , 推荐效果较优等多个优点成为大众眼里的推荐算法“No.1”.本文将带你深入了解协同过滤的秘密,并给出基于 Apache Mahout 的协同过滤算法的高效实现.Apache Mahout 是 ASF 的一个

推荐引擎内部的秘密2

转自:http://www.ibm.com/developerworks/cn/web/1103_zhaoct_recommstudy2/index.html 对2005年的创新公司来说,最重要的革命性思想可能是2004年<连线>杂志主编 Chris Anderson 提出的所谓"长尾"理论.这个理论说互联网使得过去几件流行商品通吃的局面一去不返了,现在哪怕是最不流行的东西也会有人喜欢,是小众市场的时代. 互联网的大趋势,甚至可以说是整个社会的一个大趋势,是人们面临的选择越