PySpark PCA:从模型对象中获取组件数量

Posted

技术标签:

【中文标题】PySpark PCA:从模型对象中获取组件数量【英文标题】:PySpark PCA: get number of components from model object 【发布时间】:2018-05-22 17:12:34 【问题描述】:

我在 PySpark 中有一个适合的 PCA 模型,我需要从模型对象中获取组件的数量。

from pyspark.ml.feature import PCA
pca = PCA(k=5, inputCol='features', outputCol='components')
pca_model = pca.fit(data)

我尝试使用pca_model.kpca_model.getParam('k'),但它们都没有给出组件的数量。

>>> pca_model.k
Param(parent='PCA_4e66a98132a4fe4ad86c', name='k', doc='the number of principal components (> 0)')
>>> pca_model.getParam('k')
Param(parent='PCA_4e66a98132a4fe4ad86c', name='k', doc='the number of principal components (> 0)')

如何从 PySpark 的 PCAModel 对象中获取组件的数量?

【问题讨论】:

【参考方案1】:

你可以使用它的Java模型:

pca_model._java_obj.getK()

getOrDefault方法:

pca_model.getOrDefault("k")

【讨论】:

以上是关于PySpark PCA:从模型对象中获取组件数量的主要内容,如果未能解决你的问题,请参考以下文章

如何在 pyspark 中可视化决策树模型/对象?

数据分析工具篇——Pyspark实现PCA主成分

Pyspark 和 PCA:如何提取此 PCA 的特征向量?我如何计算他们解释的方差有多大?

如何从 gridSearchCV 的输出中获取特征名称

Sklearn PCA:用于训练和测试的组件数量不同

为啥在使用 PCA 减少后拟合随机森林模型时性能会受到影响?