美文网首页
Spark Mllib PCA降维

Spark Mllib PCA降维

作者: LZhan | 来源:发表于2019-07-19 14:30 被阅读0次

与sk_learn相比,spark mllib的PCA降维方法,只能设置最终降维的维数。


image.png

实例demo:

 val spark = SparkSession.builder()
      .master("local[2]")
      .appName("Spark Mllib")
      .getOrCreate()


    val df = spark.createDataFrame(Seq(
      (0, 1.2), (1, 2.3), (2, 4.4), (3, 5.4), (4, 3.7), (5, 99.5)
    )).toDF("id", "category")

    //    //多列合并成1列
    //    import spark.implicits._
    //    val df_pca=df.map(_.toSeq.foldLeft("")(_+","+_).substring(1)).toDF("features")
    //
    //    df_pca.show()

    //将多列合并成1列Vector
    //VectorAssembler不支持合并String类型
    val assembler1 = new VectorAssembler().
      setInputCols(df.columns).
      setOutputCol("features")

    val df_pca = assembler1.transform(df)

    val pca = new PCA()
      .setInputCol("features")
      .setOutputCol("pcaFeatures")
      .setK(1)
      .fit(df_pca)

    val rs = pca.transform(df_pca)
    rs.show()

踩坑:
1.Spark MLlib提供的PCA变换方法最多只能处理65535维的数据
2.在做PCA降维之前,我们需要将数据集的特征合并为1列,
一开始在实际中,合并为一列的方法就是以字符串相隔,将多个列拼接起来,是String类型;
但是PCA所接受的参数类型只能是Vector,所以这里合并为1列的方法,最好还是使用VectorAssembler()方法。
3.还需要注意的是VectorAssembler进行列合并时,不能有类型为String的特征列。

相关文章

  • Spark Mllib PCA降维

    与sk_learn相比,spark mllib的PCA降维方法,只能设置最终降维的维数。 实例demo: 踩坑:1...

  • PCA

    PCA降维 一、算法原理 降维算法 还原算法 二、算法实现 三、scikit-learn PCA 四、PCA降噪 ...

  • 使用Spark ML进行数据分析

    Spark版本:2.4.0语言:Scala任务:分类 这里对数据的处理步骤如下: 载入数据 归一化 PCA降维 划...

  • 【R图千言】主成分分析之3D绘图

    主成分分析 (PCA, principal component analysis)是一种数学降维方法。 PCA降维...

  • numpy实现鸢尾花数据集PCA降维

    PCA降维过程 在前面的一篇博客中我已经从数学角度解释了PCA降维的原理,我们从中也可以得到PCA降维的过程1)将...

  • spark mllib支持哪些机器学习算法?

    Spark 2.1 Mllib考虑到spark选型做mllib的人,最关心问题,就是spark mllib能够支持...

  • PCA降维

    当数据特征较多时,基本有两种方法:1 PCA降维2 Feature Selection(特征选择) PCA降维 <...

  • 使用标准化对数据进行处理

    标准化 PCA降维

  • 在线作图|2分钟绘制三维PCA图

    三维PCA 主成分分析算法(PCA)是最常用的线性降维方法。PCA降维为了在尽量保证“信息量不丢失”的情况下,对原...

  • PCA算法推导

    一、PCA降维 1.PCA简介 PCA(主成分分析)是一种数据降维的方法,即用较少特征地数据表达较多特征地数据(数...

网友评论

      本文标题:Spark Mllib PCA降维

      本文链接:https://www.haomeiwen.com/subject/nmajlctx.html