Xgboost筛选特征重要性
基本思想
根据结构分数的增益情况计算出来选择哪个特征的哪个分割点,某个特征的重要性,就是它在所有树中出现的次数之和。
使用代码
import pandas as pd
import xgboost as xgb
import operator
from matplotlib import pylab as pltdef ceate_feature_map(features):outfile = open('xgb.fmap', 'w')i = 0for feat in features:outfile.write('{0}\t{1}\tq\n'.format(i, feat))i = i + 1outfile.close()def get_data():train = pd.read_csv("../input/train.csv")features = list(train.columns[2:])y_train = train.Hazardfor feat in train.select_dtypes(include=['object']).columns:m = train.groupby([feat])['Hazard'].mean()train[feat].replace(m,inplace=True)x_train = train[features]return features, x_train, y_traindef get_data2():from sklearn.datasets import load_iris#获取数据iris = load_iris()x_train=pd.DataFrame(iris.data)features=["sepal_length","sepal_width","petal_length","petal_width"]x_train.columns=featuresy_train=pd.DataFrame(iris.target)return features, x_train, y_train#features, x_train, y_train = get_data()
features, x_train, y_train = get_data2()
ceate_feature_map(features)xgb_params = {"objective": "reg:linear", "eta": 0.01, "max_depth": 8, "seed": 42, "silent": 1}
num_rounds = 1000dtrain = xgb.DMatrix(x_train, label=y_train)
xgb_model = xgb.train(xgb_params, dtrain, num_rounds)importance = xgb_model.get_fscore(fmap='xgb.fmap')
importance = sorted(importance.items(), key=operator.itemgetter(1))df = pd.DataFrame(importance, columns=['feature', 'fscore'])
df['fscore'] = df['fscore'] / df['fscore'].sum()plt.figure()
df.plot()
df.plot(kind='barh', x='feature', y='fscore', legend=False, figsize=(16, 10))
plt.title('XGBoost Feature Importance')
plt.xlabel('relative importance')
plt.gcf().savefig('feature_importance_xgb.png')
import pandas as pd
import matplotlib.pylab as plt
feat_imp = pd.Series(clf.booster().get_fscore()).sort_values(ascending=False)
#新版需要转换成dict or list
#feat_imp = pd.Series(dict(clf.get_booster().get_fscore())).sort_values(ascending=False)
#plt.bar(feat_imp.index, feat_imp) feat_imp.plot(kind='bar', title='Feature Importances')
plt.ylabel('Feature Importance Score')
plt.show()
Xgboost筛选特征重要性相关推荐
- XGBoost输出特征重要性以及筛选特征
XGBoost输出特征重要性以及筛选特征 1,梯度提升算法是如何计算特征重要性的? 使用梯度提升算法的好处是在提升树被创建后,可以相对直接地得到每个属性的重要性得分.一般来说,重要性分数,衡量了特征在 ...
- ML之R:通过数据预处理利用LiR/XGBoost等(特征重要性/交叉训练曲线可视化/线性和非线性算法对比/三种模型调参/三种模型融合)实现二手汽车产品交易价格回归预测之详细攻略
ML之R:通过数据预处理利用LiR/XGBoost等(特征重要性/交叉训练曲线可视化/线性和非线性算法对比/三种模型调参/三种模型融合)实现二手汽车产品交易价格回归预测之详细攻略 目录 三.模型训练 ...
- [机器学习] 树模型(xgboost,lightgbm)特征重要性原理总结
在使用GBDT.RF.Xgboost等树类模型建模时,往往可以通过 feature_importance 来返回特征重要性,各模型输出特征重要性的原理与方法 一 计算特征重要性方法 首先,目前计算特征 ...
- XGBoost中特征重要性计算方法对比
XGBoost作为比赛大杀器,内置了几种重要性函数,今天我们就在这篇文章中梳理三种常见的特征重要性计算方法,并思考他们的使用场景. xgboost.plot_importance(booster, a ...
- xgboost输出特征重要性排名和权重值
向AI转型的程序员都关注了这个号
- XGBoost学习(六):输出特征重要性以及筛选特征
XGBoost学习(一):原理 XGBoost学习(二):安装及介绍 XGBoost学习(三):模型详解 XGBoost学习(四):实战 XGBoost学习(五):参数调优 XGBoost学习(六): ...
- python xgboost输出变量重要性_xgboost输出特征重要性排名和权重值
原标题:xgboost输出特征重要性排名和权重值 向AI转型的程序员都关注了这个号
- 机器学习模型可解释性进行到底——特征重要性(四)
文章目录 1 四种全局可解释的方法论 1.1 过滤法 1.1.1 方差过滤方差过滤 1.1.2 相关性过滤 1.2 嵌入法 1.2.1 SelectFromModel - 筛选特征 1.2.2 Per ...
- 树模型特征重要性评估方法
前言 在特征的选择过程中,如果学习器(基学习器)是树模型的话,可以根据特征的重要性来筛选有效的特征.本文是对Random Forest.GBDT.XGBoost如何用在特征选择上做一个简单的介绍. 各 ...
最新文章
- ASP.NET 2.0实现自带TreeView的客户端连带选择
- ServiceLoader的使用
- 程序员到底要不要用框架开发?
- 未定义与 struct 类型的输入参数相对应的函数 fetch_引入鲁棒性作为连续参数,这种新损失函数实现了自适应、随时变换...
- html5滑动删除置顶,html5向左滑动删除特效
- 驰骋工作流引擎2016年第1次组团培训日程
- Prim算法的C语言程序
- Linux常见问题解答--如何修复“tar:Exiting with failure status due to previous errors”
- jsp九大内置对象的作用及用法
- Microsoft官网 Windows10 系统重装教程
- android头条的状态栏_今日头条如何设置电脑版 今日头条苹果手机任务栏在哪
- 投毒后门防御阅读笔记,What Doesn‘t Kill You Makes You Robust (er) Adversarial Training against Poisons and Back
- 百度网盘html资源,百度网盘目录索引搭建教程:如何把百度网盘文件做成在线html目录...
- 让dropout在图像超分辨领域大放异彩![2022 CVPR]
- 01-Redis核心数据结构和高性能原理
- 苹果保修期多久_手机的寿命究竟有多久,您的换机周期是否会等到手机报废呢?|手机|电池|安卓手机...
- 什么是MapReduce
- 深信服---之上网行为管理
- Python3 mp3音频转mav格式及ffmpeg安装
- 静态ip和动态ip的区别能说明什么?怎么根据区别选择?
热门文章
- 字节跳动任命凯文·梅耶尔为首席运营官
- 推荐一款非常好用的pdf阅读器Xodo 适用于windows系统
- vue 滑动组件_轻巧的Vue滑动组件
- 速卖通新手卖家入门知识问答
- 雷达 距离-方位(RA)图目标检测 一些笔记(持续更新)
- 旧金山,这几天天气不错
- 【牛腩】DELETE 语句与 REFERENCE 约束“FK_news_category“冲突。该冲突发生于数据库“newssystem“,表“dbo.news“, column ‘caId‘
- python中replace()方法
- B. Lorry (贪心)
- HTML5中国象棋游戏(自定义象棋难度)源码下载