特征选择

article/2025/11/5 16:03:41

一、特征选择基本问题

我们将属性称为“特征”(feature),对当前学习任务有用的属性称为“相关特征”(relevant feature)、没什么用的属性称为“无关特征”(irrelevant feature)。

从给定的特征集合中选择出相关特征子集的过程,称为“特征选择”(feature select)。

1-1、为什么要进行特征选择

第一,为了处理维数灾难(减轻维数灾难的另一种方法是降维);

第二,去除不相关特征往往会降低学习任务的难度。

对于同样的数据集,若学习任务不同,则相关特征很有可能不同,因此,特征选择中所谓的“无关特征”是指与当前学习任务无关。

 

冗余特征(redundant feature):该类特征所包含的信息能从其他特征中推演出来。例如,考虑立方体对象,若已有特征“底面长”、“底面宽”,则“底面积”是冗余特征。

冗余特征在很多时候不起作用,去除它们会减轻学习过程的负担。但有时冗余特征会降低学习任务难度,例如学习目标是估算立方体的体积,则“底面积”这个冗余特征的存在

使得体积的估算更容易;更确切地说,若某个冗余特征恰好对应了完成学习任务所需的“中间概念”,则该冗余特征是有益的。

1-2、子集搜索与评价

子集搜索(subset search):给定特征集合{a1,a2,...,ad}。

前向搜索:将每个特征看做一个候选子集,对这d个候选单特征自己进行评价。

从单特征子集开始逐渐增加特征,每次增加一个特征,使得每次增加特征后的子集优于之前的子集,直到最优的候选子集不如前一轮的子集时,停止增加子集。

后向搜索:从完整的特征集开始,每次尝试去掉一个无关特征。

 

子集评价(subset evaluation):

判断两个不同子集哪个较优可以通过信息增益(两次信息熵的差值)来判断。信息增益越大,意味着特征子集包含的有助于分类的信息越多。

 

将前向搜索与信息熵的子集评价结合,即与决策树算法十分相似。

事实上,决策树(基于树的分类器)可以用于特征选择,树结点的划分属性所组成的集合就是选择出的特征子集。

二、特征选择的主要方法

2-1、过滤式(Filter)

过滤式方法先对数据集进行特征选择,然后再训练学习器,特征选择过程与后续学习器无关。

其主要思想是为每一个特征计算一个权重,这样的权重就代表着该维特征的重要性,然后依据权重排序。

主要的方法有:Relief(Relevant Features)。

2-2、包裹式(Wrapper)

与过滤式特征选择不考虑后续学习器不同,包裹式特征选择直接把最终将要使用的学习器的性能作为特征子集的评价准则。

从最终学习器性能来看,包裹式特征选择比过滤式特征选择更好,但是计算开销也大的多。

 其主要思想是将子集的选择看作是一个搜索寻优问题,生成不同的组合,对组合进行评价,再与其他的组合进行比较。

这样就将子集的选择看作一个优化问题,这里有很多的优化算法可以解决,尤其是一些启发式的优化算法。

主要方法有:LVW(Las Vegas Wrapper)。

2-3、嵌入式(Embedding)

在过滤式和包裹式特征选择方法中,特征选择过程与学习器训练过程有明显区别;

而嵌入式特征选择是将特征选择过程与学习器训练过程融为一体,两者在同一个优化过程中完成,即在学习器训练过程中自动地进行了特征选择。

其主要思想是:在模型既定的情况下学习出对提高模型准确性最好的属性。即在确定模型的过程中,挑选出那些对模型的训练有重要意义的属性。

主要方法有:岭回归(ridge regression),岭回归就是在基本线性回归的过程中加入了L2正则项。

 

将L2正则项换成L1正则项时,称为LASSO。

 

L1范数(模)和L2范数(模)正则化都有助于降低过拟合风险,但前者还会带来“稀疏解”,即它求得的w会有更少的非零分量。

直观的例子如下:假定数据集仅有两个属性,因此求解得到的w也只有两个分量,即w1,w2,我们将其作为两个坐标轴,然后绘制上面两个式子的“等值线”,

即在(w1,w2)空间中平方误差项取值相同的点的连线,再分别绘制L1范数和L2范数的等值线。

