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. 邁向IT專家成功之路的三十則鐵律 鐵律八:IT人學習之道-基礎功

    修練過中國武術的人都知道,任何一種拳法的學習最重要的就是基礎功,而基礎功又可分為內在與外在的修練,內在的修練強調在平心.靜氣.不爭的調息.至於外在這首重在站樁.鬆沉.不疾不徐的應對能力.有了深厚基礎的 ...

  2. 转:Android IOS WebRTC 音视频开发总结 (系列文章集合)

    随笔分类 - webrtc   Android IOS WebRTC 音视频开发总结(七八)-- 为什么WebRTC端到端监控很关键? 摘要: 本文主要介绍WebRTC端到端监控(我们翻译和整理的,译 ...

  3. vue2 less less-loader 的用法

    LESS基础语法 我们一起来学习一下LESS的基础语法,LESS的基础语法基本上分为以下几个方面:变量.混合(Mixins).嵌套规则.运算.函数.作用域等.这些基础语法需要我们先牢牢的掌握住,然后才 ...

  4. 笔记03 MVVM 开发的几种模式(WPF)

    转自http://www.cnblogs.com/buptzym/p/3220910.html 在WPF系(包括SL,WP或者Win8)应用开发中,MVVM是个老生常谈的问题.初学者可能不会有感觉,但 ...

  5. python--函数程序分析

    写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的批量修改操作 import os #加载模块 def xiu(a,b,c): #三个接受值的形参 f = open(a,encod ...

  6. JSP 随记

    jstl <c:forEach> 遍历,多个<option>时显示"全部".单个 option时,默认选中! 引入:<%@ taglib prefix ...

  7. Nginx下的https配置

    https: https(Secure Hypertext Transfer Protocol) 安全超文本传输协议 它是以安全为目标的http通道,即它是http的安全版.它使用安全套接字层(SSL ...

  8. Java面向对象编程(一)

    由于常常将Java和C++面向对象编程的原则搞乱,所以这次把相关要点分别总结一下,本文主要总结Java面向对象编程. 面向对象编程的三大特性是:继承性(inheritance), 多态性(polymo ...

  9. 10个必需的iOS开发工具和资源

    本文转载至 http://mobile.51cto.com/iphone-418166.htm 界面总不是一件很容易事,尤其是iPhone/iPad的界面,做过iOS开发的程序员,一定会感到开发iPh ...

  10. EasyPusher手机直播图像旋转90度后画面重复的问题

    本文转自:http://blog.csdn.net/holo_easydarwin/article/details/51147379 最初在做EasyPusher手机直播的时候遇到过一个问题:手机竖屏 ...