特征选择三板斧

特征工程是机器学习中的关键步骤,包括特征提取和特征选择。特征选择通过Filter(如方差、相关系数、卡方检验)、Wrapper(如RFE、前向/后向选择)和Embedding(如L1正则项、随机森林)等策略,降低维度、提升模型准确性和效率。在实际应用中,结合交叉验证和模型权重,能更有效地进行特征筛选。
摘要由CSDN通过智能技术生成

欢迎关注”生信修炼手册”!

Feature Engineering, 称之为特征工程,属于机器学习中数据预处理阶段的重要内容,细分为以下两大类内容

1. Feature Extraction, 特征提取,从文本,图像等原始数据中提取可以用于建模的特征

2. Feature Selection, 特征选择,从原始数据中的多维特征中筛选最优特征自己,达到降维,提升模型准确性,减少运行时间等效果

特征选择的策略可以分为以下3大类

1. Filter

根据某项指标的阈值对特征进行过滤,常见的有以下三种方法

1. 方差

2. 相关系数

3. 卡方检验

方差表征数据的发散程度,方差越大,数据分布越发散。对于分类数据而言,特征对应的数据分布越集中,对分类器的贡献越小,所以会删除方差较小的特征。在scikit-learn中,可以通过如下方式指定方差阈值,删除低方差对应的特征

>>> from sklearn.feature_selection import VarianceThreshold
>>> X = [[0, 0, 1], [0, 1, 0], [1, 0, 0], [0, 1, 1], [0, 1, 0], [0, 1, 1]]
>>> sel = VarianceThreshold(threshold=(.8 * (1 - .8)))
>>> sel.fit_transform(X)
array([[0, 1],
       [1, 0],
       [0, 0],
       [1, 1],
       [1, 0],
       [1, 1]])

相关系数表征两个连续性变量之间的线性相关性,比如经典的pearson相关系数,适用于两个服从高斯分布的连续变量,相关系数越接近0,两个变量的相关性越弱。对于回归类问题,可以根据自变量与因变量的相关性,去除相关系数低的特征。

卡方检验适用于两个离散型变量之间的关联程度,可以用于筛选分类问题中的离散自变量。

2. Wrapper

封装类的方法是将特征选择和机器学习模型合并到一起来考虑,通过迭代使用不同的特征组合来训练机器学习的模型,根据模型的效果来筛选对应的特征。根据迭代的方式,分为以下3类

1. 前向选择法,放入模型的特征依次增多,每次循环放入能最大限度提升模型效果的特征,直到任何特征都不能提升模型表现

2. 后向选择法,与前向选择法相反,第一次循环就放入所有特征,然后每次循环,剔除最不显著的特征,直到模型收敛

在实践中,最常用的是递归特征消除法,全称如下

recursive feature elimination

简称RFE,策略上属于后向选择,通过递归逐步减少特征来进行筛选。首先,采用所有特征进行训练,训练完成后每个特征对应一个权重,然后去掉权重最小的特征,用剩余的特征在进行训练,重复上述步骤,直到剩余的特征数量达到所需的特征数量。在scikit-learn中,使用RFE算法的代码如下

>>> from sklearn.datasets import make_friedman1
>>> from sklearn.feature_selection import RFE
>>> from sklearn.svm import SVR
>>> X, y = make_friedman1(n_samples=50, n_features=10, random_state=0)
>>> estimator = SVR(kernel="linear")
>>> selector = RFE(estimator, n_features_to_select=5, step=1)
>>> selector = selector.fit(X, y)
>>> selector.support_
ar
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值