Spark-Mllib基本统计

Posted 江枫1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spark-Mllib基本统计相关的知识,希望对你有一定的参考价值。

转自 :http://www.cnblogs.com/tuitui1989/p/5337968.html

 

一.基本统计量

统计向量的长度,最大值,最小值,非0个数,模1和模2,方差等

import org.apache.spark.mllib.linalg.{Vector,Vectors}

import org.apache.spark.mllib.stat.{MultivariateStatisticalSummary, Statistics}

val data=sc.parallelize(1 to 100,2)

val obs=data.map(x=>Vectors.dense(x))

 val summary=Statistics.colStats(obs)

summary.mean

summary.max

 

二.相关系数

import org.apache.spark.SparkContext

import org.apache.spark.mllib.linalg._

import org.apache.spark.mllib.stat.Statistics

 

val x=sc.parallelize(1 to 3,2).map(_.toDouble)

val y=sc.parallelize(1 to 3,2).map(_.toDouble)

val correlation: Double = Statistics.corr(x, y, "pearson")

 

val data=sc.textFile("coo1").map(_.split(\',\')).map(_.map(_.toDouble)).map(x=>Vectors.dense(x))

val correlMatrix: Matrix = Statistics.corr(data, "pearson")

 

三.分成抽样

import org.apache.spark.SparkContext

import org.apache.spark.SparkContext._

import org.apache.spark.rdd.PairRDDFunctions

val info=sc.parallelize(List((\'a\',2),(\'a\',3),(\'b\',1),(\'b\',3),(\'c\',10),(\'d\',100)))

val ff=Map(\'a\'->0.5,\'b\'->1.0)

val infosample=info.sampleByKey(withReplacement = false, fractions=ff)

 

 

四.假设检验

假设检验是用于检测结果是否统计显著,事件结果是否偶然,mllib目前 提供pearson卡方检验用于计算拟合优度检验和独立检验,

前者需要向量作为输入,后者需要矩阵作为输入

卡方拟合优度检验,一般用于检验样本是否符合某分布,理论频数与实际频数的偏差. 如果分布的参数未知,可考虑用mle

卡方独立性检验,一般针对列链表的形式,理论频数与实际频数的偏差。

 

五.kernel估计

kernal理论基础,参考Walter Zucchini的文章,主要介绍了几部分:

a.f(x)的估计

b.bandwidth的大小对f(x)估计的影响

c.w(t,h)与kernel函数的关系,w(t,h)=1/h * k(t/h)

d.最佳窗宽的选择,根据MISE最小化 [1/n*y(K)/b(f)]^(1/5),其中y(K)=j2*k2^-2

e.最佳kernel:Epanechnikov kernel 

f.利用样本选择最佳窗框

 

以上是关于Spark-Mllib基本统计的主要内容,如果未能解决你的问题,请参考以下文章

概率论与数理统计:数理统计的基本概念

数据统计学习的5个基本流程

统计学——描述性统计之基本的统计量

SparkMLlib----数理统计的基本概念

R语言描述性统计分析:基本统计分析

R-基本统计分析--描述性统计分析