数据预处理:PCA原理推导

来源:互联网 发布:淘宝类目网址 编辑:程序博客网 时间:2024/05/16 01:34

请点击上面公众号,免费订阅。 

《实例》阐述算法,通俗易懂,助您对算法的理解达到一个新高度。包含但不限于:经典算法,机器学习,深度学习,LeetCode 题解,Kaggle 实战。期待您的到来!


01

回顾

昨天推送了机器学习数据预处理的基本介绍:

  • 主成分分析的背景;

  • 主成分选取的必要性;

  • 什么是数据的主成分;

  • 作为引入,先从概念上说了说如何选取主成分,大概要根据每个特征的方差。

有需要了解的,请参考:机器学习数据预处理:数据降维之PCA


今天,尝试推导下如何选择主成分。基本任务便是拿到一堆数据,它有 n 个特征,现在要从中选择 k 个特征,作为主特征。



02

点在某个轴上的投影

如下图所示,我们有2个特征组成了两个不同的向量,一个表示为向量 i = (1,0) ,另一个表示为向量 j= (0,1) 。显然向量 i 和 j 是线性无关的,在 i 和 j 组成的线性空间中,任意元素总可以由向量 i 和 j 表示,所以 i 和 j 就称为线性空间的一个维数等于组成它的向量个数等于2

定义了以上线性空间后,那么任意一个样本点都可以由这个基唯一确定,并且这样才使得样本点 (3,2)有了真正的基石。那么 (3,2) 是怎么由 i 和 j 确定的呢? 容易看出: (3,2) = 3 * (1,0) + 2 * (0,1) 唯一确定。


然后再进一步,发现样本点 (3,2)在基石 i = (1,0) 上的分量为3,并且可以看成是在 i 上的投影,这个投影可以由点 (3,2) 确定的向量点乘基石向量 (1,0)得到,就这样实现了(3,2)在某个向量上的投影。


扩展开,某个点在某个轴上的投影,可以表示为这个向量点乘这个轴的方向向量。



03

选取第一主成分原理推导

昨天的推送中说到,高一101班的学生语数外成绩,随机取样了5个样本,还记得语文的分数成绩很均匀,几乎没有拉开差距,所以对最终的排名影响可以说是很小,在此简化起见,直接忽略这个维度,只考虑2个特征维度:数学和外语成绩,已经将3维降为2维,但是我们还是不满意,想继续降成1个维度,那么确定这个维度的方向,也就是第一主成分的方向就是接下来的主要目标。


如下图,数学成绩和外语成绩的变动范围都挺大的,我们在上图画出了2个第一主成分可能的大致方向,哪个颜色表示的方向更有可能接近第一主成分的方向呢? 




第一主成分一定是各个样本在这个方向上的投影,越分散越好,也就是方差越大越好,据此我们推断橘色线表示的方向一定更会接近第一主成分的方向,因为这5个样本点在它上面的投影分散的更开一些,与之相对的蓝色线的方向,各个样本点在上面的投影,显然没有那么分散开。


下面给出理论上的初步推导,对给定的一组数据,首先去均值中心化后,将这些样本点投影到第一主成分的方向 u1上,投影的计算方法如上面所述,就是将 xi 与u1 做内积,我们在此只关心 u1 的方向,不关心它的大小(可以归一化),即求下式的最大值:

对绝对值符号项进行平方处理同时根据两个向量的内积计算可以转化成矩阵的乘法,进一步转化后得到:

进一步将求和公式写为矩阵,特设定1个矩阵 X 和它的转置矩阵:

因此可将上式进一步化简为:

可以证明上式(半正定二次型矩阵)中第一主成分 u1 的方向就是在矩阵 的最大特征值对应的特征向量的方向。


至此,我们推导出了数据第一主成分的方向向量,那么第二主成分的向量自然对应的第二特征值的特征向量,如果要取 k 个主成分,自然求出的第 k 个特征值对应的特征向量即可。


今天的推送主要推理了数据降维,提取主成分时的理论支撑。明白了数据主成分提取的原理后,明天通过一个例子具体说明PCA由 n 个特征降维为 k 个特征的例子分析。


请记住:每天一小步,日积月累一大步!


《实例》阐述算法,通俗易懂,助您对算法的理解达到一个新高度。包含但不限于:经典算法,机器学习,深度学习,LeetCode 题解,Kaggle 实战。期待您的到来!


原创粉丝点击