怎么跟你奶奶解释PCA

原文地址:https://yjk94.wordpress.com/2016/11/11/pca-to-layman/

前言

PCA(principal component analysis)是一个遍地可见的处理数据的方法,但是理解起来好像有点困难。 爱因斯坦说,如果没法跟你奶奶解释清楚一个东西,你就还没算真正理解它。看完这篇“教程”后,不妨回家试一试:-)

正文

想象下你正在家庭聚餐.

great-grandma听说你最近在研究”Pee-See-Ay”啊, 能告诉我那是什么吗…

you: PCA只是一个用来浓缩数据的方法啦。你看, 咱这桌上有几瓶酒。我们可以用颜色啦,酒精浓度啦,年代啦这样一些特征来描述它们。如果有很多酒,比如在酒窖里,咱们也可以用这样的方法。但是这些特征里面有一些描述了相似的特性,显得有点多余。比如颜色越深时,往往浓度也越高(纯属瞎编),那我们就可以把这两个特征合二为一,这样就可以用比较少的特征来概括描述咱们的酒了。这个就是PCA做的事啦。

great-grandma:为什么要做浓缩呢..

you: 这个跟“浓缩洗衣粉”是一个道理呀。每次洗衣服时,只要加一点点浓缩洗衣粉就够了。但换做普通洗衣粉,就得加好几勺不是吗?洗衣粉浓缩了之后变轻了,数据浓缩了之后也会省下很多空间,电脑处理起来也没那么费劲了。

grandma: interesting! 所以PCA做的就是检查下哪些特征是多余的,然后把它扔掉吗?

you: 阿嬷,这个问题问的太有水平了! PCA并不是选出一些特征,然后丢掉另外的特征。事实上,它找出了一些新的特征,而且这些新特征可以很好的描述咱们的酒。怎么找的呢?利用的还是之前的特征,但有些不一样了。比如,酒的年代减去它的酸度,就可以变成一个新的特征。这样的组合有很多,PCA做的就是找出最有用的那些组合(线性组合)。

Mum: 唔。。听起来很不错呀,但我还是不太理解。你刚刚说这些新特征“概括”了那些酒是什么意思?

you: 首先啊,我们描述酒的时候,其实就是想找一些比较有区分度的特征。如果说桌上十瓶酒,每瓶都十块钱,那价格就没多少区分度了。我们知道其实这些酒是有区别(浓度,年代等)的,但这时候如果用价格来描述它,咱们没法根据价格判断是什么酒,这就说明它没法起到“概括”的作用。所以,PCA就是要找出那些区分度很大的新特征,来“概括”咱们的酒。

其次呢,我们也想要找到这样的特征:它能让我们重现原貌,看到原来的酒的特征。就像把一篇文章浓缩成摘要之后,我想要根据摘要重现原来的文章; 或者一张图片打了马赛克之后,想要把它变回原来的高清大图。对,就是想找到有这种超能力的新特征。

巧的是,这两个目标其实是一样的,而且PCA都能实现,一石二鸟!

wife:但是,这两个目标看起来很明显就不一样啊?

you: 唔(怎么这么不给面子……)唉,我画个图给你看看吧(拿一张纸巾开始画)。我们找两个特征来描述酒,比如说颜色深度和酒精度数——我不确定它们是不是相关的,但就假设是吧。这是不同的酒的散点图。

%e5%be%ae%e4%bf%a1%e6%88%aa%e5%9b%be_20161111193507

这一堆圆点里面,每一个表示一瓶酒。我们看,图里面的两个特征(x和y)是相关的。所以,可以画一条穿过这些点的线,让这些点都投影到线上,这样我们就找到一个新特征了。新的特征可以用线ω_1*x+ω_2*y来表示,ω_1,ω_2不同时,线的方向就不同。

现在来仔细看看,这些点是怎么投影到不同的线上面的(红点表示蓝点的投影)。q7hip

线有这么多方向,但只要拿最好的那个来做新的特征,PCA自己会找到那条最好的线。什么是最好的呢?首先,线上的红色点的变化范围要最大(方差最大)。其次,当我们要用新特征(红色点)来重现原来的两个特征(蓝色点)时,这个过程的误差(红色连线)要越小越好。

仔细看看动画,你会发现“方差最大”和“误差最小”这两个条件,在线转动到品红色标记的方向时,同时满足了,也就是说,刚才那两个目标同时实现了。而这条线就相当于PCA找出的新特征。

顺便多说两句,PCA全称叫“主成分分析”,这个新特征就是“第一主成分”,而特征一般也称作“变量”。

daughter: 好神奇啊,爸爸!这个动画让我想起了勾股定理。但我听说PCA是跟特征向量和特征值有关的,它们在图里面的什么位置呢?

you: 哈哈,观察得很仔细嘛!你知道红点的方差怎么算吧,就是每个点跟中心点的距离的平方和。误差呢,用红色连线长度的平方取平均值表示。因为红线和黑线总是垂直,所以这两个量的和就刚好是所有蓝点跟中心点距离的平方取均值。这就是你说的勾股定理呀。这个总和是不变的,跟黑线的方向没有关系。所以,方差越大时,误差也会越小。

咱们可以把黑线想象成一根光滑的铁棒,红色线想象成一个个的弹簧。你学过物理了,应该知道胡克定理吧,就是弹簧的能量跟它长度的平方成正比。所以铁棒就会自己转动到合适的方向,让总能量保持最小才停止。

lnhqt

要说到特征向量和特征值,得先给你讲讲协方差矩阵。继续上面的例子,这是对应的2×2的协方差矩阵。

matrix1

它说明x的方差是1.07,y的方差是0.64,x和y之间的协方差是0.63. 它是一个方形对称阵,所以可以通过选择新的正交坐标系,把它转换成对角矩阵。坐标系就是通过特征向量得到的。它们对应的特征值就是新的对角阵对角线上的值。所以,新坐标系下的协方差阵是这样一个对角阵:

matrix2

这意味着,两个新变量之间的协方差变成了0. 如果我们用第一个坐标轴(特征向量)做投影,红点的方差就是1.52,也是最大的方差。原因其实就是:第一主成分的方向由协方差矩阵的第一个特征向量给出。(详细说明看这里

在上面的图中也可以看到,黑色铁棒垂直方向有一条灰色线,它们组成一个正交坐标系。蓝色点在铁棒转动到什么时候会变得不相关呢?答案跟之前一样,又是品红色线标记的方向。现在可以告诉你我是怎么找到这个方向的了:它就是协方差矩阵第一个特征向量的方向,在这个例子里,是(0.81, 0.58).

相关参考

  1. Making sense of principal component analysis, eigenvectors & eigenvalues
  2. A TUTORIAL ON PRINCIPAL COMPONENT ANALYSIS

猜你喜欢

转载自blog.csdn.net/Scrat000/article/details/80377921