Pyspark e PCA: Como posso extrair os autovetores deste PCA? Como posso calcular quanta variação eles estão explicando?
Estou reduzindo a dimensionalidade de umSpark DataFrame
comPCA
modelo com pyspark (usando ospark
ml
biblioteca) da seguinte forma:
pca = PCA(k=3, inputCol="features", outputCol="pca_features")
model = pca.fit(data)
Ondedata
é umSpark DataFrame
com uma coluna trabalhadafeatures
qual é umDenseVector
de 3 dimensões:
data.take(1)
Row(features=DenseVector([0.4536,-0.43218, 0.9876]), label=u'class1')
Após o ajuste, eu transformo os dados:
transformed = model.transform(data)
transformed.first()
Row(features=DenseVector([0.4536,-0.43218, 0.9876]), label=u'class1', pca_features=DenseVector([-0.33256, 0.8668, 0.625]))
Minha pergunta é: Como posso extrair os vetores próprios deste PCA? Como posso calcular quanta variação eles estão explicando?