scala - 如何在 spark scala 中保存 PCA 对象?
问题描述
我正在对我的数据进行 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 对象以供将来使用的示例代码或文档。有人可以根据上面的代码给我一个例子吗?
解决方案
PCA mlib 版本似乎不支持将模型保存到磁盘。您可以改为保存生成的 PCAModel 的 pc 矩阵。但是,请使用 spar ML版本。它返回一个可以序列化并包含在 Spark ML 管道中的 Spark Estimator。
推荐阅读
- swift - Swift,带有完成处理程序的网络调用不起作用
- c++ - 错误:无法将“float*”转换为“float”作为回报
- oracle - 当视图用于显示 Oracle Apex 中的现有记录时,如何在表中更新或创建新记录?
- python - 如何从嵌套列表中按 IP 地址提取端口
- mysql - sql 对 USERS 销售额求和
- django - Django elasticsearch DSL DRF 建议问题
- reactjs - Algolia instasearch 设计,如 reactjs.org 上的点击量 - reactjs
- yocto - Yocto 在 64 位系统上为 32 位构建了一些食谱
- rust - 货物功能是否可以删除依赖项?
- firebase - 我们可以在 Firebase 测试实验室中使用 flutter_driver 运行自动化测试吗?