第十一章 特征选择

2024-04-08 11:08
文章标签 第十一章 特征选择

本文主要是介绍第十一章 特征选择,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、简述特征选择的目的。

特征选择是一个重要的“数据预处理”过程,在现实机器学习任务中,获得数据之后通常先进行特征选择,此后再训练学习机器。我们进行特征选择主要有以下两个重要目的:

  • 减轻维数灾难
    我们在现实任务中经常会遇到维数灾难问题,这是由于属性过多而造成的,若能从中选择出重要的特征,使得后续学习过程仅需在一部分特征上构建模型,则维数灾难问题会大为减轻。从这个意义上来说,特征选择与第十章介绍的降维有相似的动机。
  • 降低学习任务的难度
    去除不相关的特征往往会降低学习任务的难度,这就像侦探破案一样,若将纷繁复杂的因素抽丝剥茧,只留下关键因素,则真相往往更易看清。

2、试比较特征选择与第十章介绍的降维方法的异同。

降维和特征选择都是为了使数据维度降小。但实际上两者的区别是很大,他们的本质是完全不同的。下面着重说说两者的区别:

  1. 降维
    降维本质上是从一个维度空间映射到另一个维度空间,特征的多少并没有减少,当然在映射的过程中特征值也会相应的变化。举个例子,现在的特征是1000维,我们想要把它降到500维。降维的过程就是找个一个从1000维映射到500维的映射关系。原始数据中的1000个特征,每一个都对应着降维后的500维空间中的一个值。假设原始特征中有个特征的值是9,那么降维后对应的值可能是3。
  2. 特征选择
    特征选择就是单纯地从提取到的所有特征中选择部分特征作为训练集特征,特征在选择前和选择后不改变值,但是选择后的特征维数肯定比选择前小,毕竟我们只选择了其中的一部分特征。举个例子,现在的特征是1000维,现在我们要从这1000个特征中选择500个,那个这500个特征的值就跟对应的原始特征中那500个特征值是完全一样的。对于另个500个没有被选择到的特征就直接抛弃了。假设原始特征中有个特征的值是9,那么特征选择选到这个特征后它的值还是9,并没有改变。

3、特征选择根据选择策略可以分为哪几类,分别说明其特点。

  • 过滤式选择
    过滤式方法就是先对数据集进行特征选择,然后再训练学习器。特征选择过程与后续学习器无关,这相当于先对初始特征进行“过滤”,再用过滤后的特征训练模型。
    过滤式选择的方法有:
    1.移除低方差的特征;
    2.相关系数排序,分别计算每个特征与输出值之间的相关系数,设定一个阈值,选择相关系数大于阈值的部分特征;
    3.利用假设检验得到特征与输出值之间的相关性,方法有比如卡方检验、t检验、F检验等。
    4.互信息,利用互信息从信息熵的角度分析相关性。

  • 包裹式选择
    包裹式从初始特征集合中不断的选择特征子集,训练学习器,根据学习器的性能来对子集进行评价,直到选择出最佳的子集。包裹式特征选择直接针对给定学习器进行优化。
    优点:从最终学习器的性能来看,包裹式比过滤式更好;
    缺点:由于特征选择过程中需要多次训练学习器,因此包裹式特征选择的计算开销通常比过滤式特征选择要大。

  • 嵌入式选择
    嵌入式特征选择将特征选择和学习器训练过程融为一体了,二者在同一个优化过程中完成,在学习器训练的过程中也自动地进行特征选择。
    其主要思想是:在确定模型的过程中,挑选出那些对模型的训练有重要意义的属性。

4、试写出Relief-F的算法描述。

