sklearn.feature_selection.SelectFromModel利用模型筛选特征

sklearn.feature_selection.SelectFromModel模型筛选特征

以随机森林为例,查看随机森林之类的模型使用的特征。有两种使用方式:

1, 使用未训练的模型
python 复制代码
from sklearn.feature_selection import SelectFromModel
from sklearn.ensemble import RandomForestClassifier
X = [[ 0.87, -1.34,  0.31 ],
     [-2.79, -0.02, -0.85 ],
     [-1.34, -0.48, -2.55 ],
     [ 1.92,  1.48,  0.65 ]]
y = [0, 1, 0, 1]

# 输入参数包括estimator, threshold:筛选阈值, prefit=False:是否训练过,max_features:最大特征数
selector = SelectFromModel(estimator=LogisticRegression(), threshold=0.5).fit(X, y)

# 筛选的特征的阈值
selector.threshold_ # 0.5

# 特征支持的布尔表
selector.get_support() # array([False,  True, False])

# 对输入进行特征筛选
X_new = selector.transform(X)

# 查看筛选出的特征名称,需要给出特征的名称列表,如果是pandas,就可以输入x.columns
selector.get_feature_names_out(['a', 'b', 'c']) # ['b']
2, 使用训练模型
python 复制代码
from sklearn.feature_selection import SelectFromModel
from sklearn.ensemble import RandomForestClassifier
X = [[ 0.87, -1.34,  0.31 ],
     [-2.79, -0.02, -0.85 ],
     [-1.34, -0.48, -2.55 ],
     [ 1.92,  1.48,  0.65 ]]
y = [0, 1, 0, 1]


rfc = rfc=RandomForestClassifier(n_estimators=9, max_depth=6,random_state=9)
rfc.fit(X, y)
selector = SelectFromModel(rfc, prefit=True)

# 筛选的特征的阈值
selector.threshold_ # 0.55249

# 特征支持的布尔表
selector.get_support() # array([False,  True, False])

# 对输入进行特征筛选
X_new = selector.transform(X)

# 查看筛选出的特征名称,需要给出特征的名称列表,如果是pandas,就可以输入x.columns
selector.get_feature_names_out(['a', 'b', 'c']) # ['b']
相关推荐
badhope3 分钟前
最小二乘与最速下降法实战解析
人工智能·机器学习·plotly·github·matplotlib
Zero6 分钟前
机器学习线性代数--(13)小结:从线性代数到机器学习
线性代数·机器学习
剑穗挂着新流苏31210 分钟前
116_深度学习提速:PyTorch 利用 GPU 训练的全攻略
人工智能·pytorch·深度学习·神经网络
未来之窗软件服务12 分钟前
BERT-tiny语音意图识别用[AI人工智能(六十三)]—东方仙盟
人工智能·深度学习·bert·仙盟创梦ide·东方仙盟
人邮异步社区15 分钟前
大一学生如何入门机器学习,深度学习,学习顺序如何?
深度学习·学习·机器学习
MicroTech202526 分钟前
微算法科技(NASDAQ: MLGO)使用机器学习保障量子安全下区块链高效可用
科技·算法·机器学习
jay神34 分钟前
基于YOLOv8的无人机识别与检测系统
人工智能·深度学习·yolo·目标检测·毕业设计·无人机
智算菩萨36 分钟前
音频处理基础理论:从物理声波到数字信号完整知识体系
算法·机器学习·电脑·音视频
serve the people36 分钟前
BERT模型
人工智能·深度学习·bert
绒绒毛毛雨2 小时前
On the Plasticity and Stability for Post-Training Large Language Models
人工智能·机器学习·语言模型