PCA算法思想

本章涉及到的知识点清单:

1、矩阵的特征向量和特征值

2、如何求解矩阵的特征向量和特征值

3、方差、协方差和散度矩阵

4、PCA的算法步骤

5、将原始数据变为低维数据

6、将低维数据还原成原始数据

7、与sklearn中的PCA算法比较

一、矩阵的特征向量和特征值

数学上,一个线性变换可以由其特征值和特征向量来描述这个变换过程。我们用运动学的角度看待这两个概念,不妨将矩阵视为一个运动,研究这个运动最重要的显然就是运动的速度和方向

任意一组基中的两个向量v和Av

可以观察到,v向量左乘一个矩阵A后生成一个新向量Av,当v和Av在同一条直线上时,Av相对于v的长度发生了变化,但其方向保持不变。我们就称v是A的特征向量,而Av的长度是v的长度的λ倍,λ是一个标量,也就是特征值

从而,特征值与特征向量的方程定义为:

特征值与特征向量

上式的意义可以表述为:如果特征向量v被某个矩阵A左乘,那么它等价为某个标量λ乘以v。从运动的角度可以看出,特征值λ是标量,代表其运动的速度,而特征向量v是矢量,代表其运动的方向,二者组合出的运动行为就是一个线性变化

特征值越大,说明矩阵所对应的特征向量上的方差也就越大,信息量也就越多,所以整个PCA算法的核心就是求解矩阵的特征向量和特征值

二、如何求解矩阵的特征向量和特征值

在线性代数中,我们可以由特征值方程推导出如下形式来求解矩阵的特征值

特征值方程

其中I是单位矩阵,比如我们有一个如下2*2的矩阵A

案例矩阵A

带入A到特征值方程可以求解出特征值λ

求解特征值

可以看到有两个特征值,也就有两组特征向量,设特征向量为(x1,x2)

(i):将第一个特征值λ1=-1带入特征方程得

求解特征向量1

可以看到第一组特征向量是以任意基为底,满足x1=-x2的关系即可

(ii):将第二个特征值λ2=4带入特征方程得

求解特征向量2

可以看到第二组特征向量是以任意基为底,满足x1=1.5*x2的关系即可

综上(i)(ii):我们求解出了矩阵的特征向量和特征值,同时也可以看出特征向量所在方向上的向量都是特征向量(即任意基为底满足特征向量关系的向量)

三、方差、协方差和散度矩阵

在概率论和统计学中,方差是衡量源数据和期望值的离散程度,方差的定义为

方差的定义

可以看到方差是协方差的一种特殊情况,即变量是相同的情况。而当有两个变量时,协方差可以表示两个变量总体误差的期望,当两个变量变化趋势一致,即同时大于其自身的期望,则协方差就是正值;当其中一个变量大于自身期望而另一个变量小于自身期望,那么协方差就是负值

协方差的定义

PCA算法就是利用了得到目标数据的协方差矩阵后,求解其特征值和特征向量,而协方差矩阵和散度矩阵关系密切,因为它们的特征值和特征向量是一样的

散度矩阵的定义

从散度矩阵的定义也可以明显看出,散度矩阵和协方差的关系为

散度矩阵和协方差的关系

同时散度矩阵也是SVD奇异值分解的第一步,因此PCA和SVD是有很大的联系

四、PCA的算法步骤

1、去除原始数据的平均值

2、计算原始数据的散度矩阵

3、求解散度矩阵的特征向量和特征值

4、根据特征值的大小,从大到小排序特征向量

5、选取前K个特征向量

6、将原始数据转换到上述K个向量所构建的新空间中完成降维

五、将原始数据变为低维数据

假设我们有如下4个维度的原始数据,下面我们将数据降为1个维度来表示

原始数据
PCA降维算法

利用PCA的算法思想,最终可以得到

降到一维后的数据

可以看到原始数据已经从4维数据降成了1维数据,打印前后方差比可以看到

一维数据前后数据的方差比

变为1维数据后,方差总的损失非常小,也就是说降维后,源数据的重要信息基本保留。而当把数据降维到二维数据后方差比为

二维数据前后数据的方差比

同时可以看到,降低的维度越高,方差损失的越小

六、将低维数据还原成原始数据

我们还可以利用降维后的数据和算法保留的前K个特征向量以及原始数据的均值,反过来从降维数据求解出原始高维数据,这样可以更加直观的观察算法的实验效果

根据前K个特征向量还原原始数据
一维数据还原为原始数据
二维数据还原为原始数据

实验结果中,也可以得到降低的维度约低,方差损失的越多

七、与sklearn中的PCA算法比较

sklearn是机器学习领域中最知名的python模块之一,它已经封装了大量的机器学习方法,下面用同一份测试数据集,来实验我们一步步写的PCA算法和sklearn封装的PCA算法的差异

sklean的PCA算法
一维数据前后数据的方差比
二维数据前后数据的方差比

从实验结果上来看,sklearn封装的PCA算法与我们根据散度矩阵、特征值和特征向量写出来的PCA算法效果基本一致,同时也可证明PCA底层算法核心的正确性

PCA算法案例代码见:PCA算法思想

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,997评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,603评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,359评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,309评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,346评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,258评论 1 300
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,122评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,970评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,403评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,596评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,769评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,464评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,075评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,705评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,848评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,831评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,678评论 2 354

推荐阅读更多精彩内容