首页 > 代码库 > spark MLLib的基础统计部分学习

spark MLLib的基础统计部分学习

参考学习链接:http://www.itnose.net/detail/6269425.html

机器学习相关算法,建议初学者去看看斯坦福的机器学习课程视频:http://open.163.com/special/opencourse/machinelearning.html(已经被翻译了)

所有文中示例见:http://spark.apache.org/docs/latest/mllib-statistics.html

统计工具
(1)摘要统计
我们通过统计中可用的colStats函数提供RDD [Vector]的列摘要统计。
colStats()返回多变量统计摘要的实例,其中包含列向量的最大值,
最小值,平均值,方差和非零数,以及总计数。
(2)相关性
计算两个数据系列之间的相关性是统计学中的常见操作。
在spark.mllib中,我们提供了在许多系列之间计算成对相关性的灵活性。
支持的相关方法目前是Pearson‘s和Spearman
(3)分层抽样
与驻留在spark.mllib中的其他统计函数不同,分层抽样方法sampleByKey
和sampleByKeyExact可以对RDD的键值对执行。 对于分层抽样,键可以被
认为是一个标签,而值作为一个特定的属性。 例如,密钥可以是男人或
女人或文档ID,并且相应的值可以是人口中的人的年龄列表或文档中的单
词列表。 sampleByKey方法将翻转硬币以决定是否对采样进行采样,因此
需要对数据进行一次传递,并提供预期的采样大小。 sampleByKeyExact比
在sampleByKey中使用的每层简单随机抽样需要更多的资源,但是将提供具
有99.99%置信度的精确抽样大小。 sampleByKeyExact目前不支持在python中。

(4)假设检验
MLlib当前支持用于判断拟合度或者独立性的Pearson卡方(chi-squared ( χ2) )检验。
不同的输入类型决定了是做拟合度检验还是独立性检验。拟合度检验要求输
入为Vector, 独立性检验要求输入是Matrix。
Statistics.chiSqTest(vector1, vector2)
假设检验是统计学中一个强大的工具,用于确定结果是否具有统计显着性,
这种结果是否偶然发生。 spark.mllib目前支持Pearson的卡方拟合和独立性的卡方检验(χ2χ2)
。 输入数据类型决定是否进行拟合优度或独立性检验。
拟合优度测试需要一个输入类型的向量,而独立性测试需要一个矩阵作为输入。
spark.mllib还支持输入类型RDD [LabeledPoint],以通过卡方独立性测试启用功能选择。

在Spark repo中的“examples / src / main / scala / org / apache / spark / examples / mllib / HypothesisTestingExample.scala”下找到完整的示例代码。

此外,spark.mllib提供了Kolmogorov-Smirnov(KS)检验的一个单样本,双侧实现,
用于概率分布的相等。 通过提供理论分布的名称(目前仅针对正态分布支持)及其参数,
或者根据给定的理论分布计算累积分布的函数,用户可以测试它们的样本是从哪个 分配。
在用户针对正态分布(distName =“norm”)进行测试但不提供分布参数的情况下,
测试初始化为标准正态分布并记录适当的消息。

(5)流线型测试
spark.mllib提供了一些测试的在线实现,以支持A / B测试等用例。
这些测试可以在Spark Streaming DStream [(Boolean,Double)]上执行,其中每个元组的第
一个元素表示控制组(false)或治疗组(true),第二个元素是观察值。

流式重要性测试支持以下参数:
peacePeriod - 从流中忽略的初始数据点的数量,用于减轻新奇效应。
windowSize - 执行假设测试的过去批次的数量。 设置为0将使用所有前面的批次执行累积处理。
(6)随机数生成
随机数据生成对于随机算法,原型设计和性能测试非常有用。
spark.mllib支持使用i.i.d生成随机RDD。 从给定分布绘制的值:均匀,标准正态或泊松。

RandomRDDs提供了工厂方法来生成随机双RDD或向量RDD。 以下示例生成随机双RDD,其值遵循标准
正态分布N(0,1),然后将其映射到N(1,4)。

 

有关API的详细信息,请参阅RandomRDDs Scala文档。
(7)Kernel density estimation
核密度估计是用于可视化经验概率分布而不需要关于观察到的样本从其中绘制的特定分布的假
设的技术。 它计算在给定的一组点处评估的随机变量的概率密度函数的估计。 它通过将特定
点处的经验分布的PDF表示为以每个样本为中心的正态分布的PDF的均值来实现该估计。

核密度估计(Kernel density estimation),是一种用于估计概率密度函数的非参数方法,
为独立同分布F的n个样本点,设其概率密度函数为f,核密度估计为以下

spark MLLib的基础统计部分学习