我想对特定数据集执行主成分分析,然后将主成分提供给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%。
答案 0 :(得分:2)
使用函数computePrincipalComponentsAndExplainedVariance
,返回值将是一个矩阵以及一个向量,其值指示为每个主成分解释的方差。来自documentation:
返回:大小为n-by-k的矩阵,其列为主成分,以及一个值向量,表示每个主成分解释的差异
通过使用足够大的k作为输入,您可以简单地将向量中的数字相加,直到它达到90%或更高,然后使用矩阵中的那么多列。