PCA主成份分析
1 背景介绍
真实的训练数据总是存在各种各样的问题:
1、 比如拿到一个汽车的样本,里面既有以“千米/每小时”度量的最大速度特征,也有“英里/小时”的最大速度特征,显然这两个特征有一个多余。
2、 拿到一个数学系的本科生期末考试成绩单,里面有三列,一列是对数学的兴趣程度,一列是复习时间,还有一列是考试成绩。我们知道要学好数学,需要有浓厚的兴趣,所以第二项与第一项强相关,第三项和第二项也是强相关。那是不是可以合并第一项和第二项呢?
3、 拿到一个样本,特征非常多,而样例特别少,这样用回归去直接拟合非常困难,容易过度拟合。比如北京的房价:假设房子的特征是(大小、位置、朝向、是否学区房、建造年代、是否二手、层数、所在层数),搞了这么多特征,结果只有不到十个房子的样例。要拟合房子特征->房价的这么多特征,就会造成过度拟合。
4、 这个与第二个有点类似,假设在IR中我们建立的文档-词项矩阵中,有两个词项为“learn”和“study”,在传统的向量空间模型中,认为两者独立。然而从语义的角度来讲,两者是相似的,而且两者出现频率也类似,是不是可以合成为一个特征呢?
5、 在信号传输过程中,由于信道不是理想的,信道另一端收到的信号会有噪音扰动,那么怎么滤去这些噪音呢?
对于这些特征存在噪声和冗余的问题,通常使用主成份分析(PCA)来解决。通过主成份分析,能够将原有的n个相关变量通过线性变换,转换为较少的k个主成份的方法。这些主成份包含原始变量的绝大部分信息,通常表示为原始变量的线性组合。
PCA是通过一种统计方法,对多变量表示数据点集合寻找尽可能少的正交矢量表征数据信息特征。将多个变量通过线性变换以选出较少个数重要变量的一种多元统计分析方法。
PCA的目的:1.对变量的降维;2.主成份的解释
PCA的思想是将n维特征映射到k维上(k),这k维是全新的正交特征。这k维特征称为主元,是重新构造出来的k维特征,而不是简单地从n维特征中去除其余n-k维特征。
2 PCA的计算过程
对于二维数据:

1 减均值:
对其进行求均值,并且所有的数据减去相应均值:

2 归一化:
求标准差,并且所有数据除以相应标准差:

3 求特征协方差矩阵
C = [ cov(x,x) cov(x,y)
cov(y,x) cov(y,y) ];

4 求协方差矩阵特征值和特征向量

得到两个特征向量:[-0.7071;0.7071]对应特征值0.0741
[0.7071;0.7071]对应特征值1.9259
5 将特征值从大到小排序,选择其中最大的k个,将对应的k个特征向量分别做列向量,得到特征向量矩阵
6 计算结果

