吴恩达机器学习——降维

2020-07-03  本文已影响0人  睡不好觉的梨

1. 降维能做的:

1)数据压缩:占用更少的内存和硬盘空间。加速学习算法。

2)数据可视化:维度降到2或3就可以可视化数据。(从图中推测各维度代表的意义大概是什么)

2. 降维:

从高维度映射/投影到低维度空间上。

试图找到一个低维度的空间,使投影误差最小。例如从n维降到k维,就是找k个向量,使得从n维空间数据投影的投影误差最小。

3. 线性回归和降维的区别:

线性回归是要预测y值,所以要最小化的是y轴方向上点到线的距离,而降维目的是要使投影的误差尽可能小,所以要最小化的是点到线的正交距离,也就是投影的距离。

4. 实现方法:主成分分析PCA

以 n维——>k维 为例,步骤:

1)数据预处理:均值标准化(对每个特征值减去这个特征的均值,标准化之后的均值为0);如果特征在不同数量级上,还要做特征缩放,除以这个特征的测量值(如常见的标准差)。

2)计算协方差矩阵:\Sigma =\frac{1}{m} \sum_{i=1}^n(x^i)(x^i)^T

这里有一篇介绍协方差的文章,可参考: https://www.cnblogs.com/terencezhou/p/6235974.html

3)svd分解:[U,S,V]=svd(\Sigma )

其中U是与原始样本投影误差最小的方向向量构成的矩阵(n*n)。取前k个列向量,用U_{reduce} 表示(n*k)。

计算得到 k*1的新向量:z^i =U_{reduce}^T *x^i     

5. 还原高维数据:

x_{approx}^i=U_{reduce}*  z^i  得到的是原始样本的近似,因为只取了前k列,所以还原的是投影到k维空间上的值,误差取决于投影误差的大小。

6. PCA应用于加速学习算法

U_{reduce} 是在训练集上运行PCA得到的,再把这个映射用在交叉验证集和测试集。

不要用PCA减少过拟合,因为可能丢失有用信息,应该用正则项来减少过拟合。

在确切需要降维的时候(算法运行的太慢等)才使用PCA,不必要的时候不要使用。

上一篇下一篇

猜你喜欢

热点阅读