第十三章 利用PCA来简化数据

一.降维技术

当数据的特征很多的时候,我们把一个特征看做是一维的话,我们数据就有很高的维度。高维数据会带来计算困难等一系列的问题,因此我们需要进行降维。降维的好处有很多,比如:降低算法开销,让数据更加便于使用,去燥,数据更易于显示等等。

目前的降维技术主要有三种:第一种主成分分析(PCA),也就是本章介绍的内容,它只保留方差方向最大的若干个特征;第二种是因子分析,这种方法它的思想就是认为数据是由隐参数和噪声混合而成,如果我们能够找到隐参数和噪声就能够实现降维;第三种是独立成分分析(ICA),这种方法的思想是它认为数据是由若干个独立的数据源混合而成,如果我们能够找到这些数据源,就能够实现降维。

二.PCA的基本思想

PCA就是把一个高维的空间映射到一个低维的空间,这个低维的空间,让样本点的投影尽可能的分开,距离尽可能的大。要找到这样的一个低维空间,我们是通过不断的选择方差最大的方向来作为新特征维度实现的,当选择的方向的数目少于初始的特征维度,就实现了降维。

PCA算法的一般特性:

1.它的优点:降低数据的复杂度

2.它的缺点:可能用不到,会丧失一些有用的信息

3.它的使用类型:数值型数据

PCA算法实现的一般过程:

1.进行去中心化(也就是将每个数据减掉它的平均值)

2.计算XTX,也就是计算出协方差矩阵

3.计算协方差矩阵的特征向量和特征值

4.将得到的特征值进行从小到大的排列,然后选择值最大的d个特征值对应的特征向量作为新空间的方向向量

5.将数据映射到新的空间

三.PCA算法的实现

根据PC A算法的一般过程我们可以得到以下的实现方式:

首先我们需要获得数据

其次我们就能够定义PC A算法了

四.总结

PC A算法是一种进行降维的重要方法。我们在选择保留的特征的数目时,我们既可以实现设定,也可以根据得到特征值来进行选择。保留合适的特征数目对于数据非常的重要。

当前的降维方法主要有三种,一种是独立成分分析,一种是主成分分析,还有一种就是因子分析。主成分分析是一种应用比较广泛的方法。主成分分析他通过不断选择数据方差最大的方向来实现降维。

PCA算法和python实现的更多相关文章

  1. PCA算法和SVD

    如果矩阵对某一个向量或某些向量只发生伸缩变换,不对这些向量产生旋转的效果,那么这些向量就称为这个矩阵的特征向量,伸缩的比例就是特征值.这里可以将特征值为负,特征向量旋转180度,也可看成方向不变,伸缩 ...

  2. 使用Apriori算法和FP-growth算法进行关联分析

    系列文章:<机器学习实战>学习笔记 最近看了<机器学习实战>中的第11章(使用Apriori算法进行关联分析)和第12章(使用FP-growth算法来高效发现频繁项集).正如章 ...

  3. 用Spark学习FP Tree算法和PrefixSpan算法

    在FP Tree算法原理总结和PrefixSpan算法原理总结中,我们对FP Tree和PrefixSpan这两种关联算法的原理做了总结,这里就从实践的角度介绍如何使用这两个算法.由于scikit-l ...

  4. 最小生成树---Prim算法和Kruskal算法

    Prim算法 1.概览 普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树.意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点(英语:Vertex (gra ...

  5. 经典算法和OJ网站(开发者必备-转)

    一. Online Judge简介: Online Judge系统(简称OJ)是一个在线的判题系统.用户可以在线提交程序多种程序(如C.C++.Pascal)源代码,系统对源代码进行编译和执行,并通过 ...

  6. BM算法和Sunday快速字符串匹配算法

    BM算法研究了很久了,说实话BM算法的资料还是比较少的,之前找了个资料看了,还是觉得有点生涩难懂,找了篇更好的和算法更好的,总算是把BM算法搞懂了. 1977年,Robert S.Boyer和J St ...

  7. 台球游戏的核心算法和AI(2)

    前言: 最近研究了box2dweb, 觉得自己编写Html5版台球游戏的时机已然成熟. 这也算是圆自己的一个愿望, 一个梦想. 承接该序列的相关博文: • 台球游戏核心算法和AI(1) 同时结合htm ...

  8. mahout中kmeans算法和Canopy算法实现原理

    本文讲一下mahout中kmeans算法和Canopy算法实现原理. 一. Kmeans是一个很经典的聚类算法,我想大家都非常熟悉.虽然算法较为简单,在实际应用中却可以有不错的效果:其算法原理也决定了 ...

  9. 转载:最小生成树-Prim算法和Kruskal算法

    本文摘自:http://www.cnblogs.com/biyeymyhjob/archive/2012/07/30/2615542.html 最小生成树-Prim算法和Kruskal算法 Prim算 ...

随机推荐

  1. 分布式进阶(八)Linux提示Unable to locate package该如何处理?

    Linux提示Unable to locate package该如何处理? 当你在修改Linux软件源的时候,提示Unable to locate package错误,这是由什么原因导致的呢?又该如何 ...

  2. JAVA之旅(二十)—HashSet,自定义存储对象,TreeSet,二叉树,实现Comparator方式排序,TreeSet小练习

    JAVA之旅(二十)-HashSet,自定义存储对象,TreeSet,二叉树,实现Comparator方式排序,TreeSet小练习 我们继续说一下集合框架 Set:元素是无序(存入和取出的顺序不一定 ...

  3. Windows7下使用mingw编译openssl

    Windows7下使用mingw编译openssl 首先参考这篇文章安装mingw/minsys: http://blog.csdn.net/ubuntu64fan/article/details/8 ...

  4. Linux下修改主机名步骤

    Linux下修改主机名为gpdb 步骤一.运行vi /etc/sysconfig/network命令 NETWORKING=yesHOSTNAME=gpdb 步骤二.运行hostname gpdb命令 ...

  5. 1016. Phone Bills (25) -vector排序(sort函数)

    题目如下: A long-distance telephone company charges its customers by the following rules: Making a long- ...

  6. 推荐一个计算机视觉图书:python计算机视觉编程

    编辑部的主页:好像没啥用 http://shop.oreilly.com/product/0636920022923.do 每章的代码,github上面的:中文版 https://github.com ...

  7. 【IOS 开发】Object - C 语法 之 类型转换

    作者 : 万境绝尘 (octopus_truth@163.com) 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/3913507 ...

  8. iOS开发经验相关知识

    一. iPhone Size 手机型号 屏幕尺寸 iPhone 4 4s 320 * 480 iPhone 5 5s 320 * 568 iPhone 6 6s 375 * 667 iphone 6 ...

  9. Mplayer 的编译

    由于项目要用到mplayer,所以要对mplayer进行编译,首先我的平台如下: 系统:windows xp2 安装好mingw+msys,目录为c:/mingw,其中装的gcc是4.3.2版本的. ...

  10. kettel的stream lookup报错

    kettel的stream lookup报错: you can't use the 'integer-pair' algorithm when you have more than one key o ...