特征选择算法综述

2023-05-16

特征选择(feature selection)作为一种常见的降维方法是模式识别的研究热点之一。 它是指从原始特征集中选择使某种评估标准最优的特征子集。 其目的是使选出的最优特征子集所构建的分类或回归模型达到和特征选择前近似甚至更
好的预测精度,这不但提高了模型的泛化能力、可理解性和计算效率,同时可降低“维度灾难”的发生频率。

在机器学习领域中,特征选择被认为是跟学习算法紧密联系的一个问题,可表述为:给定一个学习算法 L、一个数据集 S,S 来自一个特征 X1,X2,X3, …,Xn 的具有类别标记 Y 的符合分布的样本空间, 则一个最优特征子集 Xopt 是使得某个评价准则 J=J(L,S)最优的特征子集。 因此,该领域的学者认为特征选择的结果应该用学习算法来评价。
特征选择作为统计学领域的经典问题, 自上个世纪 60 年代起就有学者对此进行了研究;同时,它也是机器学习领域的重要问题:自 90 年代以来,特征选择的研究引起了机器学习领域众多学者前所未有的重视, 主要原因有以下三方面:
1)许多学习算法的性能受到不相关或冗余特征的负面影响。 大多数学习算法所需训练样本的数目随不相关特征的增多而急剧增加。 因此,选择好的特征不仅可以减小计算复杂度 ,提高预测精度 ,而且有助于寻找更精简的算法模型 。
。 所谓大规模,一方面指样本数目的庞大,另一方面指描述样本的特征维数高。
3)随着应用领域的不断扩大,所遇到的数据类型也将不断变化。 因此,特征选择算法的设计需要适应新的数据类型。 正是由于上述原因,特征选择的研究成为模式识别和机器学习领域的重要课题,它具有重要的学术意义和实用价值。

