Coursera 机器学习 第8章(下) Dimensionality Reduction 学习笔记

摘要:
问题:BD8.4 PrincipalComponentAnalysis8.4.1 PrincipalComponent AnalysisProblemFormulationPCA的正式描述:一种无监督学习算法,将n维数据投影到由k个正交向量组成的线性空间(k维)中,并要求最小化投影误差的平方。PCA测量正交距离,而线性回归是实际值y=g和对应于所有x点的估计值f之间的垂直距离。进行特征归一化和均值归一化。协方差均值满足对称正定。其中svd表示奇异值分解,比eig更稳定。问题:D8.5应用PCA5.5.1从压缩表示重建将压缩的低纬度数据恢复到原始高维的方法:重建。PCA用于监督学习的加速。

8 Dimensionality Reduction
8.3 Motivation
8.3.1 Motivation I: Data Compression
第二种无监督问题:维数约简(Dimensionality Reduction)。
通过维数约简可以实现数据压缩(Data Compression),数据压缩可以减少计算机内存使用,加快算法运算速度。
什么是维数约简:降维。若数据库X是属于n维空间的,通过特征提取或者特征选择的方法,将原空间的维数降至m维,要求n远大于m,满足:m维空间的特性能反映原空间数据的特征,这个过程称之为维数约简。
做道题:

Coursera 机器学习 第8章(下) Dimensionality Reduction 学习笔记第1张
C

8.3.2 Motivation II: Visualization
数据降维可以可视化数据,使得数据便于观察。
做道题:

Coursera 机器学习 第8章(下) Dimensionality Reduction 学习笔记第2张
BD

8.4 Principal Component Analysis
8.4.1 Principal Component Analysis Problem Formulation
PCA的正式描述:将n维数据投影至由k个正交向量组成的线性空间(k维)并要求最小化投影误差(投影前后的点的距离)(Projection Error)的平方的一种无监督学习算法。

进行PCA之前,先进行均值归一化和特征规范化,使得数据在可比较的范围内。

Coursera 机器学习 第8章(下) Dimensionality Reduction 学习笔记第3张

PCA和线性回归之间的关系。PCA不是线性回归。左图是线性回归,右图是PCA。几点不同:
1.最小化的目标不同。PCA衡量的是orthogonal distance, 而linear regression是所有x点对应的真实值y=g(x)与估计值f(x)之间的vertical distance距离。图中蓝线部分为各自最小化目标。
2.PCA中为的是寻找一个surface,将各feature{x1,x2,...,xn}投影到这个surface后使得各点间variance最大(跟y没有关系,是寻找最能够表现这些feature的一个平面);而Linear Regression是给出{x1,x2,...,xn},希望根据x去预测y。

Coursera 机器学习 第8章(下) Dimensionality Reduction 学习笔记第4张

8.4.2 Principal Component Analysis Algorithm
PCA的算法描述,如何将n维数据降至k维:
1.数据预处理。进行特征规范化(feature scaling)和均值归一化(mean normalization)。

均值归一化(mean normalization):对于某一特征j,求j特征下m个样本的均值uj=(Σm Xj(i)/m)/m,Xj(i)表示第i个样本的第j维特征的value。将m个样本的任一个样本i的j特征分量替换为x(i)j-uj。显然这时被替换掉的特征的均值为0。

特征缩放(feature scaling):当特征量的范围跨度很大时使用。x(i)j=(x(i)j-uj)/sj。sj可以是最大值-最小值或者是特征j的标准差。

Coursera 机器学习 第8章(下) Dimensionality Reduction 学习笔记第5张
2. 计算协方差矩阵sigma。对于整个数据集X,sigma=(1/m)*XT*X。X是m*n规模。

3.1 如何寻找这个surface?

3.1.1 计算协方差矩阵的特征向量(eigenvectors)U。[U,S,V]=svd(sigma)。协方差均值满足对称正定(symmetric positive definite)。sigma和U的规模是n*n。其中,svd表示奇异值分解(singular value decomposition),比eig要稳定。在matlab中有函数[U,S,V] = svd(A) 返回一个与A同大小的对角矩阵S(由A的特征值组成),两个正交矩阵(实数化的酉矩阵)U和V,且满足A= U*S*V'。若A为m×n阵,则U为m×m阵,V为n×n阵。奇异值在S的对角线上,非负且按降序排列。

