主成分分析(PCA)模型

经过两天的挣扎,在浅薄的线性代数知识基础上,尝试着理解了一下主成分分析法。

一 算法流程

求样本x(i)的n'的主成分其实是求样本集的协方差矩阵 XXT 的前n'个特征值对应特征向量矩阵W,然后对于每个样本x(i)做如下变换 z(i)=WTx(i) ,即达到降维的PCA目的。

具体算法流程:
输入:n维样本集D=(x(1),x(2),...,x(m)), 要降维到维数n’。
输出:降维后的样本集D’
(即从mxn变为mxn')

1)对所有的样本进行中心化。
2)计算样本的协方差矩阵XTX
3)对矩阵XXT进行特征值分解
4)取出最大值n'个特征值对应的特征向量(w1,w2,...,wn'),将所有的特征向量标准化后,组成特征向量矩阵矩阵W。
5)对样本集中的每一个样本x(i),转化为新的样本z(i)=WTx(i)
6)得到输出样本D’ = (z(1),z(2),...,z(m)

有时候,我们不指定降维后n'的值,而是换种方式,制定一个降维到主成分比重阈值t。这个t在(0,1]之间。加入我们有n个特征值λ1>=λ2>=...>=λn,则n'可以通过下式得到:

主成分分析(PCA)原理总结——刘建平Pinard

二 个人的理解

[18.11.23更新]PCA和LDA都是对数据进行降维,其中PCA是无监督的,LDA是有监督的。所以PCA是不考虑类别的,只用特征信息,而LDA要考虑类别,他们之间降维的差异于是有了这个图:

我理解,PCA是采用了投影最小的方法,在图中表现出来就是点与投影点之间的距离和最小,那保留最多的原始信息怎么理解呢?那就是我们去掉某一个“方向”(这是一个抽象的“方向”,或者说朝超平面进行了投影),两个点之间的“距离”保持没变。而LDA因为有了“标签”的限制,其投影的方式产生了变化,所以他的选择的是分类最好的方向。

1.对样本进行中心化的原因

1.1 做中心化的意义

原始数据 中心化数据 标准化数据

中心化其实是一个平移的过程,平移后所有数据的中心是(0,0)

在PCA中,中心化后的数据有助于后续在求协方差的步骤中减少计算量,同时中心化后的数据才能比较好地“概括”原来的数据(如下图)。

其实,中心化及标准化在不同的应用场景都有不同的意义——比如在训练神经网络的过程中,通过将数据标准化,能够加速权重参数的收敛。

数据什么时候需要做中心化和标准化处理?——知乎

1.2 做中心化的方法


即 样本的每一个维度的数值减去该维度所有样本的均值(通过均值的意义或者画图很容易理解)。

2.选用协方差的原因

2.1协方差的定义

1)协方差的定义

X,Y是两个随机变量,X,Y的协方差cov(X,Y)定义为:

其中:E(X) = μx、E(Y) = μy

2)协方差矩阵的定义
按照一般标准,即每一行的表示一个样本,每一列表示相应的维度。

协方差矩阵为:

注:协方差矩阵的维度等于样本的维度数(随机变量的个数)。至于这里为什么是m-1,我相信与概率论中求样本方差的时候所谓无偏估计和有偏估计有关吧(为什么样本方差(sample variance)的分母是 n-1?——知乎 然而我又不会,真是惨兮兮)

例子(协方差矩阵计算方法——GodStephen) 我发现博主在计算的过程中其实就就进行了我们所谓的中心化。

2.2 协方差在这里的图形化意义

我们选取协方差的特征向量,一句话概括就是找到方差在该方向上投影最大的那些方向。

我们在应用PCA的时候,都默认数据符合高斯分布(即正态分布:期望为 μ,方差为σ^2 的正态分布,记为N(μ,σ^2)——然而我还是不懂,概率论不会真的惨兮兮x2),所以能产生下图

嗯,没错,这是由图左边的矩阵作为协方差矩阵产生的高斯分布样本,当我们做出一个椭圆过后,可以很轻易地猜想,若从二维降低到一维,那么一定选择黑色的长轴作为投影空间,然后,惊讶地发现这个长轴就是最大特征值对应的特征向量(0.707,0.707)。所以我从直观上接受了做协方差的特征向量作为投影空间。

2.3 协方差在这里的一种理论推导

如何通俗易懂地讲解什么是 PCA 主成分分析?——知乎

距离

我们一般有两种常用的距离:欧氏距离和余弦距离。

欧氏距离,即使直线距离,可以在我们向量中,可以通过勾股定理,或者点积来计算

余弦距离:表示关系的距离。即两个向量的夹角,可以通过点积和模长计算。

注意:在余弦距离之中,我们要将向量定义为有正有负的状态,否则会出现距离明显不同但计算结果相同的情况,如

协方差和相关系数

因为一开始我们已经对数据做了中心化,所以可以有如下表示:

我们知道,样本方差的公式是:
若通过向量表示即为:
所以方差的形式其实非常类似于欧式距离。

同样,我们知道协方差公式:

同样,通过向量可以表示为:
这岂不就是点积的形式咯,即余弦距离。

具体的推导和理解参考下面的链接。
【蒟蒻还需要增加对知识的原始积累才能在数学层面上理解啊
如何理解协方差、相关系数和点积?——马同学

3.特征值和对应特征向量的意义

特征值和特征向量有非常深的现实内涵。

1.3Blue1Brown中的理解

在3Blue1Brown中,将方阵作为对基的一种线性变换。(将以二阶行列式为例)

