小孩都看得懂的主成分分析

2019 年 9 月 22 日 平均机器

全文共  2210  字, 19  幅图,
预计阅读时间  12  分钟。


本文是「小孩都看得懂」系列的第五篇,本系列的特点是极少公式没有代码只有图画只有故事。内容不长,碎片时间完全可以看完,但我背后付出的心血却不少。喜欢就好!


  1. 小孩都看得懂的神经网络

  2. 小孩都看得懂的推荐系统

  3. 小孩都看得懂的逐步提升

  4. 小孩都看得懂的聚类

  5. 小孩都看得懂的主成分分析


本文所有思路都来自 Luis Serrano 的油管视屏「Principle Component Analysis (PCA)」,纯纯的致敬!


PCA 是无监督学习中的最常见的数据降维方法,但实际问题特征很多的情况,PCA 通常会预处理来减少特征个数。



1



提问:如果给我们 5 个人照相,照相机应该放在哪?


回答:放在图中打钩的地方,因为人脸面对照相机正面分布最开,最容易把所有人脸都照进来。


思考人脸分布最开 ≈ 数据方差最大



2



试想预测房价的场景,假如我们用 5 个特征来预测房价,它们是


  1. 房间面积

  2. 房间个数

  3. 卧室个数

  4. 周边好学校个数

  5. 周边犯罪率


但仔细一看,这 5 个特征可以抽象成 2 个,前三个都在讨论「尺寸」而后两个都在讨论「环境」。那么是否可以把这 5 维特征降到 2 维特征呢?



3


5 维数据太难可视化,人还是最容易可视化 2 维数据。



给定 2 维数据,如果向两条线上做投影,应该选择投影后数据分得更开的那条线。试想假如接下来做分类是不是更容易些?


将这 2 维特征实例化为房间面积房间个数,它们通常成正比关系。假设我们找到一条向上的直线,将这 2 维特征投影到该直线上,如下图。



特征房间面积房间个数有些重复了,因此把它们降到 1 维也没有丢失太多信息,如下图。




4


场景有了,直觉也有了,那么我们该看看 PCA 背后的数学原理了。其实非常简单,你只用知道均值方差协方差这三个基本统计概念就行了。原谅我这次必须要带点公式,但我相信现在小孩应该能懂。


均值


均值不要太简单,自己看图,我不解释了行吗?


方差


方差的概念稍微难些。方差是衡量数据和其均值的偏离程度。如上图上半部分,两组数据的均值都为 0 ,而第二组数据的方差 (50/3) 大于第一组数据的方差 (2/3),因此第二组数据更加分散些。 


同理,看上图下半部分,数据投影到 x 轴上的方差大于数据投影到 y 轴上的方差


最后给出计算 N 个数据的方差极简公式 (将每个数据的值减去其均值,平方后再求平均)


    X 方差 = 加总(Xi - 均值)2 / N

    Y 方差 = 加总(Yi - 均值)2 / N



接着来看两组数据,它们具有相同的方差 (投影到 x 轴和 y 轴),但是这两组数据的模式非常不同,一个趋势向下,一个趋势向上。


这样看来,光靠方差是不能准确描述不同的数据模式了,是时候该介绍协方差了。


协方差


首先给出计算 N 个数据的协方差极简公式 (将数据 X 值和 Y 值相乘,再求平均)


    协方差 = 加总(Xi × Yi) / N


这样当


  • 协方差 > 0, 趋势向上,X 和 Y 正相关

  • 协方差 < 0, 趋势向下,X 和 Y 负相关

  • 协方差  0, 无明显趋势,X 和 Y 不相关


最后把所计算的均值方差协方差汇总成协方差矩阵。


协方差矩阵


对于 2 维数据,它的协方差矩阵是 2×2 的对称矩阵。类比一下,


  • 对于 5 维数据,它的协方差矩阵是 5×5 的对称矩阵。

  • 对于 D 维数据,它的协方差矩阵是 D×D 的对称矩阵。


根据上面数据模式,我们计算出来他的协方差矩阵为


    [ 94

      4, 3 ]


我们发现,


  • 数据在 x 轴上的方差 9 大于数据在 y 轴上的方差 3,合理!

  • X 和 Y 正相关,协方差为 4,合理!



5



我们知道矩阵其实就是线性转换,那么

    矩阵 × 向量 1 = 向量 2


就是把向量 1 线性转换向量 2


不懂?没关系,跟着上图,试着用矩阵 [9, 4; 4, 3] 来转换几个标准点


  • (0, 0) → (0, 0)

  • (1, 0) → (9, 4)

  • (0, 1) → (4, 3)

  • (-1, 0) → (-9, -4)

  • (0, -1) → (-4, -3)


那么圆形被该矩阵转换成向上的椭圆形



6


在以上线性转换中,有两个非常重要的向量,它们方向不变,长度改变。这样的向量称为特征向量,对应向量的长度称为特征值。如下图所示。



红色和青色向量特征向量,它们方向不变。而黄色向量不是特征向量,它们方向变了



