降维
1、定义
数据是由一个个特征组成的,假如数有n个特征,则称数据是n维的。
降维就是在保证数据特征趋势不变的前提下,减少特征的个数。
减少特征的依据是把多个相似、相关特征合并为1个特征。
2、目的
降维的目的分为两种:
- 压缩数据:特征数量变少了,数据量自然也就变少了,压缩数据后,可以提升计算速度,降低存储消耗。
- 可视化:通过可视化手段可以帮助我们进行数据分析,但是高纬度的数据(比如10维),是无法通过可视化的手段展现的,通过降维把维度降低到3维、2维后,就可以对数据进行可视化处理了。
3、PCA降维
PCA(Principal Component Analysis),主成分分析法,是最常用的降维方法之一。其核心思想是找出一个低维的平面或子空间,把样本投影到上面,使原样本与投影后的样本的距离的平方和最小。
如上图所示,把二维的数据投影到了一维的直线上。原始样本到直线的垂直距离,也称为“投影误差”。PCA就是找到一条使投影误差的平方和最小的平面。
注意PCA求解过程中,只与特征相关,并不涉及到样本的标签y。
3.1 计算过程
- 首先对数据进行预处理:均值标准化或特征缩放。
– 均值标准化:计算某个特征的平均值,然后使用特征值减去平均值来代替原来的特征值,
– 特征缩放:按照比率把特征缩放到某个特定范围内,比如除以1000. - 计算协方差:
注意左边的是大写的sigma,不是累加。
把Sigma代入svd公式,可以求出3个矩阵:
svd:是奇异值分解算法,是octave中的一个函数。
U:U是一个n*n的矩阵,称为降维矩阵,降到k维就是取它的前k列。 - 映射矩阵:映射到子空间上的矩阵
z代表映射后的矩阵,等于降维矩阵的前k列的转置乘以x,是一个k维的向量。 - 之后使用z代替x进行计算即可。
3.2 主成分数量的选择
主成分数量,指的是降维的数量,使用k表示,本节介绍如何选择k。
降维的目的是保证特征趋势不变的前提下,尽量选择小的k。
数学上讲就是保留最大的方差性的前提下,选择最小的k。
3.2.1 选择方法1
假设压缩后再还原的特征值为,则代表原始值与还原值的差距,该差距越小,则代表着压缩后的损失越小。
s代表损失的方差,则选择k的过程就是逐渐增大k,并保证s在合理范围内,比如<=0.01。
计算过程为:
- 假设k=1
- 计算s的值。
- 判断s<=0.01。
- 如果不满足条件则k=k+1,重新执行步骤2.
3.2.2 选择方法2
通过矩阵s来计算k:
即
3.3 压缩重现
压缩重现就是把压缩后的低维数据恢复到高维,因为
所以
3.4 建议
- PCA只应用到训练集上,然后把降维矩阵应用到测试集和交叉训练集上。
- PCA不要用来防止过拟合:因为PCA的计算过程与Y根本就没有关系,降维的过程中可能会丢失与Y有关系的关键信息,所以不要使用PCA来将拟合,而使用正则化的方式。
- 不要把PCA作为必选步骤:保持简单,有必要的时候再用,比如需要数据压缩或可视化的时候。