Pyspark y PCA: ¿Cómo puedo extraer los vectores propios de esta PCA? ¿Cómo puedo calcular cuánta varianza están explicando?
Estoy reduciendo la dimensionalidad de unSpark DataFrame
conPCA
modelo con pyspark (utilizando elspark
ml
biblioteca) de la siguiente manera:
pca = PCA(k=3, inputCol="features", outputCol="pca_features")
model = pca.fit(data)
dóndedata
es unSpark DataFrame
con una columna labradafeatures
cual es unDenseVector
de 3 dimensiones:
data.take(1)
Row(features=DenseVector([0.4536,-0.43218, 0.9876]), label=u'class1')
Después de ajustar, transformo los datos:
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]))
Mi pregunta es: ¿Cómo puedo extraer los vectores propios de esta PCA? ¿Cómo puedo calcular cuánta varianza están explicando?