机器学习:Principal components analysis (主分量分析)
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。
因为u是单位向量,所以∥u∥2=1,上式括号中的表达式即为均值为0的协方差矩阵(Σ=1m∑mi=1x(i)(x(i))T),为了使目标函数最大化,则u应该取Σ最大的特征值所对应的特征向量。
总之,我们应该取Σ的主特征向量,如果我们希望将原来的数据空间映射到一个低维的子空间,我们可以选择Σ的前k个特征向量作为子空间的基向量,那么这k个特征向量u1,u2,...uk组成了新空间的基向量。那么我们可以将原来的训练样本x(i)映射到新的特征空间:
因此,虽然x(i)是一个n维的向量,但是y(i)变成了维数更低的向量,所以PCA是一种降维算法,其中特征向量u1,u2,...uk称为训练集的
前k个主分量。
参考来源:
Andrew Ng, “Machine Learning”, Stanford University.
机器学习:Principal components analysis (主分量分析)的更多相关文章
- principal components analysis 主成份分析
w http://deeplearning.stanford.edu/wiki/index.php/主成份分析 主成分分析(PCA)及其在R里的实现 - jicf的日志 - 网易博客 http:// ...
- Principal components analysis(PCA):主元分析
在因子分析(Factor analysis)中,介绍了一种降维概率模型,用EM算法(EM算法原理详解)估计参数.在这里讨论另外一种降维方法:主元分析法(PCA),这种算法更加直接,只需要进行特征向量的 ...
- Andrew Ng机器学习公开课笔记–Principal Components Analysis (PCA)
网易公开课,第14, 15课 notes,10 之前谈到的factor analysis,用EM算法找到潜在的因子变量,以达到降维的目的 这里介绍的是另外一种降维的方法,Principal Compo ...
- PCA-主成分分析(Principal components analysis)
来自:刘建平 主成分分析(Principal components analysis,以下简称PCA)是最重要的降维方法之一. 1. PCA的思想 PCA顾名思义,就是找出数据里最主要的方面,用数据里 ...
- Jordan Lecture Note-9: Principal Components Analysis (PCA).
Principal Components Analysis (一)引入PCA 当我们对某个系统或指标进行研究时往往会发现,影响这些系统和指标的因素或变量的数量非常的多.多变量无疑会为科学研究带来 ...
- Stat2—主成分分析(Principal components analysis)
最近在猛撸<R in nutshell>这本课,统计部分涉及的第一个分析数据的方法便是PCA!因此,今天打算好好梳理一下,涉及主城分析法的理论以及R实现!come on…gogogo… 首 ...
- A tutorial on Principal Components Analysis | 主成分分析(PCA)教程
A tutorial on Principal Components Analysis 原著:Lindsay I Smith, A tutorial on Principal Components A ...
- 主成分分析 | Principal Components Analysis | PCA
理论 仅仅使用基本的线性代数知识,就可以推导出一种简单的机器学习算法,主成分分析(Principal Components Analysis, PCA). 假设有 $m$ 个点的集合:$\left\{ ...
- 主成分分析(principal components analysis, PCA)
原理 计算方法 主要性质 有关统计量 主成分个数的选取 ------------------------------------------------------------------------ ...
随机推荐
- Scala IDE里的WorkSheet的使用
所见即所得的一个工具, 左边编码,右边立即出结果 https://www.cnblogs.com/zlslch/p/6115118.html
- 2.【nuxt起步】-初始化创建nuxt项目
1. 脚手架初始化: vue init nuxt-community/starter-template NuxtMyms 2.输入项目相关信息 3.切换到项目目录下 安装依赖 Cd nuxtmyms ...
- Linux进程调度(3):进程切换分析
3.调度函数schedule()分析 当kernel/sched.c:sched_tick()执行完,并且时钟中断返回时,就会调用kernel/sched.c:schedule()完成进程切换.我们 ...
- 在.NET使用JSON作为数据交换格式【转】
http://www.cnblogs.com/zhoufoxcn/archive/2011/03/16/2515611.html 我们知道在.NET中我们有多种对象序列化的方式,如XML方式序列化.B ...
- 仰视源代码,实现strcpy
编程实现字符串的拷贝,不能用库函数. 一般的刚開始学习的人也许能写出来.可是要写的非常完美那就须要基本功了. char* strcpy(char* strDest, const char* strSr ...
- 小谈Vim打开文件开头的<feff>
在本地Windows机上开发的PHP程序上传到linuxserver上后,通过浏览器訪问对应接口.发现返回的数据前多了一个莫名的字符'-',甚为不解.之后通过网络抓包的方式,查看到接口返回数据前多了 ...
- Populating Next Right Pointers in Each Node I, II——生成next树
1. Given a binary tree struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode * ...
- Libx264 编码错误 Input picture width(320) is greater than stride (0)
Ffmpeg libx264编码出现 Input picture width(320) is greater than stride (0),问题出在视频格式不正确. libx264 编码要求输入源的 ...
- 从头认识java-15.7 Map(6)-介绍HashMap的工作原理-装载因子与性能
这一章节我们通过讨论装载因子与性能,再来介绍HashMap的工作原理. 1.什么是装载因子?他有什么作用? 以下的代码就是装载因子 /** * The load factor used when no ...
- ok6410[001] Ubuntu 16.04[64bit]嵌入式交叉编译环境arm-linux-gcc搭建过程图解
开发PC:Ubuntu16.04.1 开发板:OK6410[飞凌公司出品] 目标:通过GPIO点亮LED ----------------------------------------------- ...