基本思想

根据结构分数的增益情况计算出来选择哪个特征的哪个分割点,某个特征的重要性,就是它在所有树中出现的次数之和。

使用代码

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筛选特征重要性相关推荐

  1. XGBoost输出特征重要性以及筛选特征

    XGBoost输出特征重要性以及筛选特征 1,梯度提升算法是如何计算特征重要性的? 使用梯度提升算法的好处是在提升树被创建后,可以相对直接地得到每个属性的重要性得分.一般来说,重要性分数,衡量了特征在 ...

  2. ML之R:通过数据预处理利用LiR/XGBoost等(特征重要性/交叉训练曲线可视化/线性和非线性算法对比/三种模型调参/三种模型融合)实现二手汽车产品交易价格回归预测之详细攻略

    ML之R:通过数据预处理利用LiR/XGBoost等(特征重要性/交叉训练曲线可视化/线性和非线性算法对比/三种模型调参/三种模型融合)实现二手汽车产品交易价格回归预测之详细攻略 目录 三.模型训练 ...

  3. [机器学习] 树模型(xgboost,lightgbm)特征重要性原理总结

    在使用GBDT.RF.Xgboost等树类模型建模时,往往可以通过 feature_importance 来返回特征重要性,各模型输出特征重要性的原理与方法 一 计算特征重要性方法 首先,目前计算特征 ...

  4. XGBoost中特征重要性计算方法对比

    XGBoost作为比赛大杀器,内置了几种重要性函数,今天我们就在这篇文章中梳理三种常见的特征重要性计算方法,并思考他们的使用场景. xgboost.plot_importance(booster, a ...

  5. xgboost输出特征重要性排名和权重值

    向AI转型的程序员都关注了这个号

  6. XGBoost学习(六):输出特征重要性以及筛选特征

    XGBoost学习(一):原理 XGBoost学习(二):安装及介绍 XGBoost学习(三):模型详解 XGBoost学习(四):实战 XGBoost学习(五):参数调优 XGBoost学习(六): ...

  7. python xgboost输出变量重要性_xgboost输出特征重要性排名和权重值

    原标题:xgboost输出特征重要性排名和权重值 向AI转型的程序员都关注了这个号

  8. 机器学习模型可解释性进行到底——特征重要性(四)

    文章目录 1 四种全局可解释的方法论 1.1 过滤法 1.1.1 方差过滤方差过滤 1.1.2 相关性过滤 1.2 嵌入法 1.2.1 SelectFromModel - 筛选特征 1.2.2 Per ...

  9. 树模型特征重要性评估方法

    前言 在特征的选择过程中,如果学习器(基学习器)是树模型的话,可以根据特征的重要性来筛选有效的特征.本文是对Random Forest.GBDT.XGBoost如何用在特征选择上做一个简单的介绍. 各 ...

最新文章

  1. ASP.NET 2.0实现自带TreeView的客户端连带选择
  2. ServiceLoader的使用
  3. 程序员到底要不要用框架开发?
  4. 未定义与 struct 类型的输入参数相对应的函数 fetch_引入鲁棒性作为连续参数,这种新损失函数实现了自适应、随时变换...
  5. html5滑动删除置顶,html5向左滑动删除特效
  6. 驰骋工作流引擎2016年第1次组团培训日程
  7. Prim算法的C语言程序
  8. Linux常见问题解答--如何修复“tar:Exiting with failure status due to previous errors”
  9. jsp九大内置对象的作用及用法
  10. Microsoft官网 Windows10 系统重装教程
  11. android头条的状态栏_今日头条如何设置电脑版 今日头条苹果手机任务栏在哪
  12. 投毒后门防御阅读笔记,What Doesn‘t Kill You Makes You Robust (er) Adversarial Training against Poisons and Back
  13. 百度网盘html资源,百度网盘目录索引搭建教程:如何把百度网盘文件做成在线html目录...
  14. 让dropout在图像超分辨领域大放异彩![2022 CVPR]
  15. 01-Redis核心数据结构和高性能原理
  16. 苹果保修期多久_手机的寿命究竟有多久,您的换机周期是否会等到手机报废呢?|手机|电池|安卓手机...
  17. 什么是MapReduce
  18. 深信服---之上网行为管理
  19. Python3 mp3音频转mav格式及ffmpeg安装
  20. 静态ip和动态ip的区别能说明什么?怎么根据区别选择?

热门文章

  1. 字节跳动任命凯文·梅耶尔为首席运营官
  2. 推荐一款非常好用的pdf阅读器Xodo 适用于windows系统
  3. vue 滑动组件_轻巧的Vue滑动组件
  4. 速卖通新手卖家入门知识问答
  5. 雷达 距离-方位(RA)图目标检测 一些笔记(持续更新)
  6. 旧金山,这几天天气不错
  7. 【牛腩】DELETE 语句与 REFERENCE 约束“FK_news_category“冲突。该冲突发生于数据库“newssystem“,表“dbo.news“, column ‘caId‘
  8. python中replace()方法
  9. B. Lorry (贪心)
  10. HTML5中国象棋游戏(自定义象棋难度)源码下载