Spark-MLlib 学习入门到掌握-相关性检测[1]

* 相关性检测
* 计算两个系列数据之间的相关性是“统计”中的常见操作。
* spark提供了很多系列中的灵活性,计算两两相关性。
* 目前支持的相关方法是Pearson和Spearman的相关。
  def correlationTest(): Unit = {
    val spark: SparkSession = SparkSession.builder().appName("implicits").master("local[2]").getOrCreate()
    val sqlContext: SQLContext = spark.sqlContext
    import sqlContext.implicits._
    /**
      * 稀疏向量:
      * *
      * 方法一:Vector.sparse(4,(0,2,3),(1,3,4))  (0,2,3)
      * *
      * 表示该向量的第0个,第2个,第3个位置,(1,3,4) 表示(0,2,3)位置对应的数值分别为1,3,4
      * *
      * 方法二:Vector.sparse(4,(0,1),(2,3),(3,4))
      * *
      *(0,1)就是(索引,数值)的形式。位置0的数值为1, 位置2的数值为3,位置3的数值为4
      */
    val 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)))
    )

    //数据结构转换为DataFrame
    val df = data.map(Tuple1.apply).toDF("features")

    //计算相关性-默认为pearman系数
    val Row(coeff1: Matrix) = Correlation.corr(df, "features").head
    println(s"皮尔森相关矩阵:\n $coeff1")

    //计算相关性-设置为spearman系数
    val Row(coeff2: Matrix) = Correlation.corr(df, "features", "spearman").head
    println(s"斯皮尔曼相关矩阵:\n $coeff1")
  }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值