使用主成分分析进行特征降维与Spark应用打包部署
1. 特征降维概述
在数据分析和机器学习中,大量特征会导致计算成本高昂,这就是所谓的“维度灾难”。特征降维旨在减少数据中的特征数量,同时保留其变异性。手动选择和忽略某些特征是一种方法,但在处理大量特征时,识别相同或高度相关的特征非常费力。主成分分析(PCA)是一种用于监督和无监督学习的数据降维方法。
2. 监督学习数据的降维
在对监督学习的训练数据进行降维时,必须仅对训练数据应用PCA,不能使用测试集提取成分,否则会将测试数据的信息泄露到成分中,可能导致测试时准确率较高,但在实际生产数据上表现不佳。
2.1 确定主成分数量
可以通过奇异值向量来确定在保持足够高方差的情况下所需的最少主成分数量。奇异值显示了各成分捕获的方差量,第一个成分通常最重要,其贡献的方差最高,重要性会逐渐降低。以下代码可用于计算保留95%方差的主成分数量:
val dimensionDecidingSample = new RowMatrix((trainingSplit.randomSplit(Array(0.8, 0.2))(1)).map(lp => lp.features))
val svd = dimensionDecidingSample.computeSVD(500, computeU = false)
val sum = svd.s.toArray.sum
// Calculate the number of principal components which retains a variance of 95
超级会员免费看
订阅专栏 解锁全文
13

被折叠的 条评论
为什么被折叠?



