Mahout-Pearson correlation的实现

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);

}

}
`

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/116278.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Matlab fmincon[通俗易懂]

    Matlab fmincon[通俗易懂]fmincon的官方文档fmincon非线性优化

  • IC验证培训——SystemVerilog通用程序库(下)

    IC验证培训——SystemVerilog通用程序库(下)路桑的个人网址:路科验证-IC验证培训-数字芯片验证五、类方法还是包函数?我们最初的直觉是将svlib作为一组SystemVerilog类呈现给用户。我们假设由一个类来表示一个正则表达式,另一个类来表示一个文件名,等等。从库写作者的角度来看,以这种方式打包用户数据是非常有吸引力的,因为它允许我们将任意隐藏数据与每个对象相关联。 我们在编写面向用户的API时,上遇到了一个严…

  • source insight3.5激活码_souce insight

    source insight3.5激活码_souce insightSI3US-205035-36448SI3US-466908-65897SI3US-368932-59383SI3US-065458-30661SI3US-759512-70207

  • intellijidea激活码2021【2021最新】

    (intellijidea激活码2021)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

  • zabbix 监控多个mysql_zabbix 监控多实例mysql[通俗易懂]

    zabbix 监控多个mysql_zabbix 监控多实例mysql[通俗易懂]zabbix监控多实例mysql一台服务器上开启了3个mysql实例进程,占用不同的端口3306、3307、3308原理说明:通过自动发现规则来获取MySQL实例的端口,自动发现规则上的{$MYSQLPORT}是要传递给agent自动发现脚本的参数,这个值是从主机定义的宏{$MYSQLPORT}获取过来的,自动发现的脚本将其解析成{#MYSQLPORT}:端口的形式,监控项原型再根据{#MYS…

  • settimeout的用法_setinterval怎么用

    settimeout的用法_setinterval怎么用目录参数及介绍setTimeOutsetInterval工作原理前言:JS是单线程运行的setTimeOutsetInterval情况一:fn运行时间≤时间间隔,即多数情况情况二:fn运行时间>时间间隔,即一些异常情况setTimeOut弥补setInterval的不足本文参考文章参数及介绍setTimeOutsetTimeOut(fn,delayTime)【功能】:在一定时间延迟之后开始执行一个给定的函数【参数1】:fn将要执行的函数,函数类型或者字符串类型【参数2】:

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号