Relief算法简单且运行效率高,但是其只能处理两类别数据,改进的Relief-F算法,可以处理多类别问题。Relief-F算法在处理多类问题时,每次从训练样本集中随机取出一个样本R,然后从和R同类的样本集中找出R的k个近邻样本(near Hits),从每个R的不同类的样本集中均找出k个近邻样本(near Misses),然后更新每个特征的权重,如下式所示:
W ( A ) = W ( A ) − ∑ j = 1 k d i f f ( A , R , H j ) / ( m k ) + ∑ C ∉ c l a s s ( R ) [ p ( C ) 1 − p ( c l a s s ( R ) ) ∑ j = 1 k d i f f ( A , R , M j ( C ) ) ] / ( m k ) W(A)=W(A)-\sum_{j=1}^{k}diff(A,R,H_j)/(mk)+\sum_{C\notin class(R)}[\frac{p(C)}{1-p(class(R))}\sum_{j=1}^{k}diff(A,R,M_j(C))]/(mk) W(A)=W(A)j=1kdiff(A,R,Hj)/(mk)+C/class(R)[1p(class(R))p(C)j=1kdiff(A,R,Mj(C))]/(mk)
上中 d i f f ( A , R 1 , R 2 ) diff(A,R_1,R_2) diff(A,R1,R2)代表样本 R 1 R_1 R1 R 2 R_2 R2在特征 A A A上的差, M j ( C ) M_j(C) Mj(C)表示类 C ∉ c l a s s ( R ) C\notin class(R) C/class(R)中第 j j j个最近邻样本,如下式:
d i f f ( A , R 1 , R 2 ) = { ∣ R 1 [ A ] − R 2 [ A ] ∣ m a x ( A ) − m i n ( A ) if A is continuous 0 if A is discrete and  R 1 [ A ] ≠ R 2 [ A ] 1 if A is discrete and  R 1 [ A ] = R 2 [ A ] diff(A,R_1,R_2)=\left\{ \begin{array}{rcl} \frac{|R_1[A]-R_2[A]|}{max(A)-min(A)} & &\text{if A is continuous} \\ 0 & & \text{if A is discrete and $R_1[A]\neq R_2[A]$}\\ 1 && \text{if A is discrete and $R_1[A]= R_2[A]$} \end{array} \right. diff(A,R1,R2)=max(A)min(A)R1[A]R2[A]01if A is continuousif A is discrete and R1[A]=R2[A]if A is discrete and R1[A]=R2[A]
权重意义在于, 减去相同分类的该特征差值, 加上不同分类的该特征的差值。(若该特征与分类有关,则相同分类的该特征的值应该相似, 而不同分类的值应该不相似).

5、试描述过滤式和包裹式选择方法的基本框架。

过滤式选择是先设计一个过滤方法进行特征选择,再去训练学习器。而这个过滤方式是设计一个“相关统计量”,去对特征进行计算,最后设定一个阈值去进行选择。相关统计量计算:对于每个样本 x i x_i xi,他都会做以下事情:找出同类中,最邻近的样本 x 1 x_1 x1 ;在异类中,找出最邻近的 x 2 x_2 x2 。如果 x i x_i xi x 1 x_1 x1 更近,说明特征是对同类异类有益的,会增大相对应的统计量;反之,如果 x i x_i xi x 2 x_2 x2 更近,说明特征起到副作用,会减少相对应的统计量。如下图所示:
在这里插入图片描述
2.包裹式选择法的特征选择过程与学习器相关,它直接使用学习器的性能作为特征选择的评价准则,选择最有利于学习器性能的特征子集。如下图所示:

在这里插入图片描述

这篇关于第十一章 特征选择的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/885411

相关文章

行政组织理论-第十一章:创建学习型组织

章节章节汇总第一章:绪论第二章:行政组织的演变第三章:科层制行政组织理论第四章:人本主义组织理论第五章:网络型组织理论第六章:行政组织目标第七章:行政组织结构第八章:行政组织体制第九章:行政组织设置与自身管理第十章:组织激励第十一章:创建学习型组织第十二章:政府再造流程第十三章:行政组织变革 目录 第一节 学习型组织理论的产生1. 学习型组织的源起2. 学习型组织的定义3. 学习型组织与组

【ML--05】第五课 如何做特征工程和特征选择

一、如何做特征工程? 1.排序特征:基于7W原始数据,对数值特征排序,得到1045维排序特征 2. 离散特征:将排序特征区间化(等值区间化、等量区间化),比如采用等量区间化为1-10,得到1045维离散特征 3. 计数特征:统计每一行中,离散特征1-10的个数,得到10维计数特征 4. 类别特征编码:将93维类别特征用one-hot编码 5. 交叉特征:特征之间两两融合,x+y、x-y、

结合sklearn说一下特征选择

特征选择(排序)对于数据科学家、机器学习从业者来说非常重要。好的特征选择能够提升模型的性能,更能帮助我们理解数据的特点、底层结构,这对进一步改善模型、算法都有着重要作用。 特征选择主要有两个功能: 减少特征数量、降维,使模型泛化能力更强,减少过拟合增强对特征和特征值之间的理解 拿到数据集,一个特征选择方法,往往很难同时完成这两个目的。通常情况下,我们经常不管三七二十一,选择一种自己最熟悉或者

特征离散和特征选择

连续特征的离散化:在什么情况下将连续的特征离散化之后可以获得更好的效果? Q:CTR预估,发现CTR预估一般都是用LR,而且特征都是离散的。为什么一定要用离散特征呢?这样做的好处在哪里? A: 在工业界,很少直接将连续值作为逻辑回归模型的特征输入,而是将连续特征离散化为一系列0、1特征交给逻辑回归模型,这样做的优势有以下几点: 0、 离散特征的增加和减少都很容易,易于模型的快速迭代。(离散

特征选择错误:The classifier does not expose coef_ or feature_importances_ attributes

在利用RFE进行特征筛选的时候出现问题,源代码如下: from sklearn.svm import SVRmodel_SVR = SVR(C=1.0, cache_size=200, coef0=0.0, degree=3, epsilon=0.1, gamma='auto',kernel='rbf', max_iter=-1, shrinking=True, tol=0.001, verb

第十一章 创建和使用策略 - 在运行时指定策略

文章目录 第十一章 创建和使用策略 - 在运行时指定策略在运行时指定策略抑制不支持的策略的编译错误编辑生成的策略 第十一章 创建和使用策略 - 在运行时指定策略 在运行时指定策略 对于 IRIS Web 客户端,可以指定运行时要使用的策略;这将覆盖任何策略配置类。要在运行时指定策略,请设置 Web 客户端实例的 PolicyConfiguration 属性。该值必须具有以下形

第十一章 rust中宏的使用

注意 本系列文章已升级、转移至我的自建站点中,本章原文为:rust中宏的使用 目录 注意一、前言一、前言二、基本使用1.声明式宏2.过程式宏 一、前言 一、前言 rust中的宏与C/C++中的宏是非常不一样的存在,C/C++中的宏仅仅只是简单的“文本替换”而已,而rust中的宏却可以被应用在“语法树”(token tree)上。 所谓“语法树”,是编译器根据该语言的语

智能优化特征选择|基于鲸鱼WOA优化算法实现的特征选择研究Matlab程序(XGBoost分类器)

智能优化特征选择|基于鲸鱼WOA优化算法实现的特征选择研究Matlab程序(XGBoost分类器) 文章目录 一、基本原理鲸鱼智能优化特征选择流程 二、实验结果三、核心代码四、代码获取五、总结 智能优化特征选择|基于鲸鱼WOA优化算法实现的特征选择研究Matlab程序(XGBoost分类器) 一、基本原理 当然,这里是鲸鱼智能优化算法(WOA)与XGBoost分类器结

Python核心编程(第二版) 第十一章 习题答案

已放在我的GitHub:https://github.com/Jonariguez/Core_Python_Programing_Exercises_Answers 函数和函数式编程 11-1 def countToFour1():for eachNum in range(5):print eachNum,def countToFour2(n):for eachNum in range(n,

基于SHAP进行特征选择和贡献度计算——可解释性机器学习

方法介绍 SHAP(SHapley Additive exPlanations)是一个 Python 包,旨在解释任何机器学习模型的输出。SHAP 的名称源自合作博弈论中的 Shapley 值,它构建了一个加性的解释模型,将所有特征视为“贡献者”。对于每个预测样本,模型会产生一个预测值,而 SHAP 值则表示该样本中每个特征的贡献度。 假设第i个样本为Xi,第i个样本的第j个特征为Xij,模型