0 ​​相关源码​​ 1 基础统计模块及常用统计学知识介绍

◆ Spark 的基础统计模块即MLlib组件中的Basic Statistics部分

◆ Basic Statistics主要包括Correlation 与Hypothesis testing等

◆ 其大多被封装在orq.apache spark.mllib.stat._ 中

1.1 基础统计学知识

1.1.1 常用的统计学知识

◆ 描述性统计

平均数,方差,众数,中位数…

◆ 相关性度量

spark 提供了皮尔逊和斯皮尔曼相关系数,反映变量间相关关系密切程度

◆ 假设检验

根据一定假设条件,由样本推断总体的一种统计学方法,spark提供了皮尔森卡方检测

2 实战统计汇总

◆ 实战的数据来源是北京市历年降水量数据

◆ 学习使用spark对数据进描述性统计

◆ 在进行机器学习模型的训练前,可以了解数据集的总体情况

2.1 coding实战


  • 保存降水量文件
    基于Spark的机器学习实践 (六) - 基础统计模块_Spark



  • 字符串值
    基于Spark的机器学习实践 (六) - 基础统计模块_Spark_02
    基于Spark的机器学习实践 (六) - 基础统计模块_Spark_03



  • 实际内容只有一行,读取到数组的是一个超长字符串,需要进行分割.
    基于Spark的机器学习实践 (六) - 基础统计模块_Spark_04



  • ​所需依赖​



基于Spark的机器学习实践 (六) - 基础统计模块_Spark_05


  • 导入
    基于Spark的机器学习实践 (六) - 基础统计模块_Spark_06



  • val data = txt.flatMap(_.split(",")).map(value => linalg.Vectors.dense(value.toDouble))
    基于Spark的机器学习实践 (六) - 基础统计模块_Spark_07



  • data.take(10)
    基于Spark的机器学习实践 (六) - 基础统计模块_Spark_08



  • 统计方法



  • 最大值
    基于Spark的机器学习实践 (六) - 基础统计模块_Spark_09



  • 平均值
    基于Spark的机器学习实践 (六) - 基础统计模块_Spark_10



3 学习相关系数

3.1 相关性度量

◆ 是一种研究变量之间线性相关程度的量

◆ 主要学习皮尔逊相关系数:

基于Spark的机器学习实践 (六) - 基础统计模块_Spark_11

基于Spark的机器学习实践 (六) - 基础统计模块_Spark_12


几组(x, y)的点集,以及各个点集中x和y之间的相关系数。我们可以发现相关系数反映的是变量之间的线性关系和相关性的方向(第一排),而不是相关性的斜率(中间),也不是各种非线性关系(第三排)。请注意:中间的图中斜率为0,但相关系数是没有意义的,因为此时变量Y是0


3.2 实战相关系数

我们对北京市历年降水量进行相关性统计,看看年份与降水量之间的相关性有多大

基于Spark的机器学习实践 (六) - 基础统计模块_Spark_13

基于Spark的机器学习实践 (六) - 基础统计模块_Spark_14

  • 过滤
    基于Spark的机器学习实践 (六) - 基础统计模块_Spark_15

基于Spark的机器学习实践 (六) - 基础统计模块_Spark_16

  • 相关系数值
    基于Spark的机器学习实践 (六) - 基础统计模块_Spark_17
4 学习假设检验

4.1 假设检验

◆ 根据一定假设条件,由样本推断总体的一种统计学方法。基本思路是先提出假设(虚无假设),使用统计学方法进行计算,根据计算结果判断是否​​拒绝​​假设

◆ 假设检验的统计方法有很多,如卡方检验,T检验等

◆ spark实现的是皮尔森卡方检验,它可以实现适配度检测和独立性检测

4.2 皮尔森卡方检验

最常用的卡方检验,可以分为适配度检验和独立性检验

◆ 适配度检验:验证观察值的次数分配与理论值是否相等

◆ 独立性检验:两个变量抽样到的观察值是否相互独立

4.3 实战 : 判断性别与左撇子是否存在关系

基于Spark的机器学习实践 (六) - 基础统计模块_Spark_18

  • 导入数据
    基于Spark的机器学习实践 (六) - 基础统计模块_Spark_19
  • 计算
    基于Spark的机器学习实践 (六) - 基础统计模块_Spark_20

否定了假设检验,所以性别与左撇子是有关的!

Spark机器学习实践系列 联系我

基于Spark的机器学习实践 (六) - 基础统计模块_Spark_21

​Java开发技术交流Q群​

​知乎​

​Giyhub​