从图可知,使用L1范数时平方误差项等值线与正则化等值线的交点常出现在坐标轴上,即w1或w2为0;而采用L2范数时,两者的交点常出现在某个象限中,即w1和w2均非0.

因此,L1范数比L2范数更易于得到系数解。

参考文献

 [1]. 周志华. 机器学习[M]. Qing hua da xue chu ban she, 2016.

 [2]. 机器学习之特征选择

 [3].几种常用的特征选择方法

转载于:https://www.cnblogs.com/kamekin/p/9697253.html


http://chatgpt.dhexx.cn/article/uhSDit43.shtml

相关文章

特征选择(筛选特征)

根据特征选择的形式可以将特征选择方法分为3种: Filter:过滤法,按照发散性或者相关性对各个特征进行评分,设定阈值或者待选择阈值的个数,选择特征。Wrapper:包装法,根据目标函数(通常…

机器学习 基础理论 学习笔记 (8)特征选择(feature selection)(一)

0.说明 本文也许比较乱,请看目录再食用。 后续会 出文 机器学习 基础理论 学习笔记 (8)特征选择(feature selection)(二) 将 分类问题 和 回归问题 分开总结。 以及或将出文 机器学习 基础理…

三种常见的特征选择方法

特征选择 特征选择是特征工程里的一个重要问题,其目标是寻找最优特征子集。特征选择能剔除不相关(irrelevant)或冗余(redundant )的特征,从而达到减少特征个数,提高模型精确度,减少运行时间的目的。并且常能听到“数据和特征决定…

特征选择方法最全总结!

上个月扫读完《阿里云天池大赛赛题解析》[1]后,看到书中对特征选择的讲述,于是便打算借此机会,系统梳理下各种特征选择方法。如有不足,还望指正。 一、背景介绍 在处理结构型数据时,特征工程中的特征选择是很重要的一个…

运行时错误 '-2147467259 (80004005)'

运行时错误 -2147467259 (80004005)方法 getFooterColor 作用于对象 IFPLayoutRegion 时失败遇到这样的错误主要是因为在 VBA 访问布局表格时,没有启用表尾。解决方法:在布局表格设置中启用表尾。注:同样的错误和解决方法也适用于表首。

win12服务器之常见错误:运行时错误(/应用程序中的服务器错误)

阿里云解答参考&#xff1a;https://www.cnblogs.com/xrtd/p/3704532.html 原因1: 这是由于配置中 Asp.Net 程序 没有显示详细的错误信息. 解决: 您必须修改 web.config 文件 将 <customErrors mode"On"/> 设置为mode "Off", 上传到网站根目录.然后…

问题:当运行exe程序时遇到错误0000007时如何解决

这里我是需要用的一个DDS库安装程序&#xff0c;但是经过一系列安装操作后&#xff0c;最后一步验证是否成功时出现了问题&#xff1a; 点击 该exe应用程序提示&#xff1a;应用程序错误0xc000007b 给出我使用后成功了的解决方法&#xff1a; 首先下载All in One Runtimes 简…

C++编译错误与运行时错误

笔试题里经常会有这样的题目&#xff0c;让你判断运行时错误还是编译错误。在这里将它总结一下。 在调试过程中&#xff0c;运行时错误是最麻烦的问题。因为编译错误可以由编译器检查出来&#xff0c;而大多数编译器对运行时错误却无能为力。查错和纠错的工作完全由用户自己来…

下面的程序运行时哪里会出现错误

1、下面的程序运行时哪里会出现错误&#xff1a;struct S { int i; int * p; }; int main() { S s; int * p &s.i; p[0] 4; p[1] 3; s.p p; s.p[1] 1; s.p[0] 2; return 0; } 【题目解析】 这道题考的是对结构体内存使用情况的理解。在32位的操作系统中&#xff0c;i…

Word粘贴文字时遇到报错:运行时错误‘53’:文件未找到:mathpage.WLL 解决方案

Word粘贴文字时遇到报错&#xff1a; 运行时错误‘53’&#xff1a; 文件未找到&#xff1a;mathpage.WLL 问题&#xff1a; 每次装完MathType后&#xff0c;在word里面进行粘贴操作时&#xff0c;总是出现“运行时错误‘53’&#xff1a;文件未找到&#xff1a;MathPage.WLL…

MathType 运行时错误‘53’:文件未找到:MathPage.WLL

问题描述 环境 MathType7.4Microsoft Office 365Windows 11 问题 情景1. Microsoft Word 启动时显示 Please reload Word to load MathType addin properly 情景2. 安装MathType后在 Microsoft Word 中使用复制粘贴时报错 运行时错误‘53’ 情景3. 在 Microsoft Word 中使…

JAVA的编译时错误和运行时错误

1. 要区分编译时错误和运行时错误&#xff0c;就应该先明白什么是编译&#xff1f;什么是运行&#xff1f; 首先&#xff0c;先看一下这张图&#xff1a; 编译期就是将我们写的java源代码交给编译器执行的过程&#xff0c;起翻译的作用&#xff0c;该过程主要对java源代码的…

【Word】MathType 运行时错误‘53’:文件未找到:MathPage.WLL

问题描述 1. 环境&#xff1a; MathType7.4Microsoft Office 365Windows 11 2. 问题 情景1. Microsoft Word 启动时显示 Please reload Word to load MathType addin properly 情景2. 安装MathType后在 Microsoft Word 中使用复制粘贴时报错 运行时错误‘53’ 情景3. 在 M…

运行程序报错怎么办?

Dev c中常见的报错有几种 一. ld return 1 exit status 这种报错是最常见的&#xff0c;下面是可能的原因 1.库函数拼写错误。如&#xff1a;printf&#xff0c;scanf,等 2.定义的函数名在调用时&#xff0c;函数名拼写错误&#xff08;这个主要自定义函数啊啥的可能比较多…

java clh队列_J.U.C|同步队列(CLH)

一、写在前面 在上篇我们聊到AQS的原理&#xff0c;具体参见《J.U.C|AQS原理》。 这篇我们来给大家聊聊AQS中核心同步队列(CLH)。 二、什么是同步队列(CLH) 同步队列 一个FIFO双向队列&#xff0c;队列中每个节点等待前驱节点释放共享状态(锁)被唤醒就可以了。 AQS如何使用它&a…

Java CLH队列

一、SMP和NUMA简要介绍 1.1 SMP SMP&#xff08;Symmetric MultiProcessing&#xff09;对称多处理是一种包括软硬件的多核计算机架构&#xff0c;会有两个或以上的相同的核心共享一块主存&#xff0c;这些核心在操作系统中地位相同&#xff0c;可以访问所有I/O设备。它的优点…

AQS-CLH同步队列

1:什么是同步队列&#xff08;CLH&#xff09; 同步队列 一个FIFO双向队列&#xff0c;队列中每个节点等待前驱节点释放共享状态&#xff08;锁&#xff09;被唤醒就可以了。 AQS如何使用它&#xff1f; AQS依赖它来完成同步状态的管理&#xff0c;当前线程如果获取同步状态…

java clh_【死磕Java并发】-J.U.C之AQS:CLH同步队列 - Java 技术驿站-Java 技术驿站

在上篇博客【死磕Java并发】-----J.U.C之AQS&#xff1a;AQS简介中提到了AQS内部维护着一个FIFO队列&#xff0c;该队列就是CLH同步队列。 CLH同步队列是一个FIFO双向队列&#xff0c;AQS依赖它来完成同步状态的管理&#xff0c;当前线程如果获取同步状态失败时&#xff0c;AQS…

J.U.C之AQS:CLH同步队列

此篇博客所有源码均来自JDK 1.8 在上篇博客中提到了AQS内部维护着一个FIFO队列&#xff0c;该队列就是CLH同步队列。 CLH同步队列是一个FIFO双向队列&#xff0c;AQS依赖它来完成同步状态的管理&#xff0c;当前线程如果获取同步状态失败时&#xff0c;AQS则会将当前线程已经等…

CLH Lock 原理

背景 SMP(Symmetric Multi-Processor) 对称多处理器结构&#xff0c;它是相对非对称多处理技术而言的、应用十分广泛的并行技术。在这种架构中&#xff0c;一台计算机由多个CPU组成&#xff0c;并共享内存和其他资源&#xff0c;所有的CPU都可以平等地访问内存、I/O和外部中断…