降维的两种方式:

(1)特征选择(feature selection),通过变量选择来缩减维数。

(2)特征提取(feature extraction),通过线性或非线性变换(投影)来生成缩减集(复合变量)。

主成分分析(PCA):降维

  1. 将多个变量通过线性变换(线性相加)以选出较少个数重要变量。

  2. 力求信息损失最少的原则。

  3. 主成分:就是线性系数,即投影方向。

  4. 通常情况下,变量之间是有一定的相关关系的,即信息有一定的重叠。将重复的变量删除。

  5. 基本思想:将坐标轴中心移到数据的中心,然后旋转坐标轴,使得数据在C1轴上的上的方差最大,即全部n个数据个体在该方向上的投影最为分散。意味着更多的信息被保留下来。C1成为第一主成分

    C2第二主成分:找一个C2,使得C2与C1的协方差(相关系数)为0,以免与C1信息重叠,并且使数据在该方向的方差尽量最大。

    以此类推,找到第三主成分,第四主成分。。。。第p个主成分。p个随机变量就有p个主成分。

  6. 通过协方差对特征值、特征向量进行分析。

  7. 特征向量(特征脸)。

  8. 它是一个线性变换。这个变换把数据变换到一个新的坐标系统中, 使得任何数据投影的第一大方差在第一个坐标(称为第一主成分)上,第二大方差 在第二个坐标(第二主成分)上,依次类推。主成分分析经常用减少数据集的维数, 同时保持数据集的对方差贡献最大的特征。
  9. 主成分分析法是一种降维的统计方法,它借助于一个正交变换,将其分量相关的原随机向量转化成其分量不相关的新随机向量,这在代数上表现为将原随机向量的协方差阵变换成对角形阵,在几何上表现为将原坐标系变换成新的正交坐标系,使之指向样本点散布最开的p个正交方向,然后对多维变量系统进行降维处理,使之能以一个较高的精度转换成低维变量系统,再通过构造适当的价值函数,进一步把低维系统转化成一维系统。

主成分分析的定义:

主成分分析的性质:

主成分分析的推导

  主成份分析(PCA, Principal Component Analysis)有多种推导方法,最大化方差是一种比较直观的方法。比如给出一坨数据,如果你想给出一条坐标轴可以尽量清晰的描述这些数据,即更容易把它们分类,那么直观来看,肯定会选择与数据方差最大的那条直线,才能最大化数据的差异性。

实际的做法就是将数据的高维坐标投影到这条直线,也就是向量上去,然后最大化投影后的方差。

   很明显上式的含义是是矩阵S的特征向量,即特征向量即为投影向量。这就转换成一个矩阵特征值分解问题。我们将特征值从大到小排列,保留前M个特征向量,即实现了从原来N维空间到M维新空间的降维。

主成分数目的选取

  设有p个随机变量,便有p个主成分。由于总方差不增不减,C1, C2等前几个综合变量的方差较大,而Cp,Cp-1等后几个综合变量的方差较小, 严格 说来,只有前几个综合变量才称得上主(要)成份,后几个综合变量实为“次 ”(要) 成份。实践中总是保留前几个,忽略后几个。 保留多少个主成分取决于保留部分的累积方差在方差总和中所占百分比(即累计贡献率),它标志着前几个主成分概括信息之多寡。实践中,粗略规定一个百分比便可决定保留几个主成分;如果多留一个主成分,累积方差增加无几,便不再多留。

主成分分析的主要作用

  1. 降维
  2. 多维数据的一种图形表示方法。我们知道当维数大于3时便不能画出几何图形,多元统计研究的问题大都多于3个变量。要把研究的问题用图形表示出 来是不可能的。然而,经过主成分分析后,我们可以选取前两个主成分或其中某两个主成分,根据主成分的得分,画出n个样品在二维平面上的分布况,由图形可直观地看出各样品在主分量中的地位,进而还可以对样本进行分类处理,可以由图形发现远离大多数样本点的离群点。 
  3. 由主成分分析法构造回归模型。即把各主成分作为新自变量代替原来自变量x做回归分析。
  4. 用主成分分析筛选回归变量。回归变量的选择有着重要的实际意义,为了使模型本身易于做结构分析、控制和预报,好从原始变量所构成的子集合中选择最佳变量,构成最佳变量集合。用主成分分析筛选变量,可以用较少的计算量来选择变量,获得选择最佳变量子集合的效果。

