特征选择算法分类

article/2025/10/14 14:02:58
坊间常说:“数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已”。由此可见,特征工程在机器学习中占有相当重要的地位。在实际应用当中,可以说特征工程是机器学习成功的关键。

首先,从特征开始说起,假设你现在有一个标准的Excel表格数据,它的每一行表示的是一个观测样本数据,表格数据中的每一列就是一个特征。在这些特征中,有的特征携带的信息量丰富,有的(或许很少)则属于无关数据(irrelevant data),我们可以通过特征项和类别项之间的相关性(特征重要性)来衡量。比如,在实际应用中,常用的方法就是使用一些评价指标单独地计算出单个特征跟类别变量之间的关系。如Pearson相关系数,Gini-index(基尼指数),IG(信息增益)等。

其中,x属于X,X表一个特征的多个观测值,y表示这个特征观测值对应的类别列表。
Pearson相关系数的取值在0到1之间,如果你使用这个评价指标来计算所有特征和类别标号的相关性,那么得到这些相关性之后,你可以将它们从高到低进行排名,然后选择一个子集作为特征子集(比如top 10%),接着用这些特征进行训练,看看性能如何。此外,你还可以画出不同子集的一个精度图,根据绘制的图形来找出性能最好的一组特征。

特征选择,它的目的是从特征集合中挑选一组最具统计意义的特征子集,从而达到降维的效果

特征选择算法分类:过滤式,包裹式,嵌入式。这三类算法的区别主要在于学习算法在分析和选择特征的过程中发挥了怎样的作用。
  1. 过滤式: filter主要是通过给每个特征计算一个分数,然后按分数排序,从而选择top-k的特征作为新的特征集。他的优点很明显:计算速度快;缺点也很明显:没有考虑特征间的关系,导致效果不一定好。常见的fiter方法有: mutual information(互信息)、pearson相关系数、 卡方检验、 InfoGain等。基本原理如下图所示:
  2. 包裹式: 包装法特征选择方法直接把最终将要使用的学习器的性能作为特征子集的评价准则,这是与过滤法特征选择方法最大的区别。

filter: 特征是被提前选定的仅通过数据间的本质特性,并未进行学习算法的运算。简而言之,过滤式方法其先对数据集进行特征选择,使用选择出来的特征子集训练学习器,特征选择选择过程与后续的学习器无关。最简单的filter主要是通过给每个特征计算一个分数,然后按分数排序,从而选择得分最高的k个特征作为新的特征集。他的优点很明显:计算速度快;缺点也很明显:没有考虑特征间的关系,导致效果不一定好。常见的fiter方法有: mutual information(互信息)、pearson相关系数、 卡方检验、 InfoGain等。

wrapper:wrapper 使用预测模型来对特征集进行评分。也就是说,对每一个特征子集,我们进行训练并预测,得到的误差作为这个模型的分数(当然是越小越好了)。但是这种方法计算极慢,因为要考虑每一个feature subset。所以有时候,我们会用一些greedy的策略,例如我们所熟知的逐步回归的思想-逐步加入或者逐步删去。

embedded:embedded的方法都是内嵌在模型构建的本事的。事实上,这种特征选择的办法,都是基于构造机器学习模型时,产生的一些好的性质(比如线性回归时某些属性的系数为0)。这种办法属于比较常见的办法有:加入L1惩罚的回归模型(Lasso, SVM)、 随机森林(得到特征的importance)。embedded的计算复杂度介于上述两者之间。
学习器自身就有特征选择的能力。
过滤式方法通过一定的评价准则来分析特征,其目的是通过选择特征子集来优化准则函数,然而特征子集的选取有2^d种可能性,对于高维数据进行穷举搜索是不太现实的。为此,通常采用启发式搜索例如贪心算法、前项与后项搜索算法来替代穷举法,然而启发式搜索的方法会导致陷入局部最优解的情况。随机搜索方法例如遗传算法,通过在搜索过程中增加一定的随机性来避免陷入局部最优。
然而,在处理更高维的数据时,我们仅仅能进行单个特征的搜索,通过计算每一特征的重要程度并进行排列,选择得分最高的一部分作为特征子集,但这一方法的问题在于忽视了特征之间可能存在的相互关系。


http://chatgpt.dhexx.cn/article/59EiXQNH.shtml

相关文章

特征选择基本思想与relieff算法

特征选择 如果特征参数不足,则很容易引发数据重叠的现象,所有分类器都将不起作用;如果特征参数太多,则可能会消耗大量时间和计算资源。特征选择可以通过消除冗余的特征来提高分类算法的准确性,并减少其计算复杂度。特…

特征选择算法总结

1 综述 (1) 什么是特征选择 特征选择 ( Feature Selection )也称特征子集选择( Feature Subset Selection , FSS ) ,或属性选择( Attribute Selection ) ,是指从全部特征中选取一个特征子集,使构造出来的模型更好。 (2) 为什么要做特征选择 …

特征选择算法 | Matlab实现基于互信息特征选择算法的回归数据特征选择 MI

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 特征选择算法 | Matlab实现基于互信息特征选择算法的回归数据特征选择 MI 部分源码 %--------------------

如何进行特征选择?