i-hat和j-hat是向量空间的一组基。

比如
表示我们常用的基本坐标系
这个方阵表示的是没有经过任何变换的坐标系,第一列为i-hat,第二列为j-hat。

当我们的方阵不是I方阵时,相当于我们对坐标系进行了旋转和剪切。

绿色(向右)为i-hat,红色为j-hat,蓝色线条为变换后的新坐标系,白色为原坐标系
可以轻易看出,i-hat拉伸了三倍/移动到了(3,0),j-hat移动到了(1,2)。

当我们对一个向量做这个矩阵乘法时,就相当于是对向量随这个矩阵表示的线性变换变化,输出就是经过此变化后的向量在原坐标系中的坐标。

紫色的两个箭头即是特征向量的方向
当我们对该矩阵求解在matlab中求解eig时,可以知道,特征值为2的特征向量为[-1,1]T,特征值为3的特征向量为[1,0]T

其实从我们刚才做出的乘法可以看到,方向在[-1,1]T的向量经过线性变换后向量的方向并没有变,只是相对大小有了变化。所以,我们可以猜想:

※特征向量即为经过线性变换后方向没有变化的向量,特征值即为向量变化后的倍数。

其实3b1b中有线性代数篇有很多有意思的理解,比如基变换等,挖坑。

【官方双语/合集】线性代数的本质 - 系列合集(14p)

2.知乎的理解

总的来说,矩阵相乘就是对点(用向量的终点表示整个向量)进行拉扯。

※特征值是运动的速度,特征向量是运动的方向。

我尝试了一下,矩阵A为[3,0;2,1],此方阵的特征值为1的特征向量为[0,1]T(橙色),特征值为3的特征向量为[0.7071,0.7071]T(蓝色)
方向向量为[0.5,-0.2]T,在下图中即为橙色的点。

本图做了四次矩阵乘法,描点做出了如图所示。可能在图中并不是靠近特征向量并不是特别明显,不过我将贴出8次的数据,能明显看出,与特征值差距越来越小。
p1=[0.5;-0.2] ; p2=[1.5;0.8]; p3=[4.5,3.8]; p4=[13.5,12.8];
p5=[40.5;39.8]; p6=[121.5;120.8]; p7=[364.5;363.8]; p8=[1093.5;1092.8];

因为这个矩阵比较特殊,所以我又做了一个特征值相近的矩阵。
矩阵A为[2.5 0.5;0.5 2.5],此方阵的特征值为2的特征向量为[-0.7071,0.7071]T,特征值为3的特征向量为[0.7071,0.7071]T
方向向量为[1,0]T

可以看得出来,随着矩阵相乘,方向向量始终向特征值较大的方向靠拢,但是由于两个特征值相近,所以之间“拉扯”现象。

A = [2.5,0.5;0.5 2.5];

x = (-50:50);
y = (-50:50);
plot(x,y);
grid on;
hold on;
y = (50:-1:-50);
plot(x,y);
hold on;
t = [1,0]';
for i = 1:5
    plot(t(1,1),t(2,1),'*');
    t = A*t
end

补1.投影

补2.奇异分解

U和V为一组规范正交基,表示A矩阵的作用是将一个向量从U这组正交基向量的空间旋转到V这组正交基向量空间,并对每个方向进行了一定的缩放,缩放因子就是各个奇异值。如果V的维度比U哒,则表示还进行了投影。可以说奇异值分解就是将一个矩阵原本混在一起的三种效果分解出来。

矩阵的奇异值与特征值有什么相似之处与区别之处?——知乎

奇异分解是对特征值分解的一种拓展。特征值倾向于找到一个方向,使得线性变换对这个方向的向量仅起到长度的变化;奇异分解则是希望找到一组标准正交基,使得线性变换作用在这组基之后能够得到正交的新基——当然这组基不一定是标准的,(二维)在标准基选择360度后,新基能做出一个椭圆,其中奇异值就是分别是长半轴和短半轴的长度。

eigshow, week 3中第一个图,绿色的表示我们原始的基,蓝色的分别表示矩阵A作用在x方向和y方向上向量的效果,当我们对绿色进行旋转的时候,蓝色会对应开始旋转,当绿色旋转到某一角度的时候,蓝色正交,此时绿色即为我们想要的那一组。我只能暂时理解为矩阵将向量从绿色的正交基变换到蓝色的正交基后的结果。

补3.正定矩阵

补4.KPCA


理解KPCA其实只需要理解核函数就行了(同理SVM),因为它不过是对点进行了升维操作。

降维or分类其实是一个优化问题,恰好在损失函数中出现了xxT的形式,记住这个形式。

在部分分类情况中,发现如果用线性的切分(对超平面做了线性的限制),没有办法很好的进行分类,于是就提出来,将原来的点x(n维),通过函数φ,映射为x‘(m维),通过增加维度,让线性切分能够适用。

这样就造成了一个问题:维度的扩大会导致计算量的增加。

在观察损失函数后,我们发现其实升维之后,不过是xxT变为了φ(x)φ(xT),这个内积的形式仍然存在,于是就有聪明人想:既然我们对升维之后的点的操作是固定的(即都是内积操作),那我们是否能找到一个函数,使得其内积操作的结果有一个很好的性质,能够跳过升维操作(即极端的说法为:φ(x)φ(xT)=2*xxT)。

还真有人发现了一些函数具有如此的性质,我们就站在巨人的肩膀上,把这些能够跳过升维计算量,但是确实对点进行了升维操作的函数叫做核函数。

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

推荐阅读更多精彩内容