翻译自官方文档
如有问题,欢迎留言指正,转载请注明出处。
基本统计
目录
相关性
假设检验
相关性
计算两个数据系列之间的相关性是统计学中的常见操作。在spark.ml中,我们灵活的提供了在很多数据系列之间计算成对相关性的方法。支持相关性的方法是Pearson(皮尔逊)相关性和spearman相关性
import org.apache.spark.ml.linalg.{Matrix, Vectors}import org.apache.spark.ml.stat.Correlationimport org.apache.spark.sql.Rowval data = Seq( Vectors.sparse(4, Seq((0, 1.0), (3, -2.0))), Vectors.dense(4.0, 5.0, 0.0, 3.0), Vectors.dense(6.0, 7.0, 0.0, 8.0), Vectors.sparse(4, Seq((0, 9.0), (3, 1.0))) )val df = data.map(Tuple1.apply).toDF("features")val Row(coeff1: Matrix) = Correlation.corr(df, "features").head println("Pearson correlation matrix:\n" + coeff1.toString)val Row(coeff2: Matrix) = Correlation.corr(df, "features", "spearman").head println("Spearman correlation matrix:\n" + coeff2.toString)
完整示例代码在Spark仓库的 "examples/src/main/scala/org/apache/spark/examples/ml/CorrelationExample.scala" 这个位置
假设检验
假设检验是统计学中强大的工具,用于确定结果是否具有统计学意义,无论该结果是否偶然发生。spark.ml目前支持Pearson的卡方(χ2)独立性测试。
卡方测试针对标签的每个特征进行Pearson独立测试。对于每个特征,特征标签对被转换成列联表(contingency matrix),以计算卡方统计量。所有标签和特征值必须是明确的。
有关API的详细信息,请参阅ChiSquareTest Scala文档。
import org.apache.spark.ml.linalg.{Vector, Vectors}import org.apache.spark.ml.stat.ChiSquareTestval data = Seq( (0.0, Vectors.dense(0.5, 10.0)), (0.0, Vectors.dense(1.5, 20.0)), (1.0, Vectors.dense(1.5, 30.0)), (0.0, Vectors.dense(3.5, 30.0)), (0.0, Vectors.dense(3.5, 40.0)), (1.0, Vectors.dense(3.5, 40.0)) )val df = data.toDF("label", "features")val chi = ChiSquareTest.test(df, "features", "label").head println("pValues = " + chi.getAs[Vector](0)) println("degreesOfFreedom = " + chi.getSeq[Int](1).mkString("[", ",", "]")) println("statistics = " + chi.getAs[Vector](2))
在Spark仓库中"examples/src/main/scala/org/apache/spark/examples/ml/ChiSquareTestExample.scala" 这个位置有完整代码。
翻译自官方文档
如有问题,欢迎留言指正,转载请注明出处。
作者:xcrossed
链接:https://www.jianshu.com/p/3b1a1a44f72c
共同學(xué)習(xí),寫下你的評(píng)論
評(píng)論加載中...
作者其他優(yōu)質(zhì)文章