首页 > 编程知识 正文

spark 相关性分析SparkML之相关性分析,dps相关分析性太强

时间:2023-05-05 16:42:39 阅读:187134 作者:146

相关分析

相关分析是考察两个变量之间线性关系的统计方法,用于测定两个变量因子的相关度。 但是请记住,相关性不等于因果性。 结合下图中的txt格式文件,了解相关分析。

两个重要因素

从非常直观的分析思路来说,比如分析身高和体重的话.身高越高体重越重吗? 问题被细分为两个方向。 1、身高越高,体重越重或越轻。 2、身高每增加1,体重会增加或减少多少呢? 这是关联性的两个重要因素。 相关方向和相关强度。 对于相关方向,可以很好地理解的是,是正相关、负相关还是无关。 对于问题2,每个人定义相关强度的思想都不同。

皮尔森相关系数

皮尔逊相关系数均被称为皮尔逊乘积矩相关系数,该系数被广泛用于测量两个变量之间的相关度。 这是xjwd由lhzdxlb在十九世纪八十年代提出的相似但略有不同的思想发展而来的.定义公式如下:

试着根据Matlab代码计算身高和体重的pearson系数吧。

Functioncoeff=Pearsoncoeff(x,y ) %目的:计算数值序列x和y的皮尔森相关系数

%

%输入:计算数值序列x和y

%输出: coeff数值序列x和y的皮尔森相关系数

iflength(x ) (=length (y ) ) ) ) ) ) ) ) )。

错误'输入的序列长度不同')

结束

a=sum((x-mean ) x ) ).* ) y-mean ) y ) ); %分子

b=sqrt(sum(x-mean ) x ) ).^2) sum ) y-mean ) ); %分母

coeff=a/b;

结束

功能处理

filename=' c :usersAndrewdesktopchild.txt ';

delimiter='t ';

formatSpec='%s%f%f%f%[^nr] ';

fileid=fopen(filename,' r ' );

dataarray=textscan(fileid,formatSpec,' Delimiter ',Delimiter,' ReturnOnError ',false );

close (文件);

% a=data array { :1 }; %name

high=data array { :2 };

weight=data array { :3 };

% score=data array { :4 };

%计算身高和体重的相关系数

corofhw=Pearsoncoeff(high,weight ) ) ) ) ) ) )。

结束

得到:

corOfHW=0.6124

Spearman等级相关系数:

具体函数的定义可以参考文献1。 以下,对思想进行简单说明。 A的身高是149,在身高的队列中排名是1 (最低)。 同样,后面的参数称为变量的秩。 Spearman等级相关系数(rho )如下。

其中累计di平方为A身高等级减去体重等级的平方和B身高等级减去体重等级的平方。 请参阅。 请参阅。 请参阅。 请参阅。 请参阅。 请参阅。 研究表明,spearman等级相关系数与具体数值无关,与其中的等级有关,无法准确测定指标值,只能通过重要性、名词前后等等级参数来确定之间的相关度。

经计算,得到0.7395

SparkMLlib计算相关系数:

基本包

importorg.Apache.spark.ml lib.Lina LG.vectors

importorg.Apache.spark.ml lib.stat.statistics

importorg.Apache.spark.{ spark conf,SparkContext}

/* * createdbylegotimeon 2016/4/8.*/object correlations {

efmain(Args:Array[string] )

valspar kconf=newsparkconf (.set appname (' correlations ).set master (' local ) ) )。

valsc=newsparkcontext (spark conf ) )。

valrdd1=sc.parallelize (

Array (

阵列(1.0、2.0、3.0、4.0 )、阵列(2.0、3.0、4.0、5.0 )、6.0 ) )

) )

).map(f=vectors.dense ) f ) )

//package org.Apache.spark.ml lib.stat下的一些基本操作val summary=statistics.colstats (rd D1 ) ) ) ) )。

println(summary.mean )/adensevectorcontainingthemeanvalueforeachcolumn的每列平均值println (summary.variance )/column-) 列方差println(summary.numnonzeros )//number of nonzeros in each column每个列有非零数量的println (summary.norml2) /双范数println ) sumn 二范数========================计算相关系数==============计算相关系数=============二范数=

valr dd3=sc.parallelize (array (81.0,88.0,87.0,99.0,91.0,89.0,95.0,90.0 ) )

println(rdd2: ) rdd2 ) )。

rdd2.collect ().foreach (println ) )。

//val correlation 13360 double=statistics.corr (rd D2,rdd3,“pearson”)//省时,默认值为pearson相关系数val correlation 13360 DD

println(Pearson相关系数校正1 ) )。

//pearson相关系数: 0.612403056141675 val correlation 2: double=statistics.corr (rd D2,rdd3,' spearman ' ) ) ) ) )

println(Spearman相关系数(correlation2) )。

//spearman相关系数: 0.7395161835775294sc.stop () )。

() ) ) ) )。

() ) ) ) )。

结束了

参考文献

1:http://blog.csdn.net/wsy wl/article/details/5859751

非常感谢

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。