本文为学习记录,写的不好请大家指正见谅,互相学习,也为自己巩固学习成果包括后续复习所用!
首先来看下什么是 PCA(主成分分析法):
我们通过一个2个特征的图来理解下,由图中的文字说明我们可以得知:
我们的目的是找到一个轴,让样本点空间的所有点映射到这个轴之后,方差最大。
在求最大方差前,我们需要做一步操作,让我们所有样本特征的平均值归0,称为demean操作
方差最大:能最大程度的保证数据的离散程度
所以我们有文字转换成公式就是
求方差
下面来看一下数学推导:
这里我们就将PCA转换成了一个求最大解的式子,所以我们利用梯度上升法,来求得最大值
我们需要特别注意的是:线性回归图形中,Y轴为我们的输出标记,我们求解的是(y-y').而在PCA中,Y轴也是特征,所以两个图形看起来相似,但是实际上是不一样的。
梯度上升法:
转化成代码:
上述求解出了我们第一主成分,然后我们在X样本中将我们的第一主成分去掉,然后求解第二主成分,第三主成分。。
利用循环
1.如何去掉我们的第一主成分,很简单,利用向量,使用X-X(project) 即可,使用代码:
X2 = X - X.dot(w).reshape(-1, 1) * w
然后再利用梯度上升求解w即可