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

sklearn.feature_selection.SelectFromModel模型筛选特征

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

1, 使用未训练的模型
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, 使用训练模型
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']

相关推荐

  1. Mojo模型特征选择:数据科学中的智能筛选艺术

    2024-01-05 23:34:03       24 阅读
  2. 利用tf-idf对特征进行提取

    2024-01-05 23:34:03       57 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-05 23:34:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-05 23:34:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-01-05 23:34:03       87 阅读
  4. Python语言-面向对象

    2024-01-05 23:34:03       96 阅读

热门阅读

  1. 大数据领域相关术语总结

    2024-01-05 23:34:03       50 阅读
  2. 关于一个web站点的欢迎页面

    2024-01-05 23:34:03       47 阅读
  3. 基于SpringBoot的旅游网站281

    2024-01-05 23:34:03       65 阅读
  4. 复选框checkbox的三种状态

    2024-01-05 23:34:03       57 阅读
  5. linux centos7根分区扩容

    2024-01-05 23:34:03       51 阅读
  6. c++ vector数组详细介绍

    2024-01-05 23:34:03       39 阅读
  7. python virtualenv 虚拟环境命令

    2024-01-05 23:34:03       42 阅读
  8. Django(六)

    2024-01-05 23:34:03       59 阅读
  9. 第六节 强制代码格式化规范

    2024-01-05 23:34:03       53 阅读
  10. 简易留言板功能

    2024-01-05 23:34:03       61 阅读
  11. 【SpringBoot】文件上传到阿里云

    2024-01-05 23:34:03       60 阅读
  12. uni-ui 版本升级提示做个记录

    2024-01-05 23:34:03       44 阅读