wrapper定义
Wrapper:包装法,根据目标函数(通常是预测效果评分),每次选择若干特征,或者排除若干特征。
- 包装法需要结合后续选择的机器学习算法,一起选择出能使最终算法达到较高性能的特征子集。
- 根据目标函数,每次选择部分特征,或者排除部分特征。
- 常用包装法:
递归特征消除法:
- 简称RFE,使用一个基模型来进行多轮训练,每轮训练后,移除若干权值系数的特征,再基于新的特征集进行下一轮训练。
- 对特征含有权重的预测模型(例如,线性模型对应参数coefficients),RFE通过递归减少考察的特征集规模来选择特征。预测模型在原始特征上训练,每个特征指定一个权重,随后那些拥有最小绝对值权重的特征会被踢出特征集。如此往复递归,直至剩余的特征数量达到所需的特征数量。
RFE具体思路: - 指定一个有n个特征的数据集。
- 选择一个算法模型来做RFE的基模型。
- 指定保留的特征数量 k(k<n)。
- 第一轮对所有特征进行训练,算法会根据基模型的目标函数给出每个特征的
“得分”或排名,将最小“得分”或排名的特征剔除,这时候特征减少为n-1,对其进行第二轮训练,持续迭代,直到特征保留为k个,这k个特征就是选择的特征。
实例
数据集:
利用递归特征消除法(RFE)选择特征
from sklearn.feature_selection import RFE
from sklearn.linear_model import LogisticRegression
x_rfe=RFE(estimator=LogisticRegression(), n_features_to_select=3).fit(X, y