算法简述

ExtraTrees(极度随机树),与随机森林(Random Forest)是一样的,都是决策树的集成模型,区别在于:分叉的方式

  • 随机森林依据Gini或信息熵
  • ExtraTrees是随机,没错纯随机,随机的特征构建边,随机的阈值来分叉

在筛选特征时也可以使用随机森林,但是在容易过拟合的情况下纯随机的ExtraTrees表现会更好,因为无形中表示:在随机的场景下(模拟未知分布的测试集)某些特征仍旧表示出强势的区分度,证明这个特征很重要

示例代码

import pandas as pddef load_data():"""用来生成训练、测试数据"""from sklearn.datasets import make_classificationdata_x, data_y = make_classification(n_samples=1000, n_classes=4, n_features=10, n_informative=8)df_x = pd.DataFrame(data_x, columns=['f_1', 'f_2', 'f_3', 'f_4', 'f_5', 'f_6', "f_7", "f_8", "f_9", "f_10"])df_y = pd.Series(data_y)return df_x, df_ydef select_from_model(x_data, y_data):from sklearn.feature_selection import SelectFromModelfrom sklearn.ensemble import ExtraTreesClassifier# 使用ExtraTrees作为特征筛选的依据sf_model: SelectFromModel = SelectFromModel(ExtraTreesClassifier())sf_model.fit(x_data, y_data)print("建议保留的特征: ", x_data.columns[sf_model.get_support()])print("特征重要性:", sf_model.estimator_.feature_importances_)# sf_model.threshold_# sf_model.get_support()  # get_support函数来得到到底是那几列被选中了return sf_model.transform(x_data)  # 得到筛选的特征if __name__ == '__main__':value_x, value_y = load_data()select_from_model(value_x, value_y)  # 带特征的筛选x_data,y_data

参考文章

  • RandomForestClassifier vs ExtraTreesClassifier in scikit learn:https://stackoverflow.com/questions/22409855/randomforestclassifier-vs-extratreesclassifier-in-scikit-learn
  • Gini Impurity细节与案例:https://bambielli.com/til/2017-10-29-gini-impurity/
  • SelectFromModel的文档:https://scikit-learn.org/stable/modules/generated/sklearn.feature_selection.SelectFromModel.html
  • ExtraTreesClassifier的文档:https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.ExtraTreesClassifier.html

特征筛选11——ExtraTrees筛选特征相关推荐

  1. R语言使用caret包的rfe函数进行特征筛选、选择、特征消除RFE(Recursive Feature Elimination)进行特征筛选(feature selection)

    R语言使用caret包的rfe函数进行特征筛选.选择.特征消除RFE(Recursive Feature Elimination)进行特征筛选(feature selection) 目录

  2. QIIME 2用户文档. 11数据筛选Filtering data(2018.11)

    文章目录 前情提要 QIIME 2用户文档. 11数据筛选 下载实验相关数据 过滤特征表 按数据量过滤 偶然因素的过滤 基于索引的过滤 基于元数据的筛选 基于物种过滤表和序列 过滤序列 过滤距离矩阵 ...

  3. 基于LBP纹理特征计算GLCM的纹理特征统计量+SVM/RF识别纹理图片

    作者 | Raini 出品 | 北京图特摩斯科技有限公司 (thutmose.cn) 说在前头: 局部特征检测方法 斑点Blob检测,LoG检测 , DoG,DoH检测,SIFT算法,SUFT算法 边 ...

  4. 什么是特征工程?如何进行特征工程?

    1 特征工程是什么? 有这么一句话在业界广泛流传:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已.那特征工程到底是什么呢?顾名思义,其本质是一项工程活动,目的是最大限度地从原始数据中 ...

  5. 特征工程——推荐系统里的特征工程

    原文:推荐系统里的特征工程 个性化推荐系统 Personalized recommender system 比其他的机器学习方法更依赖特征工程,所以我拿它来当作问题的背景,结合我之前做过的一个推荐系统 ...

  6. 计算机虚拟筛选公司,虚拟筛选服务

    虚拟筛选服务 通常,药物筛选有三种方法:动物模型.高通量筛选和虚拟筛选.动物模型筛选药物这种方法具有成本高.效率低.速度慢.样品需要量大等特点.高通量筛选方法实现了自动化操作.检测灵敏快速,但是待筛选 ...

  7. 特征工程系列:自动化特征构造

    特征工程系列:自动化特征构造 原创: JunLiang 木东居士  今天 0x00 前言 数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已.由此可见,特征工程在机器学习中占有相当重要的 ...

  8. 特征构造系列3:笛卡尔乘积特征构造以及遗传编程特征构造

    文章目录 1.笛卡尔乘积特征构造 1.1 原理 1.2 类别特征进行笛卡尔乘积特征组合 1.3 连续值特征进行笛卡尔乘积特征组合 2.遗传编程特征构造 2.1 原理 2.2 gplearn 2.3 遗 ...

  9. ML之FE:基于自定义数据集(银行客户信息贷款和赔偿)对比实现特征衍生(手动设计新特征、利用featuretools工具实现自动特征生成)

    ML之FE:基于自定义数据集(银行客户信息贷款和赔偿)对比实现特征衍生(手动设计新特征.利用featuretools工具实现自动特征生成) 目录 基于自定义数据集(银行客户信息贷款和赔偿)对比实现特征 ...

最新文章

  1. windows cmd命令行中 查看 修改 删除与添加环境变量
  2. 汇编语言随笔(7)-访问内存的寻址方式和实验7(不同寻址方式的使用)
  3. php 编译ext目录下的,PHP编译安装后的目录和文件解释?
  4. Python Django 文件下载代码示例
  5. 陶陶的兔二,建好啦!
  6. GitHub超实用操作
  7. DeepR —训练TensorFlow模型进行生产
  8. No module named 'urllib2'
  9. Python面试题(第二篇)
  10. python协同过滤调用包_简单的python协同过滤程序实例代码
  11. python3序列化_python3 json序列化问题
  12. CSS实现文字竖排效果
  13. sql server计算日期到当前日期天数_Excel必学的7个计算日期间隔差的技巧
  14. pycharm-perl脚本
  15. 腾达无线usb wifi 网卡u1/u3 RTL8192EU在centos7.6/7.7的编译适配
  16. 零基础怎样自学编程?初学者如何学习编程?编程学习入门指南(文章较长,需要耐心看完)
  17. C# BitConverterExt 对BitConverter的GetBytes 方法扩展
  18. 如何在Chrome39添加360抢票王插件
  19. 在远程linux服务器上用wget命令下载nuscenes数据集出现HTTP request sent, awaiting response... 403 Forbidden错误
  20. 外周传出神经的递质有,外周神经系统神经递质

热门文章

  1. kernel开启启动log_systemd service 如何开启 core dump
  2. vba 定义类_工作表中如何响应自定义事件
  3. golang mysql加锁_使用golang实现类InnoDB数据行锁效果
  4. 如何在CentOS上创建Kubernetes集群
  5. 为Unity项目生成文档(一)
  6. jquery动态插入行,不用拼写html,简洁版
  7. 《算法:C语言实现》——连通性
  8. 项目管理学习笔记二:信息系统服务管理
  9. qpython手机kivy库_QPython Android Kivy,从python脚本启动python脚本
  10. bin code led_-/bin/sh: ./led: not found的解决办法