14、1数据压缩
如果这时x1代表飞行员的飞行技巧,x2代表飞行员的快乐程度,则这两项可能关系紧密,甚至可以互相代替,这时我们就可以把特征量从二维降为一维。
三维坐标上的点我们看出大部分都在同一个平面,所以我们可以把三维点压缩为二维点:
14、2可视化
当我们衡量一个国家的指标多达50个时,这时我们很难在图表把这些国家表示出来,如果这时50维的指标降为2维(总GDP和人均GDP)时,我们可以很好的在图表上表示每个国家。
14、3PCAⅠ
从2维特征向量变为1维向量其实就是把寻找一条向量,让所有二维点投影到这个向量上(垂直投影),要求是所有点的投影距离平方和最小。
从n维特征向量变为k维特征向量也就是找一个K维的线性子空间。
PCA和线性回归的区别:
①线性回归求的最小距离和中距离是竖直距离
PCA求的最小距离和中距离是垂直距离
②线性回归中横轴和纵轴的意义不同,一个是特征量,一个是结果;而PCA横轴和纵轴都是特征量
14、4PCAⅡ
PCA的过程
首先数据预处理:
均值标准化和特征缩放
然后计算出K个向量:
Sigma表示协方差(这里是求和符号上是m),然后运用SVD(奇异值分解)对协方差矩阵进行计算,得到矩阵U(n*n)。我们取U前k列构成我们的k维线性子空间。
运用U-reduce矩阵对我们的数据进行降维:
14、5PCA的参数K
分子:平均投影误差平方
分母:数据的总方差
使得这个分式小于0.01,也就是保留了99%的主成分
选择K的算法过程:
左边:令k=1,然后计算(平均投影误差平方/数据的总方差)的值,如果值小于0.01,就选择当前的K值,否则K一直递增(+1),直到找到符合要求的K值
右边:可以从奇异值分解中得到S矩阵(对角阵),然后如下图所示计算。
两种方法思路大致一样,都是先令K=1,然后递增寻找符合条件的K值,只不过右边的方法计算量更小。
14、6压缩数据还原
压缩矩阵乘以压缩后的特征向量,得以还原。
14、7应用PCA的建议
PCA用于提高算法的效率。
PCA的算法一般只在训练集上运行,算出对应关系之后,可以将其应用到交叉验证集以及测试集。
PCA的误用:
- 用PCA来防止过拟合(效果不如正则化)
- 把PCA用在所有的项目上(只会在正常特征量无法解决问题时才用PCA)