1 特征选择作为搜索问题的 4 个要素
一般而言,特征选择可以看作一个搜索寻优问题。 对大小为 n 的特征集合, 搜索空间由 2n-1 种可能的状态构成 。 Davies 等证明最小特征子集的搜索是一个 NP 问题[5],即除了穷举式搜索,不能保证找到最优解。 但实际应用中,当特征数目较多的时候, 穷举式搜索因为计算量太大而无法应用,因此人们致力于用启发式搜索算法寻找次优解。 一般特征选择算法必须确定以下 4 个要素:1)搜索起点和方向;2)搜索策略;3)特征评估函数;4)停止准则。
1.1 搜索起点和方向
搜索起点是算法开始搜索的状态点,搜索方向是指评价的特征子集产生的次序。 搜索的起点和搜索方向是相关的,它们共同决定搜索策略。 一般的,根据不同的搜索起点和方向,有以下 4 种情况:
1)前向搜索 搜索起点是空集 S,依据某种评价标准,随着搜索的进行,从未被包含在 S 里的特征集中选择最佳的特征不断加入 S。
2)后向搜索 搜索起点是全集 S,依据某种评价标准不断从 S 中剔除最不重要的特征,直到达到某种停止标准。
3)双向搜索 双向搜索同时从前后两个方向开始搜索。一般搜索到特征子集空间的中部时,需要评价的子集将会急剧增加。 当使用单向搜索时,如果搜索要通过子集空间的中部就会消耗掉大量的搜索时间,所以双向搜索是比较常用的搜索方法。
4)随机搜索 随机搜索从任意的起点开始,对特征的增加和删除也有一定的随机性。
1.2 搜索策略
假设原始特征集中有 n 个特征(也称输入变量),那么存在 2n-1 个可能的非空特征子集。 搜索策略就是为了从包含2n-1 个候选解的搜索空间中寻找最优特征子集而采取的搜索方法。 搜索策略可大致分为以下 3 类:
1)穷举式搜索 它可以搜索到每个特征子集。 缺点是它会带来巨大的计算开销,尤其当特征数较大时,计算时间很长。 分支定界法(Branch and Bound, BB)[6]通过剪枝处理缩短搜索时间。
2)序列搜索 它避免了简单的穷举式搜索,在搜索过程中依据某种次序不断向当前特征子集中添加或剔除特征,从而获得优化特征子集。 比较典型的序列搜索算法如:前向后向搜索[7]、浮动搜索[8]、双向搜索[7]、序列向前和序列向后算法等。 序列搜索算法较容易实现,计算复杂度相对较小,但容易陷入局部最优。
3)随机搜索 由随机产生的某个候选特征子集开始,依照一定的启发式信息和规则逐步逼近全局最优解。 例如:遗传算法 (Genetic Algorithm, GA)、 模拟退火算法(Simulated Annealing, SA)、 粒 子 群 算 法 (Particl Swarm Optimization, PSO)和免疫算法(Immune Algorithm, IA)等。
1.3 特征评估函数
评价标准在特征选择过程中扮演着重要的角色,它是特征选择的依据。 评价标准可以分为两种:一种是用于单独地衡量每个特征的预测能力的评价标准;另一种是用于评价某个特征子集整体预测性能的评价标准。
在 Filter[24-27]方法中,一般不依赖具体的学习算法来评价特征子集,而是借鉴统计学、信息论等多门学科的思想,根据数据集的内在特性来评价每个特征的预测能力,从而找出排序较优的若干个特征组成特征子集。 通常,此类方法认为最优特征子集是由若干个预测能力较强的特征组成的[9]。
相反,在 Wrapper 方法中,用后续的学习算法嵌入到特征选择过程中,通过测试特征子集在此算法上的预测性能来决定它的优劣,而极少关注特征子集中每个特征的预测性能如何。 因此,第二种评价标准并不要求最优特征子集中的每个特征都是优秀的[10]。
1.4 停止准则
停止标准决定什么时候停止搜索, 即结束算法的执行。
它与评价准则或搜索算法的选择以及具体应用需求均有关
联。 常见的停止准则一般有:
1)执行时间 即事先规定了算法执行的时间,当到达所制定的时间就强制终止算法运行,并输出结果。
2)评价次数 即制定算法需要运算多少次,通常用于规定随机搜索的次数, 尤其当算法运行的结果不稳定的情况下,通过若干次的运行结果找出其中稳定的因素。3) 设置阈值 一般是给算法的目标值设置一个评价阈值,通过目标与该阈值的比较决定算法停止与否。 不过,要设置一个合适的阈值并不容易,需要对算法的性能有十分清晰的了解。 否则,设置阈值过高会使得算法陷入死循环,阈值过小则达不到预定的性能指标。

参考文献
[1] Langley P. Seleetion of relevant features in machine learning [J]. In:Proe. AAAI Fall Symposium on Relevanee,1994:
140- 144.
[2] Langley P,Iba W. Average-case analysis of a nearest neigh-bour algorithm[C]// Proceedings of the Thirteenth Internation-al Joint Con-Ferenee on Artifieial Intelligence, 1993:889 -894.
[3] Jain A,Zongker D. Feature seleetion: evaluation,application, and Sniall sample perfortnanee[J]. IEEE transactions on pat-tern analysis and rnachine intelligence,1997,19 (2):153 -158
[4] Xing E,Jordan M,Karp R. Feature seleetion for high-dimen-sional genomic microarray data [C]// Intl. conf. on Machine Learning, 2001:601-608.
[5] Davies S, Russl S. Np-completeness of searehes for smallest Pos Sible feature sets [C]// In:Proc. Of the AAAI Fall 94 Symposium on Relevanee, 1994:37-39.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

