第09周:吴恩达 Andrew Ng 机器学习
14 降维(Dimensionality Reduction)
第二种类型的无监督学习问题叫降维
14.1 目标Ⅰ:数据压缩
使用降维的原因之一是数据压缩,数据压缩可以使数据占用较小的内存或硬盘空间,还能对学习算法进行加速。
降维:比如存在两个特征值x1,x2,它们分别代表不同单位的长度,一个英寸,一个厘米,虽然单位不同,但是所表示得意义是一样的,这样就可能导致数据冗余,所以我们想要做的是减少数据到一维,只有一个数测量这个长度。
将数据从二维降至一维: 假使我们要采用两种不同的仪器来测量一些东西的尺寸,其中一个仪器测量结果的单位是英寸,另一个仪器测量的结果是厘米,我们希望将测量的结果作为我们机器学习的特征。现在的问题的是,两种仪器对同一个东西测量的结果不完全相等(由于误差、精度等),而将两者都作为特征有些重复,因而,我们希望将这个二维的数据降至一维。
将数据从三维降至二维: 这个例子中我们要将一个三维的特征向量降至一个二维的特征向量。过程是与上面类似的,我们将三维向量投射到一个二维的平面上,强迫使得所有的数据都在同一个平面上,降至二维的特征向量。
14.2 目标Ⅱ:可视化
降维的第二个应用就是可视化数据。可视化数据可以帮助对学习算法的优化,也可以帮助我们更好地了解数据。
通过降维的方法使50维甚至更高维度的数据降到2维,可以将它们画出来,更好地观察理解数据。降维的算法只负责减少维数,新产生的特征的意义就必须由我们自己去发现了。
14.3 主成分分析问题规划1
主成分分析方法算法也叫PCA,简单来说PCA它的做的就是找到一个低维平面(方向向量)(下面二维图中的低维平面就是一条直线),将数据投影在上面,使数据点到直线的长度(也叫投影误差)平方最小,另外在应用PCA算法前需要先进行均值归一化和特征规范化,使特征值均值为0并且其数值在可比较的范围之内。
方向向量是一个经过原点的向量,而投影误差是从特征向量向该方向向量作垂线的长度。
PCA不是线性回归。主成分分析最小化的是投影误差(Projected Error),而线性回归尝试的是最小化预测误差。线性回归的目的是预测结果,而主成分分析不作任何预测。
PCA技术的一大好处是对数据进行降维的处理。我们可以对新求出的“主元”向量的重要性进行排序,根据需要取前面最重要的部分,将后面的维数省去,可以达到降维从而简化模型或是对数据进行压缩的效果。同时最大程度的保持了原有数据的信息。
PCA技术的一个很大的优点是,它是完全无参数限制的。在PCA的计算过程中完全不需要人为的设定参数或是根据任何经验模型对计算进行干预,最后的结果只与数据相关,与用户是独立的。
14.4 主成分分析问题规划2
PCA算法过程:
①对数据进行预处理
对数据集均值标准化,根据数据可能还要进行特征缩放。先计算均值,再拿特征值减去均值的结果取代每个特征,这个步骤可以使每个特征的均值正好为0。
②计算协方差矩阵(covariance matrix)
③计算协方差矩阵$Σ$的特征向量(eigenvectors)
在 Octave 里我们可以利用奇异值分解(singular value decomposition)来求解,
其中
对于一个 n×n维度的矩阵,上式中的U是一个具有与数据之间最小投射误差的方向向量构成的矩阵。如果我们希望将数据从n维降至k维,我们只需要从U中选取前k个向量,获得一个n X k维度的矩阵,我们用表示,然后通过如下计算获得要求的新特征向量:
其中是n×1维的,因此结果为k×1维度。注,我们不对方差特征进行处理。
14.5 主成分数量(k)选择
主要成分分析是减少投射的平均均方误差:
训练集的方差:
我们希望在平均均方误差与训练集方差的比例尽可能小的情况下选择尽可能小的k值。
如果我们希望这个比例小于1%,就意味着原本数据的偏差有99%都保留下来了,如果我们选择保留95%的偏差,便能非常显著地降低模型中特征的维度了。
我们可以先令k=1,然后进行主要成分分析,获得和z,然后计算比例是否小于1%。如果不是的话再令k=2,如此类推,直到找到可以使得比例小于1%的最小k 值(原因是各个特征之间通常情况存在某种相关性)。
还有一些更好的方式来选择k,当我们在Octave中调用“svd”函数的时候,我们获得三个参数:。
其中的S是一个n×n的矩阵,只有对角线上有值,而其它单元都是0,我们可以使用这个矩阵来计算平均均方误差与训练集方差的比例.
14.6 压缩重现
PCA算法可以将高维数据压缩成低维,那么也可以再将现有数据还原成原维度。
如下图,我们用将二维其压缩成一维,若要还原只需用公式
其中是n*k维的,z是k*1维的,那么还原的x就是n*1维的。
14.7 应用PCA的建议
假使我们正在针对一张 100×100像素的图片进行某个计算机视觉的机器学习,即总共有10000 个特征。
第一步是运用主要成分分析将数据压缩至1000个特征
然后对训练集运行学习算法.
在预测时,采用之前学习而来的将输入的特征x转换成特征向量z,然后再进行预测
注:如果我们有交叉验证集合测试集,也采用对训练集学习而来的。
错误的主要成分分析情况:一个常见错误使用主要成分分析的情况是,将其用于减少过拟合(减少了特征的数量)。这样做非常不好,不如尝试正则化处理。原因在于主要成分分析只是近似地丢弃掉一些特征,它并不考虑任何与结果变量有关的信息,因此可能会丢失非常重要的特征。然而当我们进行正则化处理时,会考虑到结果变量,不会丢掉重要的数据。
另一个常见的错误是,默认地将主要成分分析作为学习过程中的一部分,这虽然很多时候有效果,最好还是从所有原始特征开始,只在有必要的时候(算法运行太慢或者占用太多内存)才考虑采用主要成分分析。
第09周:吴恩达 Andrew Ng 机器学习相关推荐
- 第06周:吴恩达 Andrew Ng 机器学习
10 应用机器学习的建议 10.1 决定下一步做什么 依旧用房价预测的例子,假设我们使用已经正则化的线性回归的模型得到了参数,并将参数带入预测函数来预测一组新的房价,但是结果误差很大,那么为了解决问题 ...
- 第01周:吴恩达 Andrew Ng 机器学习
学习内容: 1 机器学习 1.1 机器学习定义 ①Arthur Samuel:在没有明确设置的情况下,使计算机具有学习能力的研究领域. e.g.跳棋游戏,使计算机与自己对弈上万次,使计算机学习到什么是 ...
- 第08周:吴恩达 Andrew Ng 机器学习
13 聚类 聚类算法是学习的第一个无监督学习算法,它所用到的数据是不带标签的. 13.1 无监督学习 什么是无监督学习? 在无监督学习中,所有的数据不带标签,而无监督学习要做的就是将这一系列无标签的数 ...
- 第04周:吴恩达 Andrew Ng 机器学习
学习内容: 8 神经网络 8.1 为什么用神经网络 当只有两个特征时(x1.x2),使用sigmoid函数得到的结果还可以,因为可以把x1.x2的所有组合都包含到多项式中.但当很多问题含有很多特征,不 ...
- 第05周:吴恩达 Andrew Ng 机器学习
学习内容: 9 神经网络的运用 9.1 代价函数 其中: 假设训练集为m组的训练样本 用L表示神经网络的总层数,对于上图来说,L=4 用表示第L层的单元数,也就是神经元的数量(不包括这一层的偏差单元) ...
- 第07周:吴恩达 Andrew Ng 机器学习
12 支持向量机(Support Vector Machines) 12.1 优化目标 在监督学习中,许多学习算法的性能都非常类似,因此,重要的不是你该选择使用学习算法A还是学习算法B,而更重要的是, ...
- 第10周:吴恩达 Andrew Ng 机器学习
15 异常检测(Anomaly Detection) 这种算法虽然主要用于非监督学习问题,但从某些角度看,它又类似于一些监督学习问题. 15.1 问题动机 例:假想一个飞机引擎制造商,当他生产的飞机引 ...
- 第02周:吴恩达 Andrew Ng 机器学习
学习目标: 完成对机器学习逻辑回归部分 完成习题 整理理论与编程题笔记 学习内容: 六.逻辑回归 6.1 分类问题Classification 二分类问题:通常结果有两种可能(0:negative c ...
- 【斯坦福公开课-机器学习】1.机器学习的动机和应用(吴恩达 Andrew Ng)
文章目录 0三个目标 0先修课程要求 基本工具 1-网址 2-邮箱 3-本系列课程链接 1机器学习的定义 1-1非正式定义 1-2正式的定义 2监督学习(Supervised Learning) 2- ...
最新文章
- 亿级商城计价中心 - 从容应对复杂场景价格计算
- 三十二、图的创建深度优先遍历(DFS)广度优先遍历(BFS)
- CVE-2016-0095提权漏洞学习笔记
- 安卓第六夜 凡高的自画像
- centos php日志分析,Centos日志查看分析
- 【转】IDEA类和方法注释模板设置(非常详细)
- Windows下修改hosts文件
- zbar扫描二维码,条维码
- 非负矩阵分解与K-means聚类
- 月薪2w的前端工程师,必盘的实战项目
- hadoop 8088端口网页无法打开的原因分析
- 老总让做后台接口监控,我却开发了一个App
- 学习ARM开发01-09
- Unity Universal RP asset not assigned
- 数据库被攻击 怎么解决
- OpenCV颜色识别
- 计算机房空调设计要求,计算机机房空调设计规范
- deepin 安装navcat14
- 默纳克最新解密软件,新时达解密软件,杭州西奥解密,永日默纳克动态密码关闭。
- CSS 实现文本中间省略号