降维的两种方式:

(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. Wordpress 运行缓慢的解决方法

    原因为wordpress 3.8之后采用google字体所致.   修改 functions.php    //禁用Open Sans class Disable_Google_Fonts { pub ...

  2. 修改的某人的SqlHelper FOR ODBC

    随便找来的,源作者不明. 本来是SQL SERVER 的 修改为 ODBC使用. 并且修改了连接字符串,可以允许修改一次. using System; using System.Collections ...

  3. Cisco模拟器使用和静态路由配置

    一. 模拟器使用 网络拓扑图 1. 模拟器搭建环境及网络结构 2. 使用ios系统加载并配置 3. 加载3745ios后计算pc值以减小cpu的消耗 4. 然后使用CTRL+]+i得到最大的一个值(如 ...

  4. swift-自定义无限轮播图

    一  前言 1.之前一直在用OC编程,最近才开始接触使用swift就发现使用OC越来越不习惯,感觉已经爱上了swift. 2.这个自定义轮播图只是对之前OC版本进行了翻译,欢迎指正. 3.我决定一步步 ...

  5. iOS - 网络语线程(OC)

    1. 检测网络状态 - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the vi ...

  6. TableView 中cell间的分割线(及其他控件间(内)的分割线)设置

    知识点: 1.在应用开发中,tableView中自带的分割线满足不了开发需求: 2.一些子空间中添加一些类似于分割线一样的东西等······ 补充知识点:导航条左侧或右侧的控件尽量靠近屏幕边缘设置 需 ...

  7. 10款web前端基于html5/CSS3应用特效

    1.jQuery百叶窗效果焦点图 多种百叶窗动画方式 对于百叶窗动画效果,我们介绍的不是很多,目前就介绍过一款CSS3百叶窗图片切换.这次要给大家带来一个基于jQuery的多种百叶窗动画效果焦点图,焦 ...

  8. Linux platform设备简介

    Technorati 标签: Linux platform     Linux在2.6内核中,针对一系列设备驱动,提供新的管理框架,成为platform机制,推出的目的,在于隔离驱动的资源和实现,使得 ...

  9. 从malloc中窥探Linux内存分配策略

        malloc函数是C/C++中常用内存分配库函数,本篇文章将以Linux平台上的malloc为剖析对象,深入了解分配一块内存的旅程. malloc入门      使用malloc,需要包含头文 ...

  10. ClickOnce证书签名

    打开Microsoft .NET Framework 的SDK命令提示,按以下步骤操作: 1.创建一个自我签署的X.509证书(.cer)和一个.pvk私钥文件,用到makecert工具,命令如下: ...