特征选择算法综述 的相关文章

  • JavaScript和HTML及CSS的通俗解释

    1 什么是HTML xff08 超文本标记语言 Hyper Text Markup Language xff09 xff0c HTML 是用来描述网页的一种语言 2 CSS 层叠样式表 Cascading Style Sheets 样式定义
  • 计算机系统概论基本知识

    目录 chapter0 chapter1 binary system chapter2 chapter3 chapter4 chapter5 Pseudo Code or Program Design Language way to use
  • NSGA-Ⅱ算法C++实现(测试函数为ZDT1)

    在看C 43 43 实现之前 xff0c 请先看一下NSGA II算法概述 http www omegaxyz com 2017 04 14 nsga iiintro NSGA 就是在第一代非支配排序遗传算法的基础上改进而来 xff0c 其
  • 数据结构Huffman树及编码

    欢迎关注我的网站 xff1a http www omegaxyz com 一 实验目的 构造一个哈夫曼树 xff0c 并根据所构造的哈夫曼树求其哈夫曼树的编码 xff1b 二 基本思路 将每个英文字母依照出现频率由小排到大 xff0c 最小
  • 迷宫问题的通用解法C语言数据结构实现

    1 1问题描述 以一个m n的长方阵表示迷宫 xff0c 0和1分别表示迷宫中的通路和障碍 设计一个程序 xff0c 对任意设定的迷宫 xff0c 求出一条从入口到出口的通路 xff0c 或得出没有通路的结论 1 2基本要求 输入的形式和范
  • 如何用wordpress搭建个人博客

    欢迎访问我的网站 xff1a omegaxyz com WordPress是一种使用PHP语言开发的博客平台 xff0c 用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站 也可以把 WordPress当作一个内容管理系统
  • 课程设计哈夫曼编/译码系统

    欢迎访问我的网站 xff1a omegaxyz com 问题描述 xff1a 利用哈夫曼编码进行通信可以大大提高信道利用率 xff0c 缩短信息传输时间 xff0c 降低传输成本 但是 xff0c 这要求在发送端通过一个编码系统对待传数据预
  • JAVA“类”数组的创建与调用

    JAVA 类 数组的创建与调用和C 43 43 相比是不同的 先看这样一个类数组的创建 注 xff1a bookFeature 是一个类 错误1 xff1a class bookList span class hljs keyword pr
  • JAVA继承与多态概述

    更多JAVA及高级语言编程内容请访问omegaxyz com 1 可以从现有的类定义新的类 xff0c 这称为类的继承 新类称为次类 子类或继承类现有的类称为超类 父类或基类 2 构造方法用来构造类的实例 不同于属性和方法 xff0c 子类
  • 课程设计旅游景点咨询系统

    欢迎访问我的网站 xff1a omegaxyz com 问题描述 xff1a 创建一个至少有15个点的有向网表示的某个旅游景点的导游图 顶点代表景点 类型为字符串 xff08 例如 xff0c 泰山导游图 xff1a 天地广场门 xff0c
  • Android Studio程序无法加载到虚拟机解决方法

    阅读原文 xff1a 我的博客 xff1a omegaxyz com 安装玩Android studio之后创建一个项目 hello world 具体描述为 xff1a Waiting for target device to come o
  • windows系统C盘越来越大怎么办(包括win10)

    欢迎访问我的网站 xff1a omegaxyz com 对于Mac电脑来说 xff0c 不必太过担心垃圾清理 至于Windows用户电脑垃圾会越来越多 使用360和CCleaner已经满足不了用户的需求了 另外Win10在更新过程中会产生许
  • 企业信息化IT架构方法

    一 顶层业务架构 上 xff1a 打通上游供应商 中 xff1a 打通内部各业务部门 xff1b 打通各业务部门和财务部门 中 xff1a 打通各地区域 分支机构 下 xff1a 打通仓储物流 渠道分销 服务商 外 xff1a 打通电子商务
  • 教你用python高效刷leetcode

    由于Python语法的简洁性 xff0c 用python来刷leetcode往往能用比别的语言更少的代码量AC 但是如果不是对python很熟悉就会比较尴尬了 xff0c 如果有些功能明明有高效的内置方法因为不知道要自己实现 或者不了解其复
  • C语言和JAVA的区别在哪里?

    欢迎访问我的网站 xff1a omegaxyz com 1 Java与C语言各自的优势 C语言是面向过程的语言 xff0c 执行效率高 Java是面向对象的语言 xff0c 执行效率比C语言低 C语言最关键的是比Java多了指针 xff0c
  • 一分钟认识JAVA与Android的联系与区别

    欢迎访问我的网站 xff1a omegaxyz com Android是一种以Linux为基础的开放源码操作系统 JAVA是一种面向对象的编程语言 Android上的应用大多数是用JAVA开发的 xff0c 但是Android SDK引用了
  • 什么是前端开发工程师?

    欢迎访问我的网站 xff1a omegaxyz com 概述 前端工程师 xff0c 也叫Web前端开发工程师 他是随着web发展 xff0c 细分出来的行业 Web前端开发技术主要包括三个要素 xff1a HTML CSS和JavaScr
  • MATLAB常用数学函数

    欢迎访问我的网站 xff1a omegaxyz com abs x xff1a 纯量的绝对值或向量的长度 angle z xff1a 复数z的相角 Phase angle sqrt x xff1a 开平方 real z xff1a 复数z的
  • JAVA入门

    欢迎访问我的网站 xff1a omegaxyz com 工欲善其事 xff0c 必先利其器 首先先要下载JAVA IDE xff08 集成开发环境 xff08 IDE xff0c Integrated Development Environ
  • 编程语言(C语言,JAVA),程序设计,APP开发,算法

    更多精彩内容访问 我的网站omegaxyz com 或者关注我的公众号图灵技术域

