1. 降维能做的:
1)数据压缩:占用更少的内存和硬盘空间。加速学习算法。
2)数据可视化:维度降到2或3就可以可视化数据。(从图中推测各维度代表的意义大概是什么)
2. 降维:
从高维度映射/投影到低维度空间上。
试图找到一个低维度的空间,使投影误差最小。例如从n维降到k维,就是找k个向量,使得从n维空间数据投影的投影误差最小。
3. 线性回归和降维的区别:
线性回归是要预测y值,所以要最小化的是y轴方向上点到线的距离,而降维目的是要使投影的误差尽可能小,所以要最小化的是点到线的正交距离,也就是投影的距离。
4. 实现方法:主成分分析PCA
以 n维——>k维 为例,步骤:
1)数据预处理:均值标准化(对每个特征值减去这个特征的均值,标准化之后的均值为0);如果特征在不同数量级上,还要做特征缩放,除以这个特征的测量值(如常见的标准差)。
2)计算协方差矩阵:
这里有一篇介绍协方差的文章,可参考: https://www.cnblogs.com/terencezhou/p/6235974.html
3)svd分解:
其中U是与原始样本投影误差最小的方向向量构成的矩阵(n*n)。取前k个列向量,用表示(n*k)。
计算得到 k*1的新向量:
5. 还原高维数据:
得到的是原始样本的近似,因为只取了前k列,所以还原的是投影到k维空间上的值,误差取决于投影误差的大小。
6. PCA应用于加速学习算法
是在训练集上运行PCA得到的,再把这个映射用在交叉验证集和测试集。
不要用PCA减少过拟合,因为可能丢失有用信息,应该用正则项来减少过拟合。
在确切需要降维的时候(算法运行的太慢等)才使用PCA,不必要的时候不要使用。
网友评论