其中DataAdjust是归一化后的矩阵,EigenVectors是特征向量矩阵
3 PCA的意义和优缺点
PCA的主要目的就是减少变量个数,选择方差较大的主成份来分析,忽略一些方差较小的(认为是噪声)的成分,有效避免噪声和冗余。主成份不会对总的方差带来很大的影响。通过PCA对数据进行降维处理,可以有效压缩数据。
PCA的优点:无任何参数设置,在PCA计算过程中不需要人为的加入参数,不需要一些经验数据;
PCA的缺点:如果用户有一些先验经验,也同样无法通过设定参数来对结果进行干预。
4 参考资料
1 http://www.cnblogs.com/jerrylead/archive/2011/04/18/2020209.html
2 http://www.cnblogs.com/jerrylead/archive/2011/04/18/2020216.html
3 http://blog.sina.com.cn/s/blog_670445240101lgsa.html
5 主成份分析的五个问题
http://blog.sina.com.cn/s/blog_66035a700100hupi.html
PCA主成份分析的更多相关文章
- pca主成份分析方法
1.应用pca的前提 应用pca的前提是,连续信号具有相关性.相关性是什么,是冗余.就是要利用pca去除冗余. 2.pca的定义 pca是一种去除随机变量间相关性的线性变换.是一种常用的多元数据分析方 ...
- Spark 2.0 PCA主成份分析
PCA在Spark2.0中用法比较简单,只需要设置: .setInputCol(“features”)//保证输入是特征值向量 .setOutputCol(“pcaFeatures”)//输出 .se ...
- 【主成份分析】PCA推导
### 主成份分析(Pricipal components analysis PCA) 假设空间$R^{n}$中有m个点{$x^{1},......,x^{n}$},希望压缩,对每个$x^{i}$都有 ...
- PCA主成份分析学习记要
前言 主成份分析,简写为PCA(Principle Component Analysis).用于提取矩阵中的最主要成分,剔除冗余数据,同时降低数据纬度.现实世界中的数据可能是多种因数叠加的结果,如果这 ...
- principal components analysis 主成份分析
w http://deeplearning.stanford.edu/wiki/index.php/主成份分析 主成分分析(PCA)及其在R里的实现 - jicf的日志 - 网易博客 http:// ...
- 主成份分析PCA
Data Mining 主成分分析PCA 降维的必要性 1.多重共线性--预测变量之间相互关联.多重共线性会导致解空间的不稳定,从而可能导致结果的不连贯. 2.高维空间本身具有稀疏性.一维正态分布有6 ...
- 吴裕雄 python 机器学习——主成份分析PCA降维
# -*- coding: utf-8 -*- import numpy as np import matplotlib.pyplot as plt from sklearn import datas ...
- PCA(主成分析)
PCA通过将高维空间向量映射到低维,对于数据进行处理
- PCA--主成份分析
主成份分析(Principle Component Analysis)主要用来对数据进行降维.对于高维数据,处理起来比较麻烦,而且高维数据可能含有相关的维度,数据存在冗余,PCA通过把高维数据向低维映 ...
随机推荐
- eclipse中将本地项目上传到svn库
转载文章:http://blog.csdn.net/singit/article/details/48972197
- Git快速入门和常用命令
一.快速入门 本地初始化一个项目 首先,你需要执行下面两条命令,作为 git 的基础配置,作用是告诉 git 你是谁,你输入的信息将出现在你创建的提交中. git config --global us ...
- springBoot actuator监控配置及使用
准备环境: 一个springBoot工程 第一步:添加以下依赖 <dependency> <groupId>org.springframework.boot</group ...
- linux工作中遇到的问题总结---更新中
今天这个,严格来说不算一篇文章,我只想把我工作中遇到的问题分享给大家,让大家少犯错误. 1.安装rmp包时出现错误 :header V3 DSA signature: nokey ,key id .. ...
- WINDOWS java 不能正常卸载 问题, (其他系统问题 也可以试试)
1.JAVA 原安装包无法卸载 不知道 有没有通知 碰到过这种情况的 自己碰到过3次这种情况了, 卸载不掉, 在网上 找了N多中 方法, 注册表什么的都被翻烂了, 单还是没用,其中有一次还把 ...
- 发红包android
立即春节,写个应景的控件 思路分析 1.红包沿着不同的轨迹由上往下运动 2.当手指捕获到一个红包,红包停止原先的运动,能够随着手指的滑动做跟手操作 3.当手指动作停止后,红包放大 4. ...
- [Sqoop]利用sqoop对mysql运行DML操作
业务背景 利用sqoop对mysql进行查询.加入.删除等操作. 业务实现 select操作: sqoop eval \ --connect jdbc:mysql://127.0.0.1:3306/m ...
- DirectX:在graph自己主动连线中增加自己定义filter(graph中遍历filter)
为客户提供的视频播放的filter的測试程序中,採用正向手动连接的方式(http://blog.csdn.net/mao0514/article/details/40535791).因为不同的视频压缩 ...
- A. Arrays(Codeforces Round #317 水题)
A. Arrays time limit per test 2 seconds memory limit per test 256 megabytes input standard input out ...
- 算法题:A除以B
题目描写叙述 本题要求计算A/B.当中A是不超过1000位的正整数,B是1位正整数.你须要输出商数Q和余数R,使得A = B * Q + R成立. 输入描写叙述: 输入在1行中依次给出A和B,中间以1 ...