3.1.2 取U矩阵的前k列,记为Ureduce(n*k维),Ureduce是个正交矩阵。选出这n个特征中最重要的k个,也就是选出特征值最大的k个。

3.2 给定surface,怎样求点到surface投影的value?

3.2.1 Z=X*Ureduce。其中Z是m*k维的;X是m*n维的;Ureduce是n*k维;任一列x(i)没有x0=1一项,是X中的一个实例。

U是n维向量空间的基底,Z是n维数据集X变换至k维空间后对应的k维数据集(维度减少,个数不变)。

这里有个关于PCA算法上述实现数学证明,注意其中维度的变化:http://www.360doc.com/content/13/1124/02/9482_331688889.shtml

Coursera 机器学习 第8章(下) Dimensionality Reduction 学习笔记第6张

也可以看下面的2个图,和上面讲的相同。

Coursera 机器学习 第8章(下) Dimensionality Reduction 学习笔记第7张

Coursera 机器学习 第8章(下) Dimensionality Reduction 学习笔记第8张

做道题:

Coursera 机器学习 第8章(下) Dimensionality Reduction 学习笔记第9张

D
 

8.5 Applying PCA
8.5.1 Reconstruction from Compressed Representation
将压缩后的低纬度数据还原成原始高维度的方法:重构(Reconstruction)。这里的还原只是近似还原。

具体而言:

1. Z=X*Ureduce,所以只要X*Ureduce*Ureduce-1=Z*Ureduce-1就可以还原了。

2. Ureduce正交矩阵,满足Ureduce-1=UreduceT

所以映射值Xapprox=X*Ureduce*Ureduce-1==Z*Ureduce-1==Z*UreduceT。这里Z是m*k维;Ureduce是n*k维。

做道题:

Coursera 机器学习 第8章(下) Dimensionality Reduction 学习笔记第10张


ABC

8.5.2 Choosing the Number of Principal Components
如何确定主成分的数量k。
理论上,不断尝试每个k=i(i≤n),计算下式(a):

Coursera 机器学习 第8章(下) Dimensionality Reduction 学习笔记第11张

由小到大,取第一个满足(a)式的k的值为主成成分的k。

注意:

1.(a)式的分母是数据的总变差(Total Varuation)。

2.(a)式的分子是x和其映射值之间的平均距离。

3.x(i)approx是还原以后的数据。

4.式子右侧的0.01是可变的,可以取0.05,0.1等,用来衡量保留多少主成成分的指标。取0.01,意思是当前k值下,保留了99%的差异性。也是平方投影误差的测量指标,是衡量是否对原始数据做了一个好的近似的标准。

由于实际中的特征量通常具有高度相关性,所以压缩后保留99%的差异性还是有可能的。

但实际上不需要依次尝试不同的k下的(a)式的值来决定是否采用k。

[U,S,V]=svd(Sigma)中得到的S是一个对角矩阵,这里可以证明(1)和(2)等价(也可以这么理解,Sii表示的是数据从n维映射到k维以后的数据在第i维的方差,也就是映射以后数据在第i维的离散程度。(1)和(2)表示的都是映射以后的数据还保留原数据特征的程度大小,(1)从数据分布的离散程度,(2)从数据的可恢复程度):

(1)Coursera 机器学习 第8章(下) Dimensionality Reduction 学习笔记第12张

(2)Coursera 机器学习 第8章(下) Dimensionality Reduction 学习笔记第13张

所以只要用(1)代替(2)嵌入到不同k的循环中就可以了。比如原来是求第一个满足(2)≤0.01的k值,那么就可以等价为第一个满足(1)≤0.01的k值。这样就简单很多。

Coursera 机器学习 第8章(下) Dimensionality Reduction 学习笔记第14张

做道题:

Coursera 机器学习 第8章(下) Dimensionality Reduction 学习笔记第15张

C

8.5.3 Advice for Applying PCA
PCA如何提高机器学习算法的速度并提供一些应用PCA的建议。
将PCA用于监督学习的加速。将训练集抽去对应标签y,对无标签的训练集运行PCA,可以得到映射关系。后期可以将这个关系用于交叉验证集和测试集,但不能用交叉验证集和测试集训练这个映射关系。

