说明
学习使用spark对数据进行描述性统计,在进行机器学习模型的训练之前,可以了解数据的总体情况
本章主要讲解基础统计部分,包括基本统计、假设检验、相关系数等
数据集
数据集有两个文件,分别是:
- beijing.txt 北京历年降水量,不带年份
- beijing2.txt 北京历年降水量,带年份
源代码
源代码比较少,故在此给出:
基础统计
val txt = sc.textFile("beijing.txt")
val data = txt.flatMap(_.split(",")).map(value => Vectors.dense(value.toDouble))
Statistics.colStats(data)
一致性
import org.apache.spark.mllib.stat._
import org.apache.spark.mllib.linalg.Vectors
import org.apache.spark.mllib.stat.{MultivariateStatisticalSummary, Statistics}
val txt = sc.textFile("/home/testData/coding-271/ch4/beijing.txt")
val data = txt.flatMap(_.split(",")).map(_.toDouble)
val years = data.filter(_>1000)
val values = data.filter(_<=1000)
Statistics.corr(years,values)
测试:启动spark-shell
输入 :paste
粘贴上面的例子后,按ctrl+D会开始执行
假设检验
皮尔森卡方检验是最常用的卡方检验,可以分为适配度检验和独立性检验
适度性检验:验证观察值的次数分配与理论值是否相等
独立性检验:俩个变量抽样到的观察值是否相互独立
问题案例:
数据:
男,女
右利手 127,147
左利手 19,10
import org.apache.spark.mllib.{linalg,stat}
stat.Statistics.chiSqTest(linalg.Matrices.dense(2,2,Array(127,19,147,10)))