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

PySpark PCA: get number of components from model object

我在 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'),但其中的 none 给出了组件的数量。

>>> 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 对象中获取组件数量?

您可以使用其 Java 型号:

pca_model._java_obj.getK()

getOrDefault方法:

pca_model.getOrDefault("k")