此为本人学习笔记,转载请劳烦告知!

特征选择

特征抽取整合原始特征,这样可能产生一些新的特征,而特征选择是去除无关紧要或庸余的特征,仍然还保留其他原始特征。特征提取主要用于图像分析,信号处理和信息检索领域,在这些领域,模型精确度比模型可解释性要重要;特征选择主要用于数据挖掘,像文本挖掘,基因分析和传感器数据处理。今天主要做的是特征选择。

特征选择定义:检测相关特征,摒弃冗余特征,以获得特征子集,从而以最小的性能损失更好地描述给出的问题。

特征选择方法

滤波器(filter)

单变量滤波
优点:计算简单快速,能处理极大量的数据集,与分类器独立
缺点:不与分类器交互,忽略特征相关性
方法:卡方,欧氏距离,t检验,信息增益或增益比率
多变量滤波
优点:能捕捉模型特征相关性,分类器独立,比封装方法计算复杂度小
缺点:比单变量滤波慢,和单变量滤波相比不能处理大量数据,忽略与分类器的交互
方法:基于相关性的特征选择(correlation-based feature selection,CFS,Hall,1999),最小冗余最大相关性(MRMR,Ding and Peng,2003),马尔科夫覆盖过滤器(Markov blanket filter,MBF, Koller and Sahami, 1996),快速基于相关性的特征选择(Fast correlation-based feature selection,FCBF, Yu and Liu, 2004),relief-F算法

封装(wrapper)

确定性算法
优点:简单,与分类器交互,能捕捉特征相关性,和随机算法相比计算开销小
缺点:相比随机算法,更倾向于稳定在局部最优(贪心搜索),有过度拟合风险,依赖分类器选择特征
方法:序列化前向选择(Sequential forward selection,SFS),序列化后向消除(Sequential backward elimination,SBE,Kittler,1978),束搜索(beam search, Siedelecky and Sklansky, 1988)
随机性算法
优点:更少趋向于稳定在局部最优,和分类器交互,能捕捉特征相关性
缺点:计算开销大,依赖于分类器选择,与确定性算法相比有高度过拟合风险
方法:模拟退火(simulated annealing),随机爬坡法(randomized hill climbing,Skalak,1994),遗传算法(GA,Holland,1975),分布式估计算法(estimation of distribution algrithms,Inza et al.,2000)

###集成方法(Embedded)

优点:与分类器交互,比wrapper方法计算开销小,能捕捉特征相关性
缺点:依赖分类器选择特征
方法:决策树,随机森林,加权贝叶斯(Duda et al.,2001),利用SVM加权向量的特征选择(feature selection using the weight vector of SVM, Guyon et al., 2002; Weston et al., 2003)(?递归特征消除)

一般选择变量个数

  • N < 10,选择75%的特征;
  • 10 < N < 75,选择40%的特征;
  • 75 < N < 100,选择10%的特征
  • N > 100,选择3%的特征

N为特征变量个数。

CFS(correlation-based feature selection)

特征估计

CFS估计特征子集并对特征子集而不是单个特征进行排秩。
CFS的核心是采用启发的方式评估特征子集的价值。
启发方式基于的假设:
好的特征子集包含与类高度相关的特征,但特征之间彼此不相关。
启发式方程:
M e r i t s = k r c f ˉ k + k ( k − 1 ) r f f ˉ Merit_s=\frac{k\bar{r_{cf}}}{\sqrt{k+k(k-1)\bar{r_{ff}}}} Merits=k+k(k1)rffˉ

krcfˉ
M e r i t s Merit_s Merits为包含k个特征的特征子集S的启发式’merit’, r c f ˉ \bar{r_{cf}} rcfˉ为特征-类平均相关性, r f f ˉ \bar{r_{ff}} rffˉ为特征-特征平均相关性。r为Pearson相关系数,所有的变量需要标准化。
启发式方法去除对类预测不起作用的特征变量,并识别与其他特征高度相关的特征。

搜索特征子集空间

CFS首先从训练集中计算特征-类和特征-特征相关矩阵,然后用最佳优先搜索(best first search)搜索特征子集空间。也可使用其他的搜索方法,包括前向选择(forward selection),后向消除(backward elimination)。前向选择刚开始没有特征,然后贪心地增加一个特征直到没有合适的特征加入。后向消除开始有全部特征,然后每一次贪心地去除一个特征直到估计值不再降低。最佳优先搜索和前两种搜索方法差不多。可以开始于空集或全集,以空集M为例,开始时没有特征选择,并产生了所有可能的单个特征;计算特征的估计值(由merit值表示),并选择merit值最大的一个特征进入M,然后选择第二个拥有最大的merit值的特征进入M,如果这两个特征的merit值小于原来的merit值,则去除这个第二个最大的merit值的特征,然后在进行下一个,这样依次递进,找出使merit最大的特征组合。
它的时间复杂度为 m × n 2 − n 2 m\times\frac{n^2-n}{2} m×2n2n.

流程图

案例分析

假设一个数据集拥有4个特征变量,它的相关矩阵如下图:

用相关性函数的前向选择搜索计算如下:

最终得到的结果为[Outlook,Humidity,Wind]。

代码实现:FeatureSelectionsAndExtractions

