资料参考:
1. Evaluate Feature Importance using Tree-based Model
2. lgbm.fi.plot: LightGBM Feature Importance Plotting
3. lightgbm官方文档

前言

基于树的模型可以用来评估特征的重要性。 在本博客中,我将使用LightGBM中的GBDT模型来评估特性重要性的步骤。 LightGBM是由微软发布的高精度和高速度梯度增强框架(一些测试表明LightGBM可以产生与XGBoost一样的准确预测,但速度可以提高25倍)。

首先,我们导入所需的软件包:用于数据预处理的pandas,用于GBDT模型的LightGBM以及用于构建功能重要性条形图的matplotlib。

import pandas as pd
import matplotlib.pylab as plt
import lightgbm as lgb

然后,我们需要加载和预处理训练数据。 在这个例子中,我们使用预测性维护数据集。

# read data
train = pd.read_csv('E:\Data\predicitivemaintance_processed.csv')# drop the columns that are not used for the model
train = train.drop(['Date', 'FailureDate'],axis=1)# set the target column
target = 'FailNextWeek'# One-hot encoding
feature_categorical = ['Model']
train = pd.get_dummies(train, columns=feature_categorical)

接下来,我们用训练数据训练GBDT模型:

lgb_params = {'boosting_type': 'gbdt','objective': 'binary','num_leaves': 30,'num_round': 360,'max_depth':8,'learning_rate': 0.01,'feature_fraction': 0.5,'bagging_fraction': 0.8,'bagging_freq': 12
}
lgb_train = lgb.Dataset(train.drop(target, 1), train[target])
model = lgb.train(lgb_params, lgb_train)

模型训练完成后,我们可以调用训练模型的plot_importance函数来获取特征的重要性。

plt.figure(figsize=(12,6))
lgb.plot_importance(model, max_num_features=30)
plt.title("Featurertances")
plt.show()

保存feature importance

booster = model.booster_
importance = booster.feature_importance(importance_type='split')
feature_name = booster.feature_name()
# for (feature_name,importance) in zip(feature_name,importance):
#     print (feature_name,importance)
feature_importance = pd.DataFrame({'feature_name':feature_name,'importance':importance} )
feature_importance.to_csv('feature_importance.csv',index=False)

完美~

【机器学习笔记】使用lightgbm画并保存Feature Importance相关推荐

  1. 【机器学习】用特征量重要度(feature importance)解释模型靠谱么?怎么才能算出更靠谱的重要度?

    [机器学习]用特征量重要度(feature importance)解释模型靠谱么?怎么才能算出更靠谱的重要度? 我们用机器学习解决商业问题的时候,不仅需要训练一个高精度高泛化性的模型,往往还需要解释哪 ...

  2. 机器学习 基础理论 学习笔记 (8)特征选择(feature selection)(一)

    0.说明 本文也许比较乱,请看目录再食用. 后续会 出文 机器学习 基础理论 学习笔记 (8)特征选择(feature selection)(二) 将 分类问题 和 回归问题 分开总结. 以及或将出文 ...

  3. 天池龙珠训练营-机器学习学习笔记-03 LightGBM 分类

    天池龙珠训练营-机器学习学习笔记-03 LightGBM 分类 本学习笔记为阿里云天池龙珠计划机器学习训练营的学习内容,学习链接为:训练营 一 原理简介: 它是一款基于GBDT(梯度提升决策树)算法的 ...

  4. Python机器学习笔记:sklearn库的学习

    自2007年发布以来,scikit-learn已经成为Python重要的机器学习库了,scikit-learn简称sklearn,支持包括分类,回归,降维和聚类四大机器学习算法.还包括了特征提取,数据 ...

  5. 【学习打卡02】可解释机器学习笔记之ZFNet

    可解释机器学习笔记之ZFNet 文章目录 可解释机器学习笔记之ZFNet ZFNet介绍 ZFNet结构 特征可视化 可视化结构 特征不变性 特征演化 遮挡性分析 其他内容 总结和思考 首先非常感谢同 ...

  6. 【学习打卡05】可解释机器学习笔记之CAM+Captum代码实战

    可解释机器学习笔记之CAM+Captum代码实战 文章目录 可解释机器学习笔记之CAM+Captum代码实战 代码实战介绍 torch-cam工具包 可视化CAM类激活热力图 预训练ImageNet- ...

  7. 吴恩达机器学习笔记week8——神经网络 Neutral network

    吴恩达机器学习笔记week8--神经网络 Neutral network 8-1.非线性假设 Non-linear hypotheses 8-2.神经元与大脑 Neurons and the brai ...

  8. 【学习打卡03】可解释机器学习笔记之CAM类激活热力图

    可解释机器学习笔记之CAM类激活热力图 文章目录 可解释机器学习笔记之CAM类激活热力图 CAM介绍 CAM算法原理 GAP全局平均池化 GAP VS GMP CAM算法的缺点及改进 CAM可视化 同 ...

  9. 李弘毅机器学习笔记:第十三章—CNN

    李弘毅机器学习笔记:第十三章-CNN 为什么用CNN Small region Same Patterns Subsampling CNN架构 Convolution Propetry1 Propet ...

  10. 李弘毅机器学习笔记:第十四章—Why deep?

    李弘毅机器学习笔记:第十四章-Why deep? 问题1:越深越好? 问题2:矮胖结构 v.s. 高瘦结构 引入模块化 深度学习 使用语音识别举例 语音辨识: 传统的实现方法:HMM-GMM 深度学习 ...

最新文章

  1. DataGrid在分页状态下删除纪录的问题
  2. ionic中的ion-option-button
  3. Kubernetes的控制器类型即使用案例
  4. 【阿里云课程】生成模型之GAN优化目标设计与改进
  5. 美国美国,USA USA
  6. python vtk_VTK在python环境下的安装和调用
  7. 基于JAVA+SpringMVC+Mybatis+MYSQL的网上商城系统
  8. Java_MD5的使用
  9. LeetCode 229 : Majority Element II
  10. 运行python的两种方式磁盘式_python计算机基础-Day1
  11. 构建一个可行的BI系统的造价是多少,实施周期?具备条件基础是什么? 数据量有要求么
  12. python实现可视化数独求解器(附代码链接及点点讲解)
  13. tensorflow实战之手写体识别
  14. Activity的概述
  15. DB2活动日志占用过大
  16. JAVA NIO:NIO与OIO的对比以及Channel通道、Selector选择器、Buffer缓冲区的介绍 高并发
  17. Discuz app打包app上架appstore小技巧
  18. WFP之关联上下文数据以及注意事项
  19. 【十年签证】办理美国签证流程详解
  20. python小程序——视频篇

热门文章

  1. LightSpeed ORM .NET简单运用
  2. E4/EAS/Eventing System 事件系统
  3. JVM故障分析系列之四:jstack生成的Thread Dump日志线程状态
  4. document.frames()与document.frames[]的区别
  5. SVN Error: Unreadable path encountered; access denied;
  6. 【LOJ】#2532. 「CQOI2018」社交网络
  7. pytest特色与实用插件
  8. Vue的单页应用中如何引用单独的样式文件
  9. Google Bigtable文章终于出炉
  10. openmv探索_4_AprilTag标记追踪