【发布时间】:2021-03-12 07:59:47
【问题描述】:
我正在对我的数据进行 PCA,我从以下地址阅读指南:https://spark.apache.org/docs/latest/mllib-dimensionality-reduction
相关代码如下:
import org.apache.spark.mllib.feature.PCA
import org.apache.spark.mllib.linalg.Vectors
import org.apache.spark.mllib.regression.LabeledPoint
import org.apache.spark.rdd.RDD
val data: RDD[LabeledPoint] = sc.parallelize(Seq(
new LabeledPoint(0, Vectors.dense(1, 0, 0, 0, 1)),
new LabeledPoint(1, Vectors.dense(1, 1, 0, 1, 0)),
new LabeledPoint(1, Vectors.dense(1, 1, 0, 0, 0)),
new LabeledPoint(0, Vectors.dense(1, 0, 0, 0, 0)),
new LabeledPoint(1, Vectors.dense(1, 1, 0, 0, 0))))
// Compute the top 5 principal components.
val pca = new PCA(5).fit(data.map(_.features))
// Project vectors to the linear space spanned by the top 5 principal
// components, keeping the label
val projected = data.map(p => p.copy(features = pca.transform(p.features)))
此代码对数据执行 PCA。但是,我找不到解释如何保存和加载适合的 PCA 对象以供将来使用的示例代码或文档。有人可以根据上面的代码给我一个例子吗?
【问题讨论】:
标签: scala apache-spark pca