主成分分析法(PAC)的优化——选择主成分的数量

根据上一讲,我们知道协方差为

而训练集的方差为②。

我们希望在方差尽可能小的情况下选择尽可能小的K值。

也就是说我们需要找到k值使得①/②的值尽可能小(≤0.01)

那么我们可以先令K = 1 然后进行主要成分分析,得到U reduce 和 Z 计算其比例是否小鱼0.01,如果不是就令K = 2 再进行计算。

直到找到使得比例满足的k的最小值。

不过,在octave中,我们也利用在调用svd函数时候,得到的 S,U ,V参数进行判断。S是一个n×n的对角矩阵,它的元素都在左对角线上。因此可以计算

从而得到k的值。并且在压缩后,我们可以依据

(其中 x approx ≈ x)来还原之前未被压缩的数据。

主成分分析法在机器学习过程中的应用:

例如,将100*100的图像压缩到1000个特征。

step 1)用PCA对特征值进行压缩

step 2)对训练集使用学习算法。

step 3)在预测时,采用学习得到的Ureduce将x特征转化成Z特征再进行预测。

使用时候可能存在的误区:

1)不要用PCA进行对过拟合的修正,此时可以尝试归一化。主要成分分析算法只是丢掉一些特征,不会考虑任何与结果有关的变量,这样做容易使对于本学习算法得重要的特征信息丢失。

2)降维不是所有机器学习算法的必要过程,因此不是所有的算法都要去使用,只是当算法运算太慢或者太消耗内存的时候,我们才会去考虑使用PCA算法进行优化。

【机器学习】主成分分析法 PCA (II)的更多相关文章

  1. 【笔记】主成分分析法PCA的原理及计算

    主成分分析法PCA的原理及计算 主成分分析法 主成分分析法(Principal Component Analysis),简称PCA,其是一种统计方法,是数据降维,简化数据集的一种常用的方法 它本身是一 ...

  2. 吴恩达机器学习笔记(八) —— 降维与主成分分析法(PCA)

    主要内容: 一.降维与PCA 二.PCA算法过程 三.PCA之恢复 四.如何选取维数K 五.PCA的作用与适用场合 一.降维与PCA 1.所谓降维,就是将数据由原来的n个特征(feature)缩减为k ...

  3. 机器学习——主成分分析(PCA)

    1 前言 PCA(Principal Component Analysis)是一种常用的无监督学习方法,是一种常用的数据分析方法. PCA 通过利用 正交变换 把由 线性相关变量 表示的观测数据转换为 ...

  4. 【机器学习】主成分分析法 PCA (I)

    主成分分析算法是最常见的降维算法,在PCA中,我们要做的是找到一个方向向量,然后我们把所有的数都投影到该向量上,使得投影的误差尽可能的小.投影误差就是特征向量到投影向量之间所需要移动的距离. PCA的 ...

  5. 特征脸是怎么提取的之主成分分析法PCA

    机器学习笔记 多项式回归这一篇中,我们讲到了如何构造新的特征,相当于对样本数据进行升维. 那么相应的,我们肯定有数据的降维.那么现在思考两个问题 为什么需要降维 为什么可以降维 第一个问题很好理解,假 ...

  6. 主成分分析法PCA原理

    PCA(Principal Component Analysis)是一种常用的数据分析方法.PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降 ...

  7. 主成分分析法(PCA)答疑

    问:为什么要去均值? 1.我认为归一化的表述并不太准确,按统计的一般说法,叫标准化.数据的标准化过程是减去均值并除以标准差.而归一化仅包含除以标准差的意思或者类似做法.2.做标准化的原因是:减去均值等 ...

  8. 降维之主成分分析法(PCA)

    一.主成分分析法的思想 我们在研究某些问题时,需要处理带有很多变量的数据,比如研究房价的影响因素,需要考虑的变量有物价水平.土地价格.利率.就业率.城市化率等.变量和数据很多,但是可能存在噪音和冗余, ...

  9. 机器学习回顾篇(14):主成分分析法(PCA)

    .caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...

随机推荐

  1. Mybatis pageHelper.startPage(...)是物理分页

    使用PageHelper.startPage(...)进行物理分页 业务需求只显示其中的100条数据 之前是在业务逻辑里对参数limit进行了处理 后来试试sql的limit查询100条数据 但是不确 ...

  2. Python module ---- abc

    python中并没有提供抽象类与抽象方法,但是提供了内置模块abc(abstract base class)来模拟实现抽象类.  ABC,Abstract Base Class(抽象基类),主要定义了 ...

  3. cmake安装

    下载之后 1.解压 root@zsh-linux:/opt#tar -zxvf  cmake-2.8.4.tar.gz 2.然后 cd 到cmake-2.8.4目录下  安装 root@zsh-lin ...

  4. dbForge Studio for MySQL 中文乱码问题

    设置一下编码格式就好了 第一步:右键点击连接的数据库,选择第二个 第二步:选择第二个选项卡,设置编码格式,点击OK 第三步:确认保存并从新连接 最后你就发现能正常显示中文啦

  5. vue翻页器,包括上一页,下一页,跳转

    翻页组件 -- 子组件<template> <div class="pager-wrapper" ref="pager"> <di ...

  6. WebMvcConfigure

    https://www.cnblogs.com/cl-rr/p/9632886.html

  7. UnitZ Battlegrounds beta5 - Unity吃鸡类型游戏模版 源码 仿绝地求生

    Requires Unity 2018.2.6 or higher.The first battle royale game starter kit on Asset Store, all syste ...

  8. Spring BeanDefinitionRegistryPostProcessor BeanPostProcessor作用

    写博客,写博客,把自己知道的小知识点全部记录,

  9. css与dom的渲染与解析

    js阻塞文档渲染与解析那么css呢? 结论一.css:阻塞渲染,不阻塞dom解析 <head> <script> document.addEventListener('DOMC ...

  10. 在vscode中使用eslint

    一.vs中安装eslint插件 二.npm 全局安装 eslint   sudo npm i -g eslint 三.vs终端运行eslint --init 四.在vscode的setting中设置 ...