1. 概述
希望有足够多的特征(知识)来保准学习模型的训练效果,但高维的特征也有几个如下不好的地方:
- 学习性能下降,知识越多,吸收知识(输入),并且精通知识(学习)的速度就越慢;
- 过多的特征难于分辨,很难第一时间认识某个特征代表的意义
- 特征冗余
特征降维的一般手段就是将高维特征投影到低维空间。
降维的作用:数据压缩和数据可视化。
例子:2D---->1D 3D------>2D
2. PCA(主成分分析)
PCA,Principle Component Analysis,即主成分分析法,是特征降维的最常用手段。
PCA 能从冗余特征中提取主要成分,在不太损失模型质量的情况下,提升模型训练速度。
PCA 使得各个特征的投影误差足够小,尽可能的保留原特征具有的信息。
(1)PCA算法流程
需求:将特征维度从 n 维降到 k 维
执行流程:
1)特征标准化,平衡各个特征尺度:
2)计算协方差矩阵 Σ :
3)通过奇异值分解(SVD),求取 Σ 的特征向量(eigenvectors):
4)从 中取出前 个左奇异向量,构成一个约减矩阵 :
5)计算新的特征向量:
(2)特征还原
因为PCA仅保留了特征的主成分,所以PCA是一种有损的压缩方式,假定我们获得新特征向量为:那么,还原后的特征 为:
(3)降到多少维才合适?
如果降维不多,则性能提升不大;如果目标维度太小,则又丢失了许多信息。通常,使用如下的流程的来评估 k 值选取优异:
1)求各样本的投影均方误差:
2)求数据的总变差:
3)评估下式是否成立:
其中,的取值可以为 0.01,0.05,0.10,⋯0.01,0.05,0.10,⋯ ,假设=0.01 ,我们就说“特征间 99% 的差异性得到保留”。
3. PCA的应用建议
1)不要提前优化
由于 PCA 减小了特征维度,因而也有可能带来过拟合的问题。PCA 不是必须的,在机器学习中,一定谨记不要提前优化,只有当算法运行效率不尽如如人意时,再考虑使用 PCA或者其他特征降维手段来提升训练速度。
2)降维不只是加速学习
降低特征维度不只能加速模型的训练速度,还能在低维空间分析数据,进行可视化分析。
来源:https://blog.csdn.net/qq_36217665/article/details/99988572