降维与PCA算法

前言

在之前的学习中,已经学习了无监督学习中的K均值算法。除此算法之外,无监督学习还有另外一种新的算法,该算法被称之为降维。使用降维算法的目的之一就是实现数据压缩,数据压缩不仅可以对数据进行优化,减少算法对硬盘空间和内存的消耗,还可以减少算法运行所消耗的时间。

降维

数据压缩

降维,简而言之就是减少数据维度,对于一组数据,可能存在高度冗余的特征。例如同一物体的体积和质量,可以用二维矩阵表示物体的体积和质量特征,但是由于其密度一样,体积和质量特征重合,可以只选择体积或者质量一个特征来表示物体的大小,即也就是降维,将用来表示物体大小的二维矩阵转化为一维向量。
如下图所示的,可以用变量(x_1,x_2)表示某种事物,而变量(x_1,x_2)之间近似存在着线性关系,可以将二维变量(x_1,x_2)投影到一维变量z上,用变量z的位置表示变量(x_1,x_2)的位置,二维变量变为一维变量,减小了数据冗余,实现了数据压缩。

可视化

以上,讨论了降维在对于数据压缩方面的应用。而降维的另外一个作用就是实现数据可视化。对于一个超过三维的高维数据集,很难用图形或者图像化的方式描述这些数据,而通过降维,可以将高维数据转化为二维或者三维,以方便数据可视化的实现。例如,在描述一个国家发展水平方面可以有多项数据作为指标,包括GDP,人均GDP,人均寿命,人均收入,人均消费支出等,将这些指标构成的高维数据及进行可视化是很难实现的。通过降维算法,可以将以上指标化为国家发展指数和国家GDP两个指标,将高维数据集化为二维数据集,如此,对于二维数据集就很容易地实现了可视化操作。如下图所示:


主成分分析算法(PCA算法)

概述

降维实现中,最常用的算法就是主成分分析算法。如下图所示,假设有一个二维数据集需要通过降维算法实现为一维数据集,就像线性回归一样,需要找到一条二维数据集的回归直线,使得二维数据集的每一个点到这条直线的投影距离最小。



推而广之,PCA算法的主要实现思路如下所示:

{n}维数据降维形成k维数据时: 寻找{k}维向量{v_1,v_2,v_3 ……v_k}投影这些数据,并且使得投影误差最小。用线性代数解释就是将这些数据集投影到这{k}个向量展开的线性子空间上。如下图所示,三维数据降为二维向量。

注意,线性回归与PCA之间的区别,以二维数据集为例,线性回归是寻找一条拟合直线,根据输入,对输出做出预测,其点到回归直线的距离表示输入值与输出值之间的差值,这个差值所形成的直线一定与y轴平行,而PCA算法中,点到向量的距离是点与向量之间的正交距离。如下图所示:

PCA算法的主要实现过程如下所示:

  1. 特征缩放/均值标准化
    假设有m个数据构成的训练集x^{(1)},x^{(2)},……x^{(m)}
    则定义u_j=\frac{1}{m}\sum_{i=1}^{m}x_j^{(i)}
    则令 x_j = x_j-u_j
    通过以上特征缩放,能够将相差较大的特征值调整至相同的变化范围。
  2. 协方差矩阵(Covariance Matrix)
    n维数据降维至k维,计算每个特征的协方差矩阵,具体可由如下公式表示:
    A = \frac{1}{m}\sum_{i=1}^{m}(x^{(i)})(x^{(i)})^T
  3. 计算协方差矩阵A的特征向量
    协方差矩阵A总是一个正定矩阵,通过计算这个正定矩阵的特征向量,得到三个矩阵,如下所示:
    [U,S,V] = SVD(A)

SVD 即是线性代数中的奇异值分解算法。对于方阵A而言,方阵A = P*Q*P^{-1}表示,其中Q表示的是方阵A的特征向量。而对于不是方阵的矩阵A而言,没有特征向量,常用A = U*S*V表示矩阵A,其中U称作左奇异值,V称作右奇异值,而S表示奇异值。

  1. 得到降维后的矩阵
    通过以上计算,得到3个n*n的方阵,选取矩阵U的前k个向量,记作U_{k},该矩阵是一个n*k的矩阵,若降维后的矩阵用Z表示,则有:
    Z = U_{k}^T*x

U_{k}^T是一个k*n维的矩阵,而x是一个n*1的矩阵,最后得到的矩阵Z\in R^k

最后,通过以上步骤,实现了使用PCA算法的降维过程。

主成分数量选择

为了尽可能的减小k的值,即也就是主成分的数量,应该满足以下计算公式:

\frac{\frac{1}{m}\sum_{i=1}^{m}||x^{(i)}-x_{approx}^{(i)}||^{2}}{\frac{1}{m}\sum_{i=1}^{m}||x^{(i)}||^2} \le \ \ 0.01

其中x_{approx}^{(i)} 表示第i个数据的投影值。

压缩重现

通过PCA算法,可以实现数据降维,降维后的数据也可以通过PCA算法得到的参数映射得到原来的高维数据,如下所示:

x_{approx} = U_k*z
以上公式中,若||x^{(i)}-x_{approx}||^{2}越小,压缩重#

监督学习中使用PCA算法

以上,主要介绍了在无监督学习中是使用PCA算法。但是在实际应用中,有大量的监督学习算法涉及到高维数据,例如,计算机视觉中,经常涉及到图像处理问题。
监督学习中PCA算法的使用如下所示:
假设有数据为(x^{(1)},y^{(1)}),(x^{(2)},y^{(2)}),……(x^{(m)},y^{(m)})
其中,x \in R^{100}

  1. 以对训练集中的输入变量x进行无标签处理,即也就是当作无监督学习中的数据,不进行标签划分;

  2. 再使用PCA算法,得到一组新的数据集,得到降维后的数据z^{(1)},z^{(2)}……z^{(m)}

  3. 最后对新的数据集(z^{(1)},y^{(1)}),(z^{(2)},y^{(2)}),……(z^{(m)},y^{(m)})运行监督学习算法。

注意:只能对训练集使用PCA算法,而不能对交叉验证集和测试集使用。

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

推荐阅读更多精彩内容