特征选择

特征选择在数据预处理中扮演重要角色,有助于减轻维灾问题和降低学习难度。主要方法包括过滤式、包裹式和嵌入式。过滤式通过相关统计量或相关系数等度量选择特征;包裹式直接基于学习器性能选择;嵌入式如L1正则化在训练中自动选择特征。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在实际的项目中,数据的预处理对我们最后的结果也会产生很大的影响,其中特征选择就是一个很重要的预处理过程,从字面意思也就是说我们可能不会使用所有的属性放入模型中进行训练,而是选择一些与结果有着直接联系的重要属性放入模型中进行训练。

进行特征选择的原因:1.现实人物中我们经常遇到维灾问题,这就是属性过多而造成的,如果能够从所有属性中选择出重要的特征,这样我们只需要在一部分特征上构建模型,那么维灾问题就会大为减轻;2.第二个原因就是,去除一些不相关的特征往往会降低学习任务的难度。

注意:在特征选择的过程中必须确保不会丢失重要特征

常见的特征选择方法大致可以分成三类:过滤式、包裹式和嵌入式

过滤式选择

过滤式选择就是对初始特征进行“过滤”,再用过滤后的特征来训练模型。Relief是一种著名的过滤式特征选择方法,该方法设计了一个“相关统计量”来度量特征的重要性。如此一来越重要的特征就留下,不重要的特征就过滤掉。

相关统计量:该统计量是一个向量,其中每个分量分别对应于一个初始特征,而特征子集的重要性则由子集中每个特征所对应的相关统计分量之和来决定,因此,最终只需要指定一个阈值\tau,然后选择比\tau大的相关统计分量所对应的特征即可;也可以指定预选取得特征个数k,然后选择相关统计量分量最大的k个特征。

那么如何确定相关统计量?

给定训练集\{\textbf{(x}_1,y_1),(\textbf{x}_2,y_2),...,(\textbf{x}_m,y_m)\},对每个示例\textbf{x}_i的同类样本中寻找其最近邻\textbf{x}_{i,nh},称为“猜中近邻”,再从\textbf{x}_i的异类样本中寻找其最近邻\textbf{x}_{i,nm},称为“猜错近邻”,然后,相关统计量对于属性j的分量为

其中x_a^j表示样本\textbf{x}_a在属性j上的取值,diff(x_a^j,a_b^j)取决于属性j的类型:若属性j为离散型,则x_a^j=x_b^jdiff(x_a^j,x_b^j)=0,否则为1;若属性j为连续型,则diff(x_a^j,x_b^j)=|x_a^j-x_b^j|,注意x_a^j,x_b^j已经规范化到[0,1]区间。

可以看到,如果\textbf{x}_i与其猜中近邻\textbf{x}_{i,nh}在属性j上的距离小于\textbf{x}_i与其猜错近邻\textbf{x}_{i,nm}的距离,上面的式子为正数并且前一个距离越小于后面一项的距离,上述式子的值也就越大,说明属性j对区分同类与异类样本是有益的;反之,如果\textbf{x}_i与其猜中近邻\textbf{x}_{i,nh}在属性j上的距离大于\textbf{x}_i与其猜错近邻\textbf{x}_{i,nm}的距离,上面的式子为负数并且前一个距离越大于后面一项的距离,上述式子的值也就越小,说明属性j对区分同类与异类样本是起负面作用的。

过滤式特征选择:该方法的时间开销随着采样次数和原始特征线性增长,是一个运行效率很高的过滤式特征选择算法。

其实我们不一定选择“相关统计量”来度量特征的重要性,还可以使用相关系数(主要用于输出值为连续值的监督学习算法中),分别计算所有特征与输出值之间的相关系数,相关性系数越大,说明特征越重要,那我们可以选择相关系系数排列在前k位的特征后者也设定一个阈值,只要相关性系数超过这个阈值,我们就认为是重要特征。我们之前的博文中提到过决策树,里面对属性划分采用过信息增益作为划分标准,也可以从这个角度来分析各个特征和输出值之间的关系评分,信息增益越大,说明特征与输出值之间的相关性越大,在sklearn中,可以使用mutual_info_classif(分类)和mutual_info_regression(回归)来计算各个输入特征和输出值之间的互信息。在过滤式特征选择中,我们不考虑后续的学习器,而是直接根据数据本身来判断哪些特征可以被保留下来。

包裹式选择

与过滤式特征选择不考虑后续学习器不同,包裹式特征选择直接把最终将要使用的学习器的性能作为特征子集的评价标准。也就是说,包裹式特征选择的目的就是为给定学习器选择最有利于其性能的特征子集。

因为包裹式特征选择方法直接针对给定学习器进行优化,因此从最终学习器性能来看,包裹式特征选择比过滤式特征选择更好,但是在另一个方面,由于在特征选择过程中需要多次训练学习器,因为包裹式特征选择的计算开销通常比过滤式特征选择大得多。

LVW是一个典型的包裹式特征选择方法,它在拉斯维加斯方法框架下使用随机策略来进行子集搜索,并且以最终分类器的误差为特征子集评价准则。也就是说这种方法是选择一个目标函数来一步步的筛选特征。假设我们是在一个线性回归任务中,我们最开始把所有的特征(n个)都用作线性回归,这样我们就得到了一个函数,其中每个特征都对应了一个权重w,我们都知道,在拟合好的线性回归函数函数中,权重越小,说明对应的特征越不重要,这样一来,我们就可以删除对应权重最小的那个特征,然后选择剩下的n-1个特征再进行线性回归模型的训练,然后再按照上面删除一个特征,以此类推,直到剩下的特征数满足我们的需求。

嵌入式选择与L1正则化

在过滤式和包裹式特征选择方法中,特征选择过程与学习器训练过程有明显的区别;与此不同,嵌入式特征选择是将特征选择过程与学习器训练过程融为一体,两者在同一个优化过程中完成,即在学习器训练过程中自动地进行了特征选择。

给定数据集D=\{\textbf{(x}_1,y_1),(\textbf{x}_2,y_2),...,(\textbf{x}_m,y_m)\},其中x\in \mathbb{R}^d,y\in \mathbb{R},我们考虑最简单的线性回归模型,以平方误差为损失函数,则优化目标为:

当样本特征很多,而样本数相对较少的时候,很容易陷入过拟合,为了缓解过拟合问题,对优化目标加入正则化,如果使用L2范数正则化,则有:

其中正则化参数\lambda > 0,这就是“岭回归”,通过引入L2范数正则化,能够显著降低过拟合风险。

以此类推,将正则化中的L2范数替换为Lp范数,令p=1,那么就是采用的L1范数:

同样\lambda > 0,这就是LASSO回归。

L1和L2范数都有助于降低过拟合风险,但是前者还会带来一个额外的好处,它比后撤更加容易获得“稀疏”解,它求的权重w会有更少的非零分量。

注意到w取得稀疏解意味着初始的d个特征中仅有对应着w的非零分量的特征才会出现在最终模型中,于是,求解L1范数正则化的结果是得到了仅仅采用一部分初始特征的模型,换言之基于L1正则化的学习方法就是一种嵌入式特征选择方法,其特征选择过程与学习器训练过程融为一体,同时为完成。

在数据挖掘竞赛中选择什么样的模型是很关键的,但是在选择什么样的模型之前,特征的选择对模型最后的结果至关重要,这就是要多实战才能得到属于自己的baseline。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值