求特征向量和特征值的方法就不细说了,就是解一个方程


    矩阵 × 向量常数 × 向量


你看,等式左边是用矩阵相乘将做了线性转化,而等式右边是常数相乘将向量做了放缩 (没改变的方向哦)。



7


讲完特征向量和特征值后,我们可以介绍 PCA 的操作了,一句话,PCA 将数据投影到特征向量 (主成分) 上,而特征值代表数据投影后的方差大小。



因此降维操作可是看成是选择特征值比较大的几个主成分作为特征。如上图,我们只保留了第一个主成分 (特征值 11),而去除了第二个主成分 (特征值 1)。


这样 2 维数据就变成了 1 维数据。因此第二个主成分的特征值 1 比第一个主成分特征值 11 小很多,那么将其去除不会丢失太多信息的。 从下面两图也可以看出。




总结



回到开始的场景,来总结一下 PCA 的完整操作。


  1. 一开始我们有 5 维特征,分别是房间面积房间个数卧室个数周边好学校个数周边犯罪率


  2. 这 5 维特征可以体现在一个 5D 图中,虽然我们无法精准的把它画出来。


  3. 计算协方差矩阵,5 维特征得到 5×5 的对称矩阵。


  4. 求出特征向量特征值,将特征值从大到小排序,去除明显比较小 (这个需要点主观判断) 的,假设去除了后三个,保留了前两个。


  5. 这 2 维特征可以体现在一个 2D 图中,我们人类终于可以可视化它了。


  6. 当然原来「5 维特征的数据表」缩减成了「2 维特征的数据表」,希望这 2 维体现的是抽象的尺寸特征环境特征,就像开头那张图一样。



觉得好就帮我传播这个看不懂算我输系列咯,谢谢大家!

登录查看更多
4

相关内容

【实用书】Python数据科学从零开始,330页pdf
专知会员服务
139+阅读 · 2020年5月19日
机器学习速查手册,135页pdf
专知会员服务
336+阅读 · 2020年3月15日
《可解释的机器学习-interpretable-ml》238页pdf
专知会员服务
195+阅读 · 2020年2月24日
【经典书】精通机器学习特征工程,中文版,178页pdf
专知会员服务
347+阅读 · 2020年2月15日
知识神经元网络 KNN(简介),12页pdf
专知会员服务
13+阅读 · 2019年12月25日
【机器学习课程】机器学习中的常识性问题
专知会员服务
72+阅读 · 2019年12月2日
一步步教你轻松学主成分分析PCA降维算法
图解机器学习的常见算法
机器学习算法与Python学习
5+阅读 · 2018年4月2日
机器学习(30)之线性判别分析(LDA)原理详解
机器学习算法与Python学习
11+阅读 · 2017年12月6日
机器学习(28)【降维】之sklearn中PCA库讲解与实战
机器学习算法与Python学习
8+阅读 · 2017年11月27日
图解机器学习
深度学习世界
3+阅读 · 2017年11月24日
机器学习(27)【降维】之主成分分析(PCA)详解
机器学习算法与Python学习
9+阅读 · 2017年11月22日
【直观详解】什么是PCA、SVD
机器学习研究会
4+阅读 · 2017年11月10日
PCA的基本数学原理
算法与数学之美
11+阅读 · 2017年8月8日
Arxiv
10+阅读 · 2018年3月22日
Arxiv
3+阅读 · 2018年1月10日
VIP会员
相关VIP内容
【实用书】Python数据科学从零开始,330页pdf
专知会员服务
139+阅读 · 2020年5月19日
机器学习速查手册,135页pdf
专知会员服务
336+阅读 · 2020年3月15日
《可解释的机器学习-interpretable-ml》238页pdf
专知会员服务
195+阅读 · 2020年2月24日
【经典书】精通机器学习特征工程,中文版,178页pdf
专知会员服务
347+阅读 · 2020年2月15日
知识神经元网络 KNN(简介),12页pdf
专知会员服务
13+阅读 · 2019年12月25日
【机器学习课程】机器学习中的常识性问题
专知会员服务
72+阅读 · 2019年12月2日
相关资讯
一步步教你轻松学主成分分析PCA降维算法
图解机器学习的常见算法
机器学习算法与Python学习
5+阅读 · 2018年4月2日
机器学习(30)之线性判别分析(LDA)原理详解
机器学习算法与Python学习
11+阅读 · 2017年12月6日
机器学习(28)【降维】之sklearn中PCA库讲解与实战
机器学习算法与Python学习
8+阅读 · 2017年11月27日
图解机器学习
深度学习世界
3+阅读 · 2017年11月24日
机器学习(27)【降维】之主成分分析(PCA)详解
机器学习算法与Python学习
9+阅读 · 2017年11月22日
【直观详解】什么是PCA、SVD
机器学习研究会
4+阅读 · 2017年11月10日
PCA的基本数学原理
算法与数学之美
11+阅读 · 2017年8月8日
Top
微信扫码咨询专知VIP会员