PCA是什么
PCA(Principal Component Analysis)是一种常用的数据分析方法
PCA通过线性变换将原始数据变换为一组各维度线性无关表示,可用于提取数据的主要特征分量及高维数据的降维,而转换后的这组变量便是我们所说的主成分
目的和原则
目的: 在机器学习中,实际处理的数据有成千上万甚至几十万的维度,这种情况下机器学习的资源消耗是不可接受的,并且对算法的复杂度也有很大的影响,因此对数据降维是必要的
原则: 降维就意味着要舍去一些维度数据,那么数据信息自然也会丢失,但是通常实际数据常常存在一定的相关性,我们在降维的同时应尽可能的将信息损失降到最低
我们举个例子,淘宝店铺数据里的浏览量和访客数一般有很强的正相关关系,下单数和成交数也具有很强的正相关关系,那么我们把浏览量和访客数去掉其中一个,下单数和成交数去掉其中一个,对原来的数据信息不会丢失太多信息,这样遍将原来四维数据降到了二维,那么机器学习算法的复杂度也会降低,由此我们也可以看出降维的核心是主要将原来的数据中维度之间相关性比较强的数据重新组合成维度之间相关性很小的数据,在数学中,我们可以用协方差来表示。在PCA降维过程中,一般尽可能使最大方差的方向和新空间的轴对齐,取前面k个包含了绝大部分方差的坐标轴,事实上,这相当于只保留包含绝大部分方差的维度特征,而忽略包含方差几乎为0的特征维度,实现对数据特征的降维处理。
PCA与数学理论
均值和零均值化
均值
在PCA降维过程中,我们所求的均值是每个维度的均值。
x ˉ = 1 m ∑ i = 0 m x i \bar{x}=\frac{1}{m}\displaystyle\sum_{i=0}^m x_i xˉ=m1i=0∑mxi
零均值化
然后将每个维度的数据进行零均值化,所谓零均值化就是让均值为0,即每个数据都减去均值。
x 0 ˉ = x i − x ˉ \bar{x^0}=x_i-\bar{x} x0ˉ=xi−xˉ
进行去均值的原因是如果不去均值的话会容易拟合。在神经网络中,如果特征值x比较大的时候,会导致W*x+b的结果也会很大,这样进行激活函数(如relu)输出时,会导致对应位置数值变化量相对来说太小,进行反向传播时因为要使用这里的梯度进行计算,所以会导致梯度消散问题,导致参数改变量很小,也就会易于拟合,效果不好。我们举个最简单的例子:
假如:y=x+10,现在有x1=90,x2=100,则两个均值为95
不做零均值化:
y 2 y 1 = 100 + 10 90 + 10 = 1.1 \frac{y2}{y1}=\frac{100+10}{90+10}=1.1 y1

最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



