特征筛选11——ExtraTrees筛选特征
算法简述
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筛选特征相关推荐
- R语言使用caret包的rfe函数进行特征筛选、选择、特征消除RFE(Recursive Feature Elimination)进行特征筛选(feature selection)
R语言使用caret包的rfe函数进行特征筛选.选择.特征消除RFE(Recursive Feature Elimination)进行特征筛选(feature selection) 目录
- QIIME 2用户文档. 11数据筛选Filtering data(2018.11)
文章目录 前情提要 QIIME 2用户文档. 11数据筛选 下载实验相关数据 过滤特征表 按数据量过滤 偶然因素的过滤 基于索引的过滤 基于元数据的筛选 基于物种过滤表和序列 过滤序列 过滤距离矩阵 ...
- 基于LBP纹理特征计算GLCM的纹理特征统计量+SVM/RF识别纹理图片
作者 | Raini 出品 | 北京图特摩斯科技有限公司 (thutmose.cn) 说在前头: 局部特征检测方法 斑点Blob检测,LoG检测 , DoG,DoH检测,SIFT算法,SUFT算法 边 ...
- 什么是特征工程?如何进行特征工程?
1 特征工程是什么? 有这么一句话在业界广泛流传:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已.那特征工程到底是什么呢?顾名思义,其本质是一项工程活动,目的是最大限度地从原始数据中 ...
- 特征工程——推荐系统里的特征工程
原文:推荐系统里的特征工程 个性化推荐系统 Personalized recommender system 比其他的机器学习方法更依赖特征工程,所以我拿它来当作问题的背景,结合我之前做过的一个推荐系统 ...
- 计算机虚拟筛选公司,虚拟筛选服务
虚拟筛选服务 通常,药物筛选有三种方法:动物模型.高通量筛选和虚拟筛选.动物模型筛选药物这种方法具有成本高.效率低.速度慢.样品需要量大等特点.高通量筛选方法实现了自动化操作.检测灵敏快速,但是待筛选 ...
- 特征工程系列:自动化特征构造
特征工程系列:自动化特征构造 原创: JunLiang 木东居士 今天 0x00 前言 数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已.由此可见,特征工程在机器学习中占有相当重要的 ...
- 特征构造系列3:笛卡尔乘积特征构造以及遗传编程特征构造
文章目录 1.笛卡尔乘积特征构造 1.1 原理 1.2 类别特征进行笛卡尔乘积特征组合 1.3 连续值特征进行笛卡尔乘积特征组合 2.遗传编程特征构造 2.1 原理 2.2 gplearn 2.3 遗 ...
- ML之FE:基于自定义数据集(银行客户信息贷款和赔偿)对比实现特征衍生(手动设计新特征、利用featuretools工具实现自动特征生成)
ML之FE:基于自定义数据集(银行客户信息贷款和赔偿)对比实现特征衍生(手动设计新特征.利用featuretools工具实现自动特征生成) 目录 基于自定义数据集(银行客户信息贷款和赔偿)对比实现特征 ...
最新文章
- windows cmd命令行中 查看 修改 删除与添加环境变量
- 汇编语言随笔(7)-访问内存的寻址方式和实验7(不同寻址方式的使用)
- php 编译ext目录下的,PHP编译安装后的目录和文件解释?
- Python Django 文件下载代码示例
- 陶陶的兔二,建好啦!
- GitHub超实用操作
- DeepR —训练TensorFlow模型进行生产
- No module named 'urllib2'
- Python面试题(第二篇)
- python协同过滤调用包_简单的python协同过滤程序实例代码
- python3序列化_python3 json序列化问题
- CSS实现文字竖排效果
- sql server计算日期到当前日期天数_Excel必学的7个计算日期间隔差的技巧
- pycharm-perl脚本
- 腾达无线usb wifi 网卡u1/u3 RTL8192EU在centos7.6/7.7的编译适配
- 零基础怎样自学编程?初学者如何学习编程?编程学习入门指南(文章较长,需要耐心看完)
- C# BitConverterExt 对BitConverter的GetBytes 方法扩展
- 如何在Chrome39添加360抢票王插件
- 在远程linux服务器上用wget命令下载nuscenes数据集出现HTTP request sent, awaiting response... 403 Forbidden错误
- 外周传出神经的递质有,外周神经系统神经递质
热门文章
- kernel开启启动log_systemd service 如何开启 core dump
- vba 定义类_工作表中如何响应自定义事件
- golang mysql加锁_使用golang实现类InnoDB数据行锁效果
- 如何在CentOS上创建Kubernetes集群
- 为Unity项目生成文档(一)
- jquery动态插入行,不用拼写html,简洁版
- 《算法:C语言实现》——连通性
- 项目管理学习笔记二:信息系统服务管理
- qpython手机kivy库_QPython Android Kivy,从python脚本启动python脚本
- bin code led_-/bin/sh: ./led: not found的解决办法