主成分分析的计算步骤

对 m 个主成分进行加权求和,即得最终评价值,权数为每个主成分的方差 贡献率。

 主成分分析的缺点

在有些情况下,PCA算法的性能很差,如下图:

  用不同的颜色标注C1,C2两个不同类别的数据。根据PCA算法,数据应该映射到方差最大的那个方向,亦即Y轴方向,但是如果映射到Y轴方向,C1,C2两个不同类别的数据将完全混合在一起,很难区分开,所以使用PCA算法进行降维后再进行分类的效果会非常差。

Reference:

主成分分析PCA算法 原理解析

浅谈对主成分分析(PCA)算法的理解

特征值分解和主成份分析

主成分分析(principal components analysis, PCA)——无监督学习的更多相关文章

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

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

  2. [zz] Principal Components Analysis (PCA) 主成分分析

    我理解PCA应该分为2个过程:1.求出降维矩阵:2.利用得到的降维矩阵,对数据/特征做降维. 这里分成了两篇博客,来做总结. http://matlabdatamining.blogspot.com/ ...

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

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

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

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

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

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

  6. (4)主成分分析Principal Component Analysis——PCA

    主成分分析Principal Component Analysis 降维除了便于计算,另一个作用就是便于可视化. 主成分分析-->降维--> 方差:描述样本整体分布的疏密,方差越大-> ...

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

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

  8. 主成分分析(principal components analysis)

    http://www.cnblogs.com/jerrylead/tag/Machine%20Learning/ PCA的思想是将n维特征映射到k维上(k<n),这k维是全新的正交特征.这k维特 ...

  9. Jordan Lecture Note-10: Kernel Principal Components Analysis (KPCA).

    Kernel Principal Components Analysis PCA实际上就是对原坐标进行正交变换,使得变换后的坐标之间相互无关,并且尽可能保留多的信息.但PCA所做的是线性变换,对于某些 ...

随机推荐

  1. 文件上传利器SWFUpload入门简易教程

    凡做过网站开发的都应该知道表单file的确鸡肋. Ajax解决了不刷新页面提交表单,但是却没有解决文件上传不刷新页面,当然也有其它技术让不刷新页面而提交文件,该技术主要是利用隐藏的iFrame, 较A ...

  2. asp.net中用正则表达式验证数据格式

      这是一个验证是否为数字的例子: Regex reg   = new Regex(@"^[0-9]+\.{0,1}[0-9]*$");reg.IsMatch(textBox1.T ...

  3. vim 高级使用技巧

    前言:逃离windows有很长时间了,特别是当今android盛行的时代,我们没有理由不选择ubuntu作为编译开发android之首选.其实操作系统只是我们使用的一个工具, windows也好lin ...

  4. 解决ASP.NET MVC3与FusionCharts乱码问题

    程序代码  代码如下 复制代码 <script type="text/javascript">    $(document).ready(function () {   ...

  5. Mysql中IFNULL与IN操作

    Mysql IFNULL操作 项目中用到的,当SQL查询某个字段为空的时候,查询结果中设置其值为默认值.最笨的方法当然是对查询结果进行处理了,遍历查询结果,当为空的时候,设置其值: 代码如下 复制代码 ...

  6. ASP.NET 窗体间传值实现方法详解

    假设ParentForm.aspx 页面上有TextBox1文本框和Open按钮点击Open按钮弹出SubForm.aspx,SubForm.aspx页面上有TextBox1文本框和Close按钮点击 ...

  7. js数组与字符串的相互转换方法

    一.数组转字符串 需要将数组元素用某个字符连接成字符串,示例代码如下: var a, b; a = new Array(0,1,2,3,4); b = a.join("-"); 二 ...

  8. 谷歌浏览器Chrome不再支持showModalDialog的解决办法

    问题重现 弹出窗口编码: JavaScript 0 1 2 3 4 5 6 7   var obj = new Object();   var retval = window.showModalDia ...

  9. 关于火狐浏览器不支持img onerror的办法

    项目中,要使用到缺省图,除了火狐浏览器,其它浏览器都支持img onerror事件.我使用到的解决的办法就是给图片的外层标签加背景,背景图用的就是缺省图. 上代码 <img src=" ...

  10. 方法:一个简单的读取配置文件.properties的工具类 JAVA

    import java.util.ResourceBundle; public class ConfigHelper { private static ConfigHelper instance; p ...