特征选择(排序)对于数据科学家、机器学习从业者来说非常重要。好的特征选择能够提升模型的性能,更能帮助我们理解数据的特点、底层结构,这对进一步改善模型、算法都有着重要作用。 特征选择主要有两个功能: 减少特征数量、降维,使模型泛化能力更强,减少过拟合增强对特征和…

用遗传算法进行特征选择

文章目录 一、问题举例二、算法描述1、基于类内类间距离的可分性判据2、遗传算法(Genetic Algorithm)1) 初始化种群2)计算当前种群 M(t)中每条染色体的适应度值 f(m)3)基于适应度值的…

特征选择-常见的搜索算法

2.2.1完全搜索 完全搜索分为穷举搜索(Exhaustive)与非穷举搜索(Non-Exhaustive)两类。 (1) 广度优先搜索( Breadth First Search ) 算法描述:广度优先遍历特征子空间。 算法评价:枚举了所有的特征组合,属于穷举搜索,时间复杂度是O…

【特征选择】使用遗传算法进行特征选择

遗传算法寻优 cross_val_score(lgb,train_X,train_y,scoringf1,cvsKfold).mean() # 使用全部特征进行训练0.8508040614085857train_1 train.drop(label,1) cols train_1.columnstrain_1.head()经营期限起是否广告经营是否城镇从业人数注册资本(金)实…

特征选择 ReliefF算法

一、算法 Relief算法最早由Kira提出. 基本内容:从训练集D中随机选择一个样本R, 然后从和R同类的样本中寻找k最近邻样本H,从和R不同类的样本中寻找k最近邻样本M, 最后按照公式更新特征权重. 算法: 1.置0所有特征权重 2.For i1 to m do 2.1 随机…

特征选择算法-Relief(转)

【转载】数据挖掘之—基于ReliefF和K-means算法的医学应用实例(转自: http://www.cnblogs.com/asxinyu/archive/2013/08/29/3289682.html) 数据挖掘方法的提出,让人们有能力最终认识数据的真正价值,即蕴藏在数据中的信息和知识。数…

机器学习特征选择—使用遗传算法进行特征选择

目录 0、前言 1、遗传算法概念 2、基于DEAP库的python遗传算法特征选择 3、我的遗传算法特征选择代码及一些代码函数解析 4、完整代码 5、可能会遇到的错误 0、前言 差不多有大半年没有写博客了,这段时间没有学习什么新的知识和总结;这篇博客内容也…

特征选择算法-Relief

转自:http://www.cnblogs.com/asxinyu/archive/2013/08/29/3289682.html 数据挖掘方法的提出,让人们有能力最终认识数据的真正价值,即蕴藏在数据中的信息和知识。数据挖掘 (DataMiriing),指的是从大型数据库或数据仓库中提取人们感…

特征选择常用算法

特征选择常用算法综述 特征选择的一般过程: 1.生成子集:搜索特征子集,为评价函数提供特征子集 2.评价函数:评价特征子集的好坏 3.停止准则:与评价函数相关,一般是阈值,评价函数达到一定标准…

常用的特征选择算法介绍

结合Scikit-learn介绍几种常用的特征选择方法 原文 http://dataunion.org/14072.html 主题 特征选择 scikit-learn 特征选择(排序)对于数据科学家、机器学习从业者来说非常重要。好的特征选择能够提升模型的性能,更能帮助我们理解数据的特点、底层结构&#xff…

特征选择(Feature Selection)

主要内容: 为什么要进行特征选择?什么是特征选择?怎么进行特征选择 特征选择: 在现实生活中,一个对象往往具有很多属性(以下称为特征),这些特征大致可以被分成三种主要的类型&…

特征选择常用算法综述

1 综述 (1) 什么是特征选择 特征选择 ( Feature Selection )也称特征子集选择( Feature Subset Selection , FSS ) ,或属性选择( Attribute Selection ) ,是指从全部特征中选取一个特征子集,使构造出来的模型更好。 (2) 为什么要做特征选择 在机器学习的实际应用…

浅谈五种常用的特征选择方法

👆点击关注|设为星标|干货速递👆 在许多机器学习相关的书里,很难找到关于特征选择的内容,因为特征选择要解决的问题往往被视为机器学习的一个子模块,一般不会单独拿出来讨论。 但特征选择是一个…

Python-编码规范

学习内容:Python基础入门知识-代码编写规范 专栏作者:不渴望力量的哈士奇不渴望力量的哈士奇擅长Python全栈白宝书[更新中],⑤ - 数据库开发实战篇,网安之路,等方面的知识,不渴望力量的哈士奇关注云原生,算法,python,集成测试,去中心化,web安全,智能合约…

前端编码规范

最近整理了一份HTML/CSS/JS编码规范,供大家参考。 目录: 一、HTML编码规范 二、CSS编码规范 三、JS编码规范 一、HTML编码规范 1. img标签要写alt属性 根据W3C标准,img标签要写alt属性,如果没有就写一个空的。但是一般要写一个…

C语言编码规范

C语言编码规范 1、代码总体规则 2、代码规范之头文件 3、代码规范之函数 4、标识符命名与定义 5、代码规范之变量 6、宏、常量

【代码规范】常见编码规范

文章来源:公众号-智能化IT系统。 1.明确方法功能,精确(而不是近似)地实现方法设计。如果一个功能将在多处实现,即使只有两行代码,也应该编写方法实现。 说明: 虽然为仅用一两行就可完成的功能…