7.2 PCA-机器学习笔记-斯坦福吴恩达教授
PCA(主成分分析)
PCA,Principle Component Analysis,即主成分分析法,是特征降维的最常用手段。顾名思义,PCA 能从冗余特征中提取主要成分,在不太损失模型质量的情况下,提升了模型训练速度。
如上图所示,我们将样本到红色向量的距离称作是投影误差(Projection Error)。以二维投影到一维为例,PCA 就是要找寻一条直线,使得各个特征的投影误差足够小,这样才能尽可能的保留原特征具有的信息。
假设我们要将特征从 nnn 维度降到 kkk 维:PCA 首先找寻 kkk 个 nnn 维向量,然后将特征投影到这些向量构成的 kkk 维空间,并保证投影误差足够小。下图中中,为了将特征维度从三维降低到二位,PCA 就会先找寻两个三维向量 u(1)u^{(1)}u(1),u(2)u^{(2)}u(2) ,二者构成了一个二维平面,然后将原来的三维特征投影到该二维平面上:
算法流程
假定我们需要将特征维度从 nnn 维降到 kkk 维。则 PCA 的执行流程如下:
特征标准化,平衡各个特征尺度:
xj(i)=xj(i)−μjsj,μj为特征j的均值,sj为特征j的标准差。x^{(i)}_j=\frac{x^{(i)}_j−μ_j}{sj},\ μ_j 为特征\ j\ 的均值,s_j\ 为特征\ j\ 的标准差。xj(i)=sjxj(i)−μj, μj为特征 j 的均值,sj 为特征 j 的标准差。计算协方差矩阵 ΣΣΣ :
Σ=1m∑i=1m(x(i))(x(i))T=1m⋅XTX\Sigma = \frac 1m \sum_{i=1}^m(x^{(i)})(x^{(i)})^T =\frac1m\cdot X^TX Σ=m1i=1∑m(x(i))(x(i))T=m1⋅XTX通过奇异值分解(SVD),求取 ΣΣΣ 的特征向量(eigenvectors):
(U,S,VT)=SVD(Σ)(U,S,V^T)=SVD(\Sigma)(U,S,VT)=SVD(Σ)从 UUU 中取出前 kkk 个左奇异向量,构成一个约减矩阵 UreduceUreduceUreduce :
Ureduce=(u(1),u(2),⋯,u(k))U_{reduce}=(u^{(1)},u^{(2)},⋯,u^{(k)})Ureduce=(u(1),u(2),⋯,u(k))计算新的特征向量: z(i)z^{(i)}z(i)
z(i)=UreduceT⋅x(i)z^{(i)}=U^T_{reduce}⋅x^{(i)}z(i)=UreduceT⋅x(i)
特征还原
因为PCA仅保留了特征的主成分,所以PCA是一种有损的压缩方式,假定我们获得新特征向量为:
z=UreduceTxz=U^T_{reduce}xz=UreduceTx
那么,还原后的特征 xapproxx_{approx}xapprox 为:
xapprox=Ureducezx_{approx}=U_{reduce}zxapprox=Ureducez
降到多少维才合适?
从 PCA 的执行流程中,我们知道,需要为 PCA 指定目的维度 kkk 。如果降维不多,则性能提升不大;如果目标维度太小,则又丢失了许多信息。通常,使用如下的流程的来评估 kkk 值选取优异:
求各样本的投影均方误差:
min1m∑j=1m∣∣x(i)−xapprox(i)∣∣2\min \frac 1m \sum_{j=1}^m||x^{(i)}-x^{(i)}_{approx}||^2minm1j=1∑m∣∣x(i)−xapprox(i)∣∣2求数据的总变差:
1m∑j=1m∣∣x(i)∣∣2\frac 1m \sum_{j=1}^m||x^{(i)}||^2m1j=1∑m∣∣x(i)∣∣2评估下式是否成立:
min1m∑j=1m∣∣x(i)−xapprox(i)∣∣21m∑j=1m∣∣x(i)∣∣2≤ϵ\frac {\min \frac 1m \sum_{j=1}^m||x^{(i)}-x^{(i)}_{approx}||^2} {\frac 1m \sum_{j=1}^m||x^{(i)}||^2} ≤ϵm1∑j=1m∣∣x(i)∣∣2minm1∑j=1m∣∣x(i)−xapprox(i)∣∣2≤ϵ
其中, ϵϵϵ 的取值可以为 0.01,0.05,0.10,⋯0.01,0.05,0.10,⋯0.01,0.05,0.10,⋯0.01,0.05,0.10,⋯0.01,0.05,0.10,⋯0.01,0.05,0.10,⋯ ,假设 ϵ=0.01=0.01ϵ=0.01=0.01ϵ=0.01=0.01 ,我们就说“特征间 99% 的差异性得到保留”。
不要提前优化
由于 PCA 减小了特征维度,因而也有可能带来过拟合的问题。PCA 不是必须的,在机器学习中,一定谨记不要提前优化,只有当算法运行效率不尽如如人意时,再考虑使用 PCA 或者其他特征降维手段来提升训练速度。
不只是加速学习
降低特征维度不只能加速模型的训练速度,还能帮我们在低维空间分析数据,例如,一个在三维空间完成的聚类问题,我们可以通过 PCA 将特征降低到二维平面进行可视化分析。
例如下表中,我们有将近几十个特征来描述国家的经济水平,但是你仔细观察发现,我们很难直观的看出各个国家的经济差异。
借助于 PCA,我们将特征降低到了二维,并在二维空间进行观察,很清楚的就能发现美国和新加坡具有很高的经济水平:
参考资料
- 强大的矩阵奇异值分解(SVD)及其应用
7.2 PCA-机器学习笔记-斯坦福吴恩达教授相关推荐
- 4.4 机器学习系统设计--垃圾邮件分类-机器学习笔记-斯坦福吴恩达教授
机器学习系统设计–垃圾邮件分类 假定我们现有一封邮件,其内容如下: From: cheapsales@buystufffromme.com To: ang@cs.stanford.edu Subjec ...
- 7.5 程序示例--PCA for 数据可视化-机器学习笔记-斯坦福吴恩达教授
程序示例–PCA for 数据可视化 我们有一张小鸟的图片,这是一个三通道彩色图像: 我们将图片的像素按颜色进行聚类,并在三维空间观察聚类成果: 似乎在三维空间可视化不是那么直观,借助于PCA,我们将 ...
- 7.4 程序示例--PCA for 加速学习-机器学习笔记-斯坦福吴恩达教授
程序示例–PCA for 加速学习 现在,我们手上有一个人脸数据集,每张图片大小为 32×32 ,以像素为特征,则每个特征向量的维度就为 1024 维: 考虑使用 PCA 进行降低特征维度到 100 ...
- 7.3 程序示例--PCA 模型-机器学习笔记-斯坦福吴恩达教授
程序示例–PCA 模型 # coding: utf8 # pca/pca.pyimport numpy as npdef normalize(X):"""数据标准化处理A ...
- 3.12 程序示例--多分类问题-机器学习笔记-斯坦福吴恩达教授
多分类问题 我们手上包含有手写字符的数据集,该数据集来自斯坦福机器学习的课后作业,每个字符图片大小为 20×20 ,总的样本规模为 5000×400 , 我们的神经网络设计如下,包含 1 个隐含层,隐 ...
- 10.1 掌握大数据-机器学习笔记-斯坦福吴恩达教授
掌握大数据 在算法分析与优化一节中,我们就提到,在机器学习界流传着这样一句话: It's not who has the best algorithm that wins. It's who has ...
- 9.1 基于内容的推荐系统-机器学习笔记-斯坦福吴恩达教授
基于内容的推荐系统 推荐系统是机器学习最重要的应用之一,你所知道的淘宝.亚马逊.facebook.豆瓣这些网站都把推荐系统作为了核心.在某个电影资讯的网站,有那么一份用户对于电影的打分(1 - 5 分 ...
- 8.1 概述-机器学习笔记-斯坦福吴恩达教授
概述 异常检测(Anomaly Detection)是机器学习里面的一个常见应用,机器通过训练,将知道什么样的样本是正常样本,从而具备识别异常样本的能力. 飞机制造商在飞机引擎从生产线上流入市场前,会 ...
- 6.6 二分 K-Means 算法-机器学习笔记-斯坦福吴恩达教授
二分 K-Means 算法 该算法补充自 <机器学习实战> 一书 常规的 K-Means 算法的误差通常只能收敛到局部最小,在此,引入一种称为二分 K-Means(bisecting km ...
- 6.3 优化-机器学习笔记-斯坦福吴恩达教授
优化 和其他机器学习算法一样,K-Means 也要评估并且最小化聚类代价,在引入 K-Means 的代价函数之前,先引入如下定义: μc(i)=样本x(i)被分配到的聚类中心μ^{(i)}_c=样本\ ...
最新文章
- i春秋30强挑战赛pwn解题过程
- 罗斯蒙特电磁流量计8723说明书_罗斯蒙特8732EM电磁流量计变送器如何接线!
- 浅谈代码的执行效率(2):编译器的威力
- Java 洛谷 P1219 八皇后
- 教你自己制作Vista与DOS双系统
- 活跃用户数怎么计算_【数据运营】|如何做好活跃用户的运营?
- 百度人脸识别 人脸识别模型_当我说人脸识别很容易时,他们笑了。 但是可以。...
- oracle 触发器写法|oracle trigger 语法
- Java IO之File
- 接收二进制数据_漫话TCP/IP:数据链路层-以太网(1)
- OpenGL中的坐标变换、矩阵变换【转载】
- 香农编码的gui编码_编码香农编码
- python多行注释快捷键
- dependency
- 带遮挡效果的轮廓线(描边)在3D实时渲染中的一种实现
- 豌豆荚搜索手机中的游戏app形成列表的原理
- GBF ASIA亚太电池展
- cocos获取图片像素
- 虚拟机字符界面大小调整
- 我的世界游侠联机教程