PCA与特征选取
一、什么是PCA
PCA,即PrincipalComponents Analysis,也就是主成份分析;
通俗的讲,就是寻找一系列的投影方向,高维数据按照这些方向投影后其方差最大化(方差最大的即是第一主成份,方差次大的为第二主成份...
如下图:数据点沿该方向投影后,方差最大,投影之后,由于各个点之间的距离之最大化的,因此彼此之间是最容易区分的
二、一些应用
1、数据降维
比如比较常见的人脸识别,假设有10副脸部图像,每副图像存贮为512*512大小的矩阵,经过特征提取后features可能为10000甚至更多,形成一个10*10000的矩阵;针对如此多的特征进行识别计算量很大同时也没有必要(因为一部分特征就已经反应了脸部的大部分信息)。但同时,人为的(指主观的)对这些特征进行筛选也很可能会把很多有用的信息剔除掉了;这时PCA就派上用场了,通过PCA降维的方法就可以控制特征的多少了(通常取Score>85%的前N个主成份就够了,还视具体情况而定吧)。关于PCA降维的应用与理论,PCA算法学习_1(OpenCV中PCA实现人脸降维),讲的很清楚了。
2、特征分析、选择
常用PCA进行数据降维,但使用PCA进行特征选择的案例并不常见。而使用PCA、小波变换等方法可以做到将维数降低、以简化后续分类等过程的复杂度,但这些降维方法本身的计算量也不小,在一些应用场景中需要在线实时的进行数据处理时,在保障模型预测准确性的基础上,模型当然越简单消耗的资源越少越好。面对海量特征,其中每个特征对模型预测准确性的贡献是有所不同的,某个特征与PCA主成分方向夹角越小(可用余弦相似性衡量),该特征对PCA主成分的贡献就越大,新特征F与原特征矩阵X的关系可用X的特征向量A联系:
F=Af
三维情况下,新特征F与原特征f变换关系表示为:
则原特征fj对新特征F的贡献通过下式计算:
贡献度Conj的大小及衡量了原有的某个特征对所有新特征的重要程度。
若原特征维数巨大,在线分析的应用中对其进行PCA的降维操作也有一定的计算量。在模型构建之初,即可使用PCA方法,通过计算特征贡献度Con,选取贡献度大的一些特征来直接训练模型以及后续的分类预测工作。
以上是个人实践中的一些总结,欢迎批评指正~
PCA与特征选取的更多相关文章
- 特征选取1-from sklearn.feature_selection import SelectKBest
sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003& ...
- 转 :scikit-learn的GBDT工具进行特征选取。
http://blog.csdn.net/w5310335/article/details/48972587 使用GBDT选取特征 2015-03-31 本文介绍如何使用scikit-learn的GB ...
- scikit-learn的GBDT工具进行特征选取。
http://blog.csdn.net/w5310335/article/details/48972587 使用GBDT选取特征 2015-03-31 本文介绍如何使用scikit-learn的GB ...
- [模式识别].(希腊)西奥多里蒂斯<第四版>笔记5之__特征选取
1,引言 有关模式识别的一个主要问题是维数灾难.我们将在第7章看到维数非常easy变得非常大. 减少维数的必要性有几方面的原因.计算复杂度是一个方面.还有一个有关分类器的泛化性能. 因此,本章的主要任 ...
- 吴裕雄 python 机器学习——数据预处理过滤式特征选取SelectPercentile模型
from sklearn.feature_selection import SelectPercentile,f_classif #数据预处理过滤式特征选取SelectPercentile模型 def ...
- 吴裕雄 python 机器学习——数据预处理过滤式特征选取VarianceThreshold模型
from sklearn.feature_selection import VarianceThreshold #数据预处理过滤式特征选取VarianceThreshold模型 def test_Va ...
- 吴裕雄 python 机器学习——数据预处理包裹式特征选取模型
from sklearn.svm import LinearSVC from sklearn.datasets import load_iris from sklearn.feature_select ...
- 特征选取方法PCA与LDA
一.主成分分析(PCA)介绍 什么是主成分分析? 主成分分析是一种用于连续属性降维的方法,把多指标转化为少数几个综合指标. 它构造了原始属性的一个正交变换,将一组可能相关的变量转化为一组不相关的变 ...
- [译]使用scikit-learn进行机器学习(scikit-learn教程1)
原文地址:http://scikit-learn.org/stable/tutorial/basic/tutorial.html 翻译:Tacey Wong 概要: 该章节,我们将介绍贯穿scikit ...
随机推荐
- JMETER_从入门到放弃系列
基础篇 Jmeter(一)_环境部署 Jmeter(二)_基础元件 Jmeter(三)_配置元件 Jmeter(四)_16个逻辑控制器 Jmeter(五)_24个函数 Jmeter(六)_前置处理器 ...
- APP自动化框架LazyAndroid使用手册(2)--元素自动抓取
作者:黄书力 概述 前面的一篇博文简要介绍了安卓自动化测试框架LazyAndroid的组成结构和基本功能,本文将详细描述此框架中元素自动抓取工具lazy-uiautomaterviewer的使用方法. ...
- 准备在CSDN知识库建立一个Ext JS的知识库
CSDN近期正在建立一个知识库,目标是打造身边的技术百科全书 ,我觉得这创意挺好,就像stackoverflow一样,常见的问题在里面基本都有了,只要通过搜索就能找到所需的答案. 现在,大家对于Ext ...
- 第一个Angular2的样例
欢迎跟我一起学习Angular2 本文根据angular2官网手动敲码得来: 本文地址:http://blog.csdn.net/sushengmiyan 本文作者:苏生米沿 - 开发环境搭建 - 配 ...
- 操作系统内核Hack:(一)实验环境搭建
操作系统内核Hack:(一)实验环境搭建 三四年前,心血来潮,入手<Orange's:一个操作系统的实现>学习操作系统内核,还配套买了王爽的<汇编语言(第二版)>和<80 ...
- FORM界面批量处理-全选框实现
全选框实现方法多种多样,这里只介绍两种 方法一:触发器式,优点程序简单,缺点颜色单调不突出 1. 在数据块和控制块上分别创建check box 2. 设置check box选中与为 ...
- RxJava(一) create操作符的用法和源码分析
欢迎转载,转载请标明出处: http://blog.csdn.net/johnny901114/article/details/51524470 本文出自:[余志强的博客] 1 create操作符的基 ...
- CSDN 支持Markdown写文章了!
开源中国等其他技术博客很早就支持markdown格式写文章了,今天发现csdn竟然也可以了,不仅支持而且可以在线预览,本地导入导出,远程导入. 这些对于程序员写东西都非常好用,不用总是花时间来排版了. ...
- 合成/聚合复用原则(CARP)
组合/聚合复用原则(Composite/Aggregate Reuse Principle或CARP),就是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分,新对象通过向这些对象的委派达到 ...
- linux的 压缩与解压 命令集
bzip2压缩费时但效果好,而且支持hadoop的hdfs文件切分,gzip不行 bzip2 [-cdz] 文件名 -c :将压缩的过程输出到屏幕 -d :解压缩 -z :压缩 -# :压缩比的参数, ...