Principal components analysis

这一讲,我们简单介绍Principal Components Analysis(PCA),这个方法可以用来确定特征空间的子空间,用一种更加紧凑的方式(更少的维数)来表示原来的特征空间。假设我们有一组训练集{x(i);i=1,...m},含有m个训练样本,每一个训练样本x(i)∈Rn,其中(n≪m),每一个n维的训练

样本意味着有n个属性,一般来说,这n个属性里面,会有很多是存在一定相关性的,也就是很多属性是冗余的,这就为特征的降维提供了可能,关键是如何确定多余的属性以及如何进行降维。

PCA为这个问题提供了一种解决途径,在做PCA之前,我们要先对数据做如下的预处理:

1: 求出训练集的均值向量:μ=1m∑mi=1x(i).

2: 用每一个训练样本减去均值向量,x(i)=x(i)−μ.

3: 求出变换后的训练集的方差:σ2j=1m∑i(x(i)j)2.

4: 再将训练集的样本做如下替换:x(i)j=x(i)j/σj.

上面的第1,2步确保了训练集的均值为0,第3,4步保证了训练集的方差为1,使得训练样本里的不同属性变换到同一个尺度上处理。给定一个单位向量u和一个点x,那么该点x到单位向量的投影的长度为xTu,如果x(i)是训练集里的一个样本,那么它在u上的投影长度即为xTu到原点的距离,因此,为了能够让这些投影之间的方差最大,我们希望找到满足如下表达式的单位向量u。

1m∑i=1m((x(i))Tu)2=1m∑i=1muTx(i)(x(i))Tu=uT(1m∑i=1mx(i)(x(i))T)u

因为u是单位向量,所以∥u∥2=1,上式括号中的表达式即为均值为0的协方差矩阵(Σ=1m∑mi=1x(i)(x(i))T),为了使目标函数最大化,则u应该取Σ最大的特征值所对应的特征向量。

总之,我们应该取Σ的主特征向量,如果我们希望将原来的数据空间映射到一个低维的子空间,我们可以选择Σ的前k个特征向量作为子空间的基向量,那么这k个特征向量u1,u2,...uk组成了新空间的基向量。那么我们可以将原来的训练样本x(i)映射到新的特征空间:

y(i)=⎡⎣⎢⎢⎢⎢⎢⎢uT1x(i)uT2x(i)⋮uTkx(i)⎤⎦⎥⎥⎥⎥⎥⎥∈Rk

因此,虽然x(i)是一个n维的向量,但是y(i)变成了维数更低的向量,所以PCA是一种降维算法,其中特征向量u1,u2,...uk称为训练集的

前k个主分量。

参考来源:

Andrew Ng, “Machine Learning”, Stanford University.

机器学习:Principal components analysis (主分量分析)的更多相关文章

  1. principal components analysis 主成份分析

    w http://deeplearning.stanford.edu/wiki/index.php/主成份分析 主成分分析(PCA)及其在R里的实现 - jicf的日志 - 网易博客  http:// ...

  2. Principal components analysis(PCA):主元分析

    在因子分析(Factor analysis)中,介绍了一种降维概率模型,用EM算法(EM算法原理详解)估计参数.在这里讨论另外一种降维方法:主元分析法(PCA),这种算法更加直接,只需要进行特征向量的 ...

  3. Andrew Ng机器学习公开课笔记–Principal Components Analysis (PCA)

    网易公开课,第14, 15课 notes,10 之前谈到的factor analysis,用EM算法找到潜在的因子变量,以达到降维的目的 这里介绍的是另外一种降维的方法,Principal Compo ...

  4. PCA-主成分分析(Principal components analysis)

    来自:刘建平 主成分分析(Principal components analysis,以下简称PCA)是最重要的降维方法之一. 1. PCA的思想 PCA顾名思义,就是找出数据里最主要的方面,用数据里 ...

  5. Jordan Lecture Note-9: Principal Components Analysis (PCA).

    Principal Components Analysis (一)引入PCA    当我们对某个系统或指标进行研究时往往会发现,影响这些系统和指标的因素或变量的数量非常的多.多变量无疑会为科学研究带来 ...

  6. Stat2—主成分分析(Principal components analysis)

    最近在猛撸<R in nutshell>这本课,统计部分涉及的第一个分析数据的方法便是PCA!因此,今天打算好好梳理一下,涉及主城分析法的理论以及R实现!come on…gogogo… 首 ...

  7. A tutorial on Principal Components Analysis | 主成分分析(PCA)教程

    A tutorial on Principal Components Analysis 原著:Lindsay I Smith, A tutorial on Principal Components A ...

  8. 主成分分析 | Principal Components Analysis | PCA

    理论 仅仅使用基本的线性代数知识,就可以推导出一种简单的机器学习算法,主成分分析(Principal Components Analysis, PCA). 假设有 $m$ 个点的集合:$\left\{ ...

  9. 主成分分析(principal components analysis, PCA)

    原理 计算方法 主要性质 有关统计量 主成分个数的选取 ------------------------------------------------------------------------ ...

随机推荐

  1. Android 打开其他程序

    Intent intent = new Intent(); intent.setComponent(new ComponentName("所要打开的程序包名", "所要打 ...

  2. 【spring data jpa】使用spring data jpa时,关于service层一个方法中进行【删除】和【插入】两种操作在同一个事务内处理

    场景: 现在有这么一个情况,就是在service中提供的一个方法是先将符合条件的数据全部删除,然后再将新的条件全部插入数据库中 这个场景需要保证service中执行两步 1.删除 2.插入 这两步自然 ...

  3. 【swagger】2.swagger提供开发者文档--返回统一格式篇【spring mvc】【spring boot】

    接着上一篇来说, 不管正常返回结果还是后台出现异常,应该返回给前台统一的响应格式. 所以这一篇就为了应对解决这个问题. ======================================== ...

  4. 【bootstrap】Bootstrap Notify的使用步骤

    Bootstrap Notify说明文档:http://bootstrap-notify.remabledesigns.com/ Bootstrap Notify的GitHub地址:https://g ...

  5. curl如何发送json数据?如何发送form数据?python的restfull又该如何获取这些数据?

    1.python使用flask+flask_restfull框架写的api接口,做为服务 2.curl 做为客户端发送数据 from flask import request curl发送json的方 ...

  6. Linux进程管理(3):总结

    7. exit与_exit的差异    为了理解这两个系统调用的差异,先来讨论文件内存缓存区的问题. 在linux中,标准输入输出(I/O)函数都是作为文件来处理.对应于打开的每个文件,在内存中都有对 ...

  7. [Javascript] Await a JavaScript Promise in an async Function with the await Operator

    The await operator is used to wait for a promise to settle. It pauses the execution of an async func ...

  8. Android自己定义ViewGroup打造各种风格的SlidingMenu

    看鸿洋大大的QQ5.0側滑菜单的视频课程,对于側滑的时的动画效果的实现有了新的认识,似乎打通了任督二脉.眼下能够实现随意效果的側滑菜单了.感谢鸿洋大大!! 鸿洋大大用的是HorizontalScrol ...

  9. STL中各容器之函数总结

    一.序列和关联非共同拥有函数 全部标准库共同拥有函数  (构造,相关属性,迭代器,插入与删除,比較.swap) 当中operator>,operator>=,operator<,op ...

  10. UVA10317- Equating Equations(回溯+剪枝)

    题目链接 题意:给出一个式子,但这个式子不一定是等式,在'+','-','='符号位置不变的情况下,又一次排列数字的位置,使其成为等式.假设能够的话.输出当中一种排列方式. 思路:我们将等号右边的数所 ...