apache-spark - 如何对大型特征集进行主成分分析?
问题描述
我正在使用逻辑回归来训练具有 20,000 个特征的数据集,并且还使用 PCA 进行降维。下面的代码片段直接来自这里的文档:https ://spark.apache.org/docs/latest/mllib-dimensionality-reduction.html#principal-component-analysis-pca但是,我(可以理解)正在获取 Java 堆空间错误(本地和在 GCP 集群上运行时)。我如何将 PCA 用于如此大的特征集,或者,什么是降维的更好方法?
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)))
解决方案
推荐阅读
- android - Android 6 AudioManager 返回错误的 RingerMode
- python - 在情节中使用熊猫数据框的条形图
- c# - 我如何才能访问我的 System.Collections.Generic.List`1 [mySolution.Models.PermissionsModel] 类型的会话并进行一些测试
- javascript - splice 不删除当前元素
- asp.net-core - 启动 dotnet 失败(“dotnet”不是符号链接文件)
- amazon-web-services - 适用于 AWS Athena 的 Protobuf(Google 协议缓冲区)对 S3 中二进制文件的 AWS GLUE 转换
- javascript - 如何动态对齐饼图中的图例指向饼图
- php - 无法在 php 中解码此 json
- css - 是否可以在 CSS 中创建一个防止全局样式的 Guard 类名?全局样式可以修改
- javascript - 节点 JS crypto.createCipheriv 错误:无效的密钥长度