《Spark机器学习进阶实战》——2.3.4 假设检验
2.3.4 假设检验
假设检验是统计中常用的工具,它用于判断一个结果是否在统计上是显著的、这个结果是否有机会发生。通过数据分析发现异常情况,找到解决异常问题的方法。
MLlib目前支持皮尔森卡方检验,对应的函数是Statistics类的chiSqTest。chiSqTest支持多种输入数据类型,对不同的输入数据类型进行不同的处理,对于向量(Vector)进行拟合优度检验,对于矩阵(Matrix)进行独立性检验,对于RDD进行特征选择。使用chiSqTest方法进行假设检验的代码如下:
import org.apache.spark.SparkContext
import org.apache.spark.MLlib.linalg._
import org.apache.spark.MLlib.regression.LabeledPoint
import org.apache.spark.MLlib.stat.Statistics._
val sc: SparkContext = ...
// 定义一个由事件频率组成的向量
val vec: Vector = ...
// 做皮尔森拟合优度检验
val goodnessOfFitTestResult = Statistics.chiSqTest(vec)
println(goodnessOfFitTestResult)
// 定义一个检验矩阵
val mat: Matrix = ...
// 做皮尔森独立性检测
val independenceTestResult = Statistics.chiSqTest(mat)
// 检验总结:包括假定值(p-value)、自由度(degrees of freedom)
println(independenceTestResult)
// pairs(feature, label).
val obs: RDD[LabeledPoint] = ...
// 独立性检测用于特征选择
val featureTestResults: Array[ChiSqTestResult] = Statistics.chiSqTest(obs)
var i = 1
featureTestResults.foreach { result =>
println(s"Column $i:\n$result")
i += 1
}
- 点赞
- 收藏
- 关注作者
评论(0)