在Sparklyr中的PCA之后提供旋转数据(主成分分数)

时间:2017-08-02 13:26:11

标签: r apache-spark pca sparklyr

我正在尝试找到一种方法来检索由ml_pca()找到的PCA组件旋转后获得的PC分数。

使用$ components可以轻松访问PCA组件,但PCA组件输入数据的矩阵乘法结果似乎无法访问。

我可以“手动”完成。例如,在Scala中它将是:

val mat: RowMatrix = new RowMatrix(dataRDD)

// Compute the top 4 principal components.
// Principal components are stored in a local dense matrix.
val pc: Matrix = mat.computePrincipalComponents(4)

// Project the rows to the linear space spanned by the top 4 principal components.
val projected: RowMatrix = mat.multiply(pc)

所需的输出是“投影”,但我想找到一种直接从对象中检索此信息的方法。

1 个答案:

答案 0 :(得分:0)

你可以尝试这样的事情。

    pca_model <- Data %>%
       ml_pca(features = c("feature1", "feature2"), k = 2) %>%
       sdf_project() %>%
       select(response_variable,starts_with("PC"))