Coursera 机器学习 第8章(下) Dimensionality Reduction 学习笔记第16张

PCA的应用:数据压缩和可视化数据。

Coursera 机器学习 第8章(下) Dimensionality Reduction 学习笔记第17张

关于PCA的误用:

1.不能使用PCA来避免过拟合。如果要避免过拟合,还是要使用正则化技术。因为PCA实现时,不需要顾及样本的标签y,这意味着PCA丢弃了一些信息。PCA是在对数据标签毫不知情的情况下对数据进行降维。

2.不要盲目使用PCA。对于特定算法,可以先不使用PCA看一下运行效果,只有当算法收敛得非常慢,占用内存非常厉害,也就是x(i)的效果真的不好的时候,再考虑使用PCA。

做道题:

Coursera 机器学习 第8章(下) Dimensionality Reduction 学习笔记第18张

ABD

练习:

Coursera 机器学习 第8章(下) Dimensionality Reduction 学习笔记第19张

Coursera 机器学习 第8章(下) Dimensionality Reduction 学习笔记第20张

Coursera 机器学习 第8章(下) Dimensionality Reduction 学习笔记第21张

Coursera 机器学习 第8章(下) Dimensionality Reduction 学习笔记第22张

Coursera 机器学习 第8章(下) Dimensionality Reduction 学习笔记第23张

AB

Coursera 机器学习 第8章(下) Dimensionality Reduction 学习笔记第24张

B

Coursera 机器学习 第8章(下) Dimensionality Reduction 学习笔记第25张

C

Coursera 机器学习 第8章(下) Dimensionality Reduction 学习笔记第26张

BD

Coursera 机器学习 第8章(下) Dimensionality Reduction 学习笔记第27张

AB

免责声明:文章转载自《Coursera 机器学习 第8章(下) Dimensionality Reduction 学习笔记》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇使用异步I/O大大提高应用程序的性能扫雷思想及主函数下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【转】R语言主成分分析(PCA)

https://www.cnblogs.com/jin-liang/p/9064020.html 数据的导入 > data=read.csv('F:/R语言工作空间/pca/data.csv') #数据的导入 > > ls(data) #ls()函数列出所有变量 [1] "X" "不良贷款率" "存贷款比率" "存款增长率" "贷款增长率...

吴裕雄 python 机器学习——模型选择参数优化随机搜索寻优RandomizedSearchCV模型

import scipy from sklearn.datasets import load_digits from sklearn.metrics import classification_report from sklearn.linear_model import LogisticRegression from sklearn.model_sel...

热点 | 四月最佳Github项目库与最有趣Reddit热点讨论

来源:Analytics Vidhya 编译:磐石 【磐创AI导读】:Github是全球最大的开源代码社区,Reddit是最受大家欢迎的热点讨论交流平台。接下来磐创AI将为大家带来四月份Github最佳项目库介绍与Reddit热点评论一览。 目录 介绍 Github月度最佳项目库 Reddit热点讨论 介绍 对于数据科学和机器学习,GitHub和Reddi...

机器学习(二十一)— 特征工程、特征选择、归一化方法

  特征工程:特征选择,特征表达和特征预处理。 1、特征选择   特征选择也被称为变量选择和属性选择,它能够自动地选择数据中目标问题最为相关的属性。是在模型构建时中选择相关特征子集的过程。   特征选择与降维不同。虽说这两种方法都是要减少数据集中的特征数量,但降维相当于对所有特征进行了重新组合,而特征选择仅仅是保留或丢弃某些特征,而不改变特征本身。 降维常...

AlexNet详解3

Reference. Krizhevsky A, Sutskever I, Hinton G E. ImageNet Classification with Deep Convolutional Neural Networks [J]. Advances in Neural Information Processing Systems, 2012, 25(...

NVIDIA深度学习Tensor Core性能解析(上)

NVIDIA深度学习Tensor Core性能解析(上) 本篇将通过多项测试来考验Volta架构,利用各种深度学习框架来了解Tensor Core的性能。 很多时候,深度学习这样的新领域会让人难以理解。从框架到模型,再到API和库,AI硬件的许多部分都是高度定制化的,因而被行业接受的公开基准测试工具很少也就不足为奇。随着ImageNet和一些衍生模型(Al...