PCA是一种基本的数据降维技术。在知乎或者百度搜索PCA,会找到很多关于PCA的介绍。
我喜欢在直观上理解数学知识。因此我打算从直观的角度把我对PCA的理解写出来。毕竟是个人见解,如有不妥之处欢迎指正。
以下内容假定读者稍微了解过PCA。
接下来以最简单的模型为例:如何把二维数据压缩至一维。
正如最近很火的一句话:“戏说不是胡说,改编不是乱编”。数据压缩也不是随心所欲地压缩。我们的目标是:让新数据的方差尽可能地大。这样的标准能使得新数据尽可能地不丢失原有数据的信息,因为方差越大,数据间的差异越大。
如下图所示:有六个点,每个点有两个特征,分别对应x轴和y轴。我们需要把他们压缩成一维的数据,即每个点只有一个特征。
因此要寻一条直线,让所有点投影到该直线上。该直线上的刻度即为新数据的值。
![机器学习]学习笔记:PCA(主成分分析)的直观理解 机器学习]学习笔记:PCA(主成分分析)的直观理解](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzU5Ni85ZjhkZjZhZGY0NTE0YzcyZjNlZDQzZDViMzg1M2M2NC5wbmc=)
首先我们进行中心化处理。中心化的好处在于,我们寻求的直线必定经过原点。如下图所示。我们只需从所有经过原点的直线中,找一条直线,使得各个数据的方差最大。
![机器学习]学习笔记:PCA(主成分分析)的直观理解 机器学习]学习笔记:PCA(主成分分析)的直观理解](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzYyNS85ZjcyOGRhZWQ5ZjQ5ODQ2M2NjMDUyNWJlYzg5ZWI3OS5wbmc=)
注意到这样一个性质:由于OP的距离是定的,因此过原点作任何一条直线,记Q是P在该直线上的投影点,都有 OQ2+PQ2=定值。如下图所示。
![机器学习]学习笔记:PCA(主成分分析)的直观理解 机器学习]学习笔记:PCA(主成分分析)的直观理解](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzQ0Mi9lNTE1NGE3MGU4OThhYjQzYzQ1YjRmYjhjNDJhMzY1Mi5wbmc=)
显然知道OQ(带正负号的长度)是数据P(xp,yp)压缩后的值。
那么如下图所示:对于A1到A6六个点,分别作直线的垂线,交直线于B1到B6六个点。直线可以看做数轴,坐标系的原点就是数轴的原点。 记B1到B6六个点的刻度分别为b1,…,b6。 那么b1,…,b6就是降维后的数据。
![机器学习]学习笔记:PCA(主成分分析)的直观理解 机器学习]学习笔记:PCA(主成分分析)的直观理解](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzkwNi83OWQyNjUwNzM0ZTYyN2IzOGUwYjZmOTdjOGYzZDY1YS5wbmc=)
由于数据已经做了中心化处理,所以b1+b2+…+b6=0。一般性的具体证明如下(电脑上编辑公式太麻烦了,学习时间紧张,暂时就用手写代替吧):
![机器学习]学习笔记:PCA(主成分分析)的直观理解 机器学习]学习笔记:PCA(主成分分析)的直观理解](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzg4OC84NDIyYTMzZWZkNjdhN2QyZDMxYWI2ODAwM2VkYjc0MC5wbmc=)
也就说明 b 的均值为0。那么 b 的方差为: nb12+b22+b32+b42+b52+b62.
回想我们的目标是让压缩后的数据方差最大,即让i=1∑6bi2最大。
记点Ai到直线的距离为di,那么有di2+bi2=定值。
于是i=1∑6bi2+i=1∑6di2=定值。
要使i=1∑6bi2最大,那么等价于i=1∑6di2最小。
到这里,问题就差不多解决了。后面的步骤和网上其他方法是一样的。
这个结果是很美妙的,我忍不住和一元线性回归作比较。如下图所示,一共有九个点。我们要进行一元线性回归,所采取的策略是让平方损失最小,通俗地来说,就是让九条绿线的平方和最小。
![机器学习]学习笔记:PCA(主成分分析)的直观理解 机器学习]学习笔记:PCA(主成分分析)的直观理解](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzYxNy8zMzEyY2M5ZTM3MmViZGI4MjMwMGY1MDAxYjcwYjhmOS5wbmc=)
如果是采用PCA,如下图所示,我们采取的策略是让九条红线的平方和最小。
![机器学习]学习笔记:PCA(主成分分析)的直观理解 机器学习]学习笔记:PCA(主成分分析)的直观理解](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzU3OC9mZjg4NmZjNWY0OGQ1NTRhOWVhYjcxNTE4Y2U0NWVkMi5wbmc=)
事实上,一元线性回归也能采取“使点到直线距离的平方和最小”的策略。两种策略各有各的优势与缺陷。只不过“平方误差最小原则”已经被广泛地接受。
类似地,对于n维数据,投影到更小的k维空间也能同样地进行类比。有时间的话我再更新。
本文系原创,首发于知乎。