ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

机器学习笔记12

2021-07-21 12:36:24  阅读:149  来源: 互联网

标签:误差 12 机器 特征 笔记 降维 PCA 数据 向量


降维

1.1 目标1:数据压缩 Data Compression

现在来介绍第二个无监督学习:降维,降维的第一个作用就是压缩数据,允许我们使用较少的内存或磁盘空间,也加快算法速度

当我们发现特征中有一些特征是冗余的(比如:特征1是厘米,特征2是英尺),那么我们就需要通过降维来压缩数据

将二维降到一维:

将三维降为二维:

1.2 目标2:可视化 Data visualization

降维的第二个作用就是可视化,可以将高维的数据进行可视化

比如以下这个例子,特征为各国的一些信息,假设有50个特征,那么我们就很难将50维的图像构建出来

所以我们可以通过降维对数据进行可视化

 

1.3 主成分分析问题描述 Principal Component Analysis problem formulation

最常见的降维算法是主成分分析(PCA)。PCA 要做的是找到一个方向向量(Vector direction),把所有的数据都投射到该向量上并且投射平均均方误差要尽可能小。方向向量是一个经过原点的向量,投射误差是从特征向量向该方向向量所作垂线的长度

如下图,我们就认为红色直线就是PCA要找的向量,因为投射平均均方误差都比较小,而不是选择洋红色直线作为向量

更一般化的就是要将n维数据降至k维,目标是找到向量u(1) ,u(2) ,...,u(k) 使得总的投射误差最小,比如3维降到2维就是找到向量u(1) ,u(2),将所有数据投射到由向量u(1) ,u(2)构成的平面上去

可能从下图来看,会觉得PCA和线性回归有点相似,其实并不是的

PCA最小化的是投射误差,不作任何预测。线性回归最小化的是预测误差,目的是预测结果

左图的是线性回归的误差(垂直于横轴投影),右图则是主要成分分析的误差(垂直于斜线投影)

现在就详细的介绍一下PCA的算法

第一步需要对特征做均值归一化,计算出所有特征的均值,然后令 xj = xj − μj 。如果特征是在不同的数量级上,还需要将其除以 最大值减去最小值 或者除以标准差 σ2

第二步需要计算协方差矩阵(covariance matrix) Σ,(读音:sigma),公式为:

第三步需要计算协方差矩阵 Σ 的特征向量(eigenvectors),在 Matlab 中调用 [U,S,V] = svd(sigma) 可以直接求得特征向量 U(对于一个 n × n 维度的矩阵,U 是一个由 “与数据之间最小投射误差的方向向量” 构成的矩阵)

如果希望将数据从 n 维降至 k 维,只需要从 U 中选取前 k 个向量,获得一个 n × k 维度的矩阵,用Ureduce 表示

降维后新特征向量 z(i)的计算公式为:

最后总结一下PCA的优点:

<1> 对数据进行降维处理,可以通过降维从而简化模型

<2> 它是完全无参数限制的,最后的结果只与数据相关

1.4 重建原始特征 Reconstruction from compressed representation

在之前介绍了将数据从高维降维到低维,其实在给定降维后的数据时,我们还可以重建降维前的数据

我们是通过 z = UreduceT * x 来获得降维后的数据,可想而知我们就可以通过 xappox = Ureduce ⋅ z 来重建降维前的数据,这时就有 xappox ≈ x

1.5 主成分数量选择 Choosing the number of principal components

主成分分析是最小化投射的平均均方误差,那怎么选择适当降维目标 k 值(即主成分的数量)呢?

我们的目标是:在『平均均方误差与训练集方差的比例尽可能小』的情况下,选择尽可能小的 k 值

如果平均均方误差与训练集方差的比例小于 1%,就意味着有 99% 的原本数据都保留下来了。同理,比例为 5%,对应95%的原数据,比例10%,对应90%的原数据

通常原数据比例在 95%到99% 是最常用的取值范围(对于许多数据集,通常可以在保留大比例原数据的同时大幅降低数据的维度。这是因为大部分原数据中的许多特征变量都是高度相关的)

算法的具体流程:

先令 k = 1,然后进行主成分分析,获得Ureduce 、z和xappox,最后通过左图公式计算比例是否小于 1% ,如果比例大于 1% 的话,再令k = 2,如此类推,直到找到可以使得比例小于 1%的最小k 值

除了以上这个方法,还有另一个方法:

通过在 Matlab 中调用 [U, S, V] = svd(sigma) 来获得对角矩阵S(对角矩阵S的大小与Σ一致),再利用下面的公式直接计算平均均方误差与训练集方差的比例

1.6 PCA的应用建议 Advice for applying PCA

对于PCA的应用,假设对训练集(x,y) (100×100 的图像,特征 x 的维度为100×100=10000)采用监督学习的方式去预测,在预测前对特征进行PCA处理,将数据压缩至 1000 个特征,x 转变为 z,重新组建成训练集(z,y),再进行预测

在PCA的应用上,建议运用在压缩和可视化上

不建议将其运用在防止过拟合上,虽然可能会有用,但是特征减少了就有可能失去一些有用的信息了。对于防止过拟合,可以采用加入的正则化的方式去解决

在一些项目上的运用,不建议一开始上来就使用PCA,最好还是从使用原始特征开始,在有必要的时候(比如:算法运行太慢或者占用太多内存)才考虑采用 PCA

标签:误差,12,机器,特征,笔记,降维,PCA,数据,向量
来源: https://www.cnblogs.com/bird7/p/15034254.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有