随机推荐

  • 利用JavaScript批量删除QQ空间说说(只需一个浏览器)

    每个人都有历史 xff0c 记录说说是保存瞬间思想的最好方式 xff0c 但时间久了 xff0c 我们发现从前的灵光闪现是多么的好笑 xff0c 于是我们开始删说说 xff0c 可是说说那么多 xff0c 哎算了重注册一个QQ号吧 别这样
  • 浅析计算机科学在经济犯罪中的特征与表现

    原创文章 xff0c 转载请注明出处 xff1a http www omegaxyz com 2017 06 27 ecocriminallawessay 摘要 xff1a 大数据时代已经来临 与此同时计算机经济犯罪也呈现愈演愈烈的势态 它
  • 稳定排序和不稳定排序

    选择排序 快速排序 希尔排序 堆排序不是稳定的排序算法 xff0c 而冒泡排序 插入排序 归并排序和基数排序是稳定的排序算法 首先 xff0c 排序算法的稳定性大家应该都知道 xff0c 通俗地讲就是能保证排序前2个相等的数其在序列的前后位
  • 程序员必备网站

    1 CSDN http www csdn net CSDN Chinese Software Developer Network 创立于1999年 xff0c 是中国最大的IT社区和服务平台 xff0c 为中国的软件开发者和IT从业者提供知
  • ora 01017问题解决办法

    SQL gt startup ORACLE instance started Total System Global Area 914358272 bytes Fixed Size 2088184 bytes Variable Size 5
  • 数据结构串的基本操作及KMP算法

    将串的基本操作C语言实现 xff0c 实现KMP算法算出NEXT函数和NEXTVAL的值 SqString h的基本内容 span class hljs keyword typedef span span class hljs keywor
  • JAVA经典面试题(来源于互联网)

    面向对象编程 xff08 OOP xff09 Java是一个支持并发 基于类和面向对象的计算机编程语言 下面列出了面向对象软件开发的优点 xff1a 代码开发模块化 xff0c 更易维护和修改 代码复用 增强代码的可靠性和灵活性 增加代码的
  • 规则绝对公平时,社会财富的流向谁?

    从知乎有一个很有趣的问题 xff1a 房间里有100个人 xff0c 每人都有100元钱 xff0c 如果每过一分钟 xff0c 每个人都要拿出一元钱随机给另一个人 xff0c 最后这100个人的财富分布是怎样的 xff1f 这个问题 xf
  • 2017程序员综合素质调研测试

    只要志愿选得好 xff0c 年年期末是高考 高等数学 线性代数 C语言 计算机导论 数据结构 离散数学 电子技术 C 43 43 程序设计 汇编语言程序设计 计算机组成原理 编译原理 操作系统 数据库原理 JAVA程序设计 Python 下
  • 机器学习非平衡数据集概述

    定义 xff1a 不平衡数据集 xff1a 在分类等问题中 xff0c 正负样本 xff0c 或者各个类别的样本数目不一致 研究不平衡类通常认为不平衡意味着少数类只占比10 20 实际上 xff0c 一些数据集远比这更不平衡 例如 xff1
  • 汇编语言32位加减乘除运算题

    用16位指令编制程序 xff0c 处理32位的加减乘除算术四则运算题 本文计算 xff08 3 X 43 Y Z xff09 5的值 值分别为 xff1a span class hljs built in x span dw span cl
  • 汇编语言字符串比较与查找

    答案仅供参考 xff0c 大家还是自己写比较好 汇编语言实现 用字符串处理指令编制程序 xff0c 处理字符串的比较和查找 xff0c 显示结果 要求 xff1a xff08 1 xff09 字符串的比较函数中 xff0c 一个字符串在数据
  • 汇编语言数据段查找ASCII码并回显

    实验要求 xff1a 在数据段预先存放16个十六进制的ASCII码 xff0c 首地址为ASC 从键盘输入一位十六进制数到BX xff0c 用ASC BX xff08 寄存器相对寻址 xff09 寻址方式找到对应数位的ASCII码 xff0
  • 汇编语言将正负数复制到不同的数组

    分离字数组ARRAY中的正 xff0c 负数 xff0c 把其中的正数复制到PDATA数组 xff1a 负数复制到NDATA数组 xff0c 并分别统计正 负数个数 DATAS SEGMENT array dw span class hlj
  • JAVA工程师最新面试题(来源于互联网)

    面向对象编程 xff08 OOP xff09 Java是一个支持并发 基于类和面向对象的计算机编程语言 下面列出了面向对象软件开发的优点 xff1a 代码开发模块化 xff0c 更易维护和修改 代码复用 增强代码的可靠性和灵活性 增加代码的
  • 关于内存溢出异常的查看以及解决办法

    内存溢出 又称为OOM OutOfMemoryError 处理内存溢出 首先要查看是否是由于内存泄露 Memory Leak 造成的内存溢出 Memory Overflow 可以使用内存影响分析工具 如 Eclipse Memory Ana
  • JAVA基本程序设计规范

    1 标识符是程序中用于命名诸如变量 常量 方法 类 包之类元素的名称 2 标识符是由字母 数字 下划线 和美元符号 构成的字符序列 标识符必须以字母或下划 开头 xff0c 不能以数字开头 标识符不能是保留字 标识符可以为任意长度 3 变量
  • 多目标优化问题概述

    图片不清楚请看多目标问题详解 xff1a 多目标问题详解 更多内容访问omegaxyz com 定义 xff1a 若干冲突或相互影响条件约束下在给定区域内寻找尽可能的最优解 xff08 非劣解 xff09 关键词 xff1a 条件约束 xf
  • NSGA2算法中文版详细介绍

    NSGA2主要是对NSGA算法的改进 NSGA是N Srinivas 和 K Deb在1995年发表的一篇名为 Multiobjective function optimization using nondominated sorting
  • 特征选择算法综述

    特征选择 xff08 feature selection xff09 作为一种常见的降维方法是模式识别的研究热点之一 它是指从原始特征集中选择使某种评估标准最优的特征子集 其目的是使选出的最优特征子集所构建的分类或回归模型达到和特征选择前近