Python PySpark中的PCA分析
看着。这些示例似乎只包含Java和Scala Spark MLlib是否支持Python的PCA分析?如果是,请给我举个例子。如果没有,如何将Spark与scikit学习相结合?Spark>=1.5.0 尽管PySpark 1.5引入了分布式数据结构(Python PySpark中的PCA分析,python,apache-spark,apache-spark-mllib,pca,apache-spark-ml,Python,Apache Spark,Apache Spark Mllib,Pca,Apache Spark Ml,看着。这些示例似乎只包含Java和Scala Spark MLlib是否支持Python的PCA分析?如果是,请给我举个例子。如果没有,如何将Spark与scikit学习相结合?Spark>=1.5.0 尽管PySpark 1.5引入了分布式数据结构(PySpark.mllib.linalg.distributed),但它看起来API相当有限,并且没有实现computePrincipalComponents方法 可以使用pyspark.ml.feature.PCA中的或pyspark.mllib
PySpark.mllib.linalg.distributed
),但它看起来API相当有限,并且没有实现computePrincipalComponents
方法
可以使用pyspark.ml.feature.PCA中的或pyspark.mllib.feature.PCA
。在第一种情况下,预期输入是具有向量列的数据帧:
from pyspark.ml.feature import PCA as PCAml
from pyspark.ml.linalg import Vectors # Pre 2.0 pyspark.mllib.linalg
df = sqlContext.createDataFrame([
(Vectors.dense([1, 2, 0]),),
(Vectors.dense([2, 0, 1]),),
(Vectors.dense([0, 1, 0]),)], ("features", ))
pca = PCAml(k=2, inputCol="features", outputCol="pca")
model = pca.fit(df)
transformed = model.transform(df)
在Spark 2.0或更高版本中,您应该使用pyspark.ml.linalg.Vector
代替pyspark.mllib.linalg.Vector
对于mllib
版本,您需要RDD
的Vector
:
from pyspark.mllib.feature import PCA as PCAmllib
rdd = sc.parallelize([
Vectors.dense([1, 2, 0]),
Vectors.dense([2, 0, 1]),
Vectors.dense([0, 1, 0])])
model = PCAmllib(2).fit(rdd)
transformed = model.transform(rdd)
火花<1.5.0
PySpark只是想补充一点,这个问题的解决方案正在进行中。检查和处的进度。Spark>2如何?语法似乎有changed@MehdiLAMRANI这对我有用。我正在使用Databrick问@zero323一个问题,我如何应用于实际的数据帧?任何帮助都将不胜感激。