机器学习经典算法笔记——PCA和梯度上升算法

首先,什么是PCA ?

principal Component Analysis
一个非监督的机器学习算法,主要用于数据的降维,通过降维,可以发现更便于人类理解的特征
通常应用于可视化,去噪

下面举个例子:

给这么一组数据,怎么把二维降到一维?
机器学习经典算法笔记——PCA和梯度上升算法
我们通常可以选择,向X轴或者Y轴投影,但是还是不够好,向X轴投会忽略Y轴方向的影响,反之,会忽略X轴方向,所以,我们提出一种更好的方案来解决这个问题。
机器学习经典算法笔记——PCA和梯度上升算法
机器学习经典算法笔记——PCA和梯度上升算法
找出一条线,投射到这条线上来解决这个问题,同时能够兼顾到X,Y轴方向,找到让样本间距最大的轴。

那如何定义样本间间距? 答案是方差。

第一步:将样例的均值归零(demean) 怎么归零?
机器学习经典算法笔记——PCA和梯度上升算法
我们通过变化坐标轴,使得均值为零,但是实际上点的相对位置没什么变化,方差公式也发生了变化(如上所示)

机器学习经典算法笔记——PCA和梯度上升算法

目标:求w,使得 f(x)=1mi=1m(X1iw1+X2iw2+.....+Xniwn)2f(x) = \frac{1}{m}\sum_{i=1}^m (X_1^iw_1 + X_2^iw_2 + .....+ X_n^iw_n)^2 最大,这个是上面的方差求解公

式,因为均值为0了,所以 Var(x)=1mi=1m(xix)2=1mi=1mxi2Var(x) = \frac{1}{m}\sum_{i=1}^m (x_i - \overline{x})^2 = \frac{1}{m}\sum_{i=1}^mx_i^2