一、PCA 1.PCA概念 PCA(principle component analysis),即主成分分析法,是一个非监督的机器学习算法,主要用于数据的降维,通过降维可以发现更便于人理解的特征,此外还可以应用于可视化和去噪。 例如对于有2个特征的样本,现在对样本进行降维处理。首先考虑选择特征1或者特征2,经过降维后的样本如图所示。 这个时候可以发现相对于选择特征2,选择特征1进行映射后,样本的可区分度更高。除了向某个特征做映射,还可以选择某个轴进行映射,例如下图所示的轴,样本经过映射后,可以有更大的间距。所以现在的问题就是如何找一个轴,使样本的有最大的间距。 2.求解思路 事实上,可以使用方差来定义样本之间的间距。方差越大表示样本分布越稀疏,方差越小表示样本分布越密集。 在求解方差前,可以先对样本减去每个特征的均值,这种处理方式不会改变样本的相对分布,并且求方差的公式可以转换成图示的公式。在这里,xi代表已经经过映射后的样本,此时xi每个维度上的均值都是0。 现在求一个轴的方向w=(w1,w2),使得映射到w之后方差最大。 因此求解的公式可以转换成如下形式。 因此求解的目标转换成。这就转换成了求目标函数的最优化问题,可以通过梯度上升法进行求解。 二、梯度上升法求解 1.公式求解 最终公式可以化简为如下形式。 2.代码实现 import numpy as np import