【问题标题】:Apply PCA and keep a percentage of the total variance应用 PCA 并保留总方差的百分比
【发布时间】:2017-10-02 14:00:02
【问题描述】:

我想对特定数据集执行主成分分析,然后将主成分提供给LogisticRegression 分类器。

具体来说,我想应用PCA 并使用函数computePrincipalComponentsAndExplainedVariance 保持总方差的90%。

这是读取数据集的代码:

// Load the data
val text = sparkSession.sparkContext.textFile("dataset.data")        
val data = text.map(line => line.split(',').map(_.toDouble))  
// Separate to label and features
val dataLP = data.map(t => (t(57), Vectors.dense(t.take(57)))) 

我不太确定如何执行 PCA 以保持 90% 的总方差。

【问题讨论】:

    标签: scala apache-spark machine-learning apache-spark-mllib pca


    【解决方案1】:

    使用函数computePrincipalComponentsAndExplainedVariance,返回值将是一个矩阵以及一个向量,其中的值表示为每个主成分解释的方差。来自documentation

    返回:一个大小为 n×k 的矩阵,其列是主成分,以及一个值向量,表示每个主成分解释了多少方差

    通过使用足够大的 k 作为输入,您可以简单地将向量中的数字相加,直到达到 90% 或以上,然后使用矩阵中的那么多列。

    【讨论】:

      猜你喜欢
      • 2016-02-04
      • 1970-01-01
      • 2016-09-17
      • 1970-01-01
      • 2019-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多