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. iOS开发 准确计算Coretext高度

    - (int)getAttributedStringHeightWithString:(NSAttributedString *)  string  WidthValue:(int) width{   ...

  2. 解决Sophos UTM 9防火墙上的“根分区填满”问题

    Resolving 'Root Partition Is Filling Up' Issue on Sophos UTM Firewall 收到“Sophos UTM 9”防火墻的“根分區填满”问题的 ...

  3. 使用canvas 的api 实现 图片的显示 及 压缩

    在移动端压缩图片并且上传主要用到filereader.canvas 以及 formdata 这三个h5的api.逻辑并不难.整个过程就是: (1)用户使用input file上传图片的时候,用file ...

  4. match excel test search replace 用法

    1 test:测试string是否包含有匹配结果,包含返回true,不包含返回false. 2 reg.test(str) 3 <script type="text/javascrip ...

  5. js改变css样式

      CreateTime--2017年10月31日15:14:12 Author:Marydon js改变css样式 1.js改变单个css样式 HTML部分 <div id="tes ...

  6. LeetCode 第 3 题(Longest Substring Without Repeating Characters)

    LeetCode 第 3 题(Longest Substring Without Repeating Characters) Given a string, find the length of th ...

  7. PHP计算两个时间差的方法

    <?php //PHP计算两个时间差的方法 $startdate="2010-12-11 11:40:00"; $enddate="2012-12-12 11:45 ...

  8. OpenCV for Python 学习笔记 一

    本人的学习笔记主要记录的是学习opencv-python-tutorials这本书中的笔记 今天晚上简单学习OpenCV for Python如何绘图,主要用了这几个函数(这几个函数可在:http:/ ...

  9. [oracle]pl/sql --分页过程demo

    这句sql能够用来查询一张表中的特定位置的记录 --查询的方法获取分页的语句 select *from (select t1.*,rownum rn from (select *from books) ...

  10. java: private, protected, public

    这三个 「可访问修饰符」,是一个老生常谈的话题了.在 C++ 中也有类似的概念. 按其修饰对象的不同,分为几种用法小记一下: 用于类 只有 public 可以修饰类:private 和 protect ...