参考文献
【Yvan Saeys, Inaki Inza and Pedro Larranaga】A review of feature selection techniques in bioinformatics
【Mark A. Hall】Correlation-based Feature Selection for Discrete and Numeric Class Machine Learning
【Mark A. Hall】correlation-based feature selection for machine learning
【Barry O’Sullivan, Cork, Ireland】Feature Selection for High-Dimensional Data

特征选择之基于相关性的特征选择(CFS)相关推荐

  1. 互信息特征选择python_基于互信息的特征选择方法杂谈

    我们现在处于一个数据驱动的时代,但并不是所有的数据都是有意义的.只有有效的数据才能 带给我们"信息",无效的数据并不能带给我们"信息". 如果我们在做一件事情之 ...

  2. 互信息特征选择python_基于互信息的特征选择算法MATLAB实现 – OmegaXYZ

    在概率论和信息论中,两个随机变量的互信息(Mutual Information,简称MI)或转移信息(transinformation)是变量间相互依赖性的量度.不同于相关系数,互信息并不局限于实值随 ...

  3. python XGBoost分类器 和 基于树的特征选择 决策树法

    目录 绪论 1. 导入包和数据 2. 分割训练集和测试集 3. 不进行特征选择直接用xgb分类 3.1. xgb直接建模 3.2. 输出图片特征重要性 3.3. 模型评价 4. 进行特征选择后的分类 ...

  4. 基于正则化的特征选择

    1.特征选择简述 降维,有时也可称为子空间学习,可以大致分为特征选择(feature selection)和特征提取(feature extraction)两大类,我们常说的主成分分析(PCA).线性 ...

  5. 基于相关性变量筛选偏最小二乘回归的多维相关时间序列建模方法

    摘要: 针对许多领域中的时间序列存在维数过高以及变量间多重相关性严重等问题,提出一种相关性变量筛选偏最小二乘回归(CVS-PLSR)建模算法.该算法通过引入基于相关性的特征选择(CFS)来获取最优特征 ...

  6. 机器学习:如何用相关性实现特征选择?

    特征选择方法不少,这里介绍CFS(特征相关的特征选择) 一.相关性特征选择CFS CFS是能确定所选子集特征个数的特征选择方法,该法估计特征子集.并对特征子集而不是单个特征进行排秩.CFS的核心是采用 ...

  7. 科学论文1-软件缺陷预测中基于聚类分析的特征选择方法

    国家科学基地有超级工程:两弹一星.航天发射中心,有国家科学研究院所和企业研发基地,包括山东的高速铁路研发中心,天津.广东广州和江苏无锡的高性能计算中心等.在此创建科学论文阅读中心,主要是计算机.电子系 ...

  8. 文献记录(part54)--软件缺陷预测中基于聚类分析的特征选择方法

    学习笔记,仅供参考,有错必究 关键词:软件质量保障:缺陷预测:数据挖掘:特征选择:聚类分析 软件缺陷预测中基于聚类分析的特征选择方法 摘要 软件缺陷预测通过挖掘软件历史仓库 , 构建缺陷预测模型来预测 ...

  9. 1 - 基于卡方检验的特征选择

    基于卡方检验的特征选择,更多也可参考http://nlp.stanford.edu/IR-book/html/htmledition/feature-selectionchi2-feature-sel ...

最新文章

  1. C指针3:指针变量的运算
  2. 系统一定要做成中台吗?
  3. POJ1042 Gone Fishing
  4. Mongodb部署记录[3]-主从搭建
  5. android-cmake环境变量
  6. html text 默认选中,html - 如何在Shiny中默认选择verbatimTextOutput中的文本? - SO中文参考 - www.soinside.com...
  7. linux 应用层时间和随机数,zigbee cc2530时间
  8. php declare 作用,php declare用法详解
  9. python中变量的命名和关键字和变量的命名规则
  10. 【华为云技术分享】大数据容器化成趋势,华为云BigData Pro一马当先
  11. POJ 2104 K-th Number (区间第k大)
  12. Java简答题库_java题库3-简答题.doc
  13. iphone android传照片大小,快速地将iPhone/Android的照片传到电脑上
  14. Pygame实战:我妈50岁,戒不掉消消乐!看我给您安排一款百变款消消乐!厉害!
  15. 渐变(Gradients)
  16. 基于opencv的SVM车牌号码识别模型训练(C++)QT
  17. java打印 好看的图形_分享java打印简单图形的实现代码
  18. 数字孪生快速建模研究案例
  19. matlab的mcr问题,matlab compiler runtime(MCR)
  20. Jenkins集成GitLab自动化部署

热门文章

  1. matlab两向量相乘,matlab如何使得两个向量对应项相乘
  2. 转载:从MPLS到SR,再到SRv6,到底发生了什么?
  3. 人工智能技术在高级威胁检测中的应用实践 | T·Talk
  4. Android博客周刊第28期
  5. 如何关闭linux系统的53端口,3种关闭linux系统端口方法
  6. 提问:Unable to evaluate the expression. 被呼叫方拒绝接收呼叫。
  7. Oracle之将常驻内存的程序恢复为默认缓冲池
  8. photoshop抠图技巧之快速抠毛发实例教程
  9. 51nod 1836 战忽局的手段(期望+矩阵快速幂)
  10. 《Unity 3D游戏开发 第2版》宣雨松 pdf分享下载