xgboost 可视化与结果分析

xgboost 的可视化,调用 xgb.to_graphviz 或 xgb.plot_tree 接口;

1. 指定 fmap(feature map)

https://www.kaggle.com/mmueller/xgb-feature-importance-python

  • 按照 feature map 的格式,编写 fmap 文件:

    def ceate_feature_map(features, fmap_filename):
        outfile = open(fmap_filename, 'w')
        i = 0
        for feat in features:
            outfile.write('{0}\t{1}\tq\n'.format(i, feat))
            i = i + 1
    
        outfile.close()
    
    # 调用
    fmap_filename = 'xgb.fmap'
    create_feature_map(X_train.columns, fmap_filename)
    
  • 将 xgb.fmap 文件传入 xgb.plot_tree 文件中:

    xgb.plot_tree(bst, fmap=fmap_filename)
    
  • 指定图像的大小:

    fig = ptl.gcf()
    fig.set_size_inches(150, 100)
    

2. 结果分析

  • bst.get_dump()

    • 查看各棵树的结构;
  • bst.predict 的参数:

    • pred_leaf=True,各棵树对各个样本的预测的叶子;
### XGBoost模型可视化的方法 为了更好地理解XGBoost模型的工作原理及其预测行为,可以利用多种可视化工具和技术。以下是几种常见的方法来实现XGBoost模型的可视化: #### 使用`plot_tree`函数绘制决策树结构 `xgboost.plot_tree()`允许用户查看单棵决策树的具体形态,这有助于了解特征的重要性以及每棵树是如何做出分裂决定的。 ```python import matplotlib.pyplot as plt from xgboost import plot_tree plt.figure(figsize=(15,8)) plot_tree(model, num_trees=0) plt.show() ``` 此代码片段会显示第一个弱学习器(即第0棵树)的图形表示形式[^1]。 #### 特征重要性分析 通过计算各个输入变量对于最终输出的影响程度,可以帮助识别哪些因素最为关键。XGBoost内置了两种衡量方式——权重(weight)和增益(gain),前者统计节点上使用的次数而后者则基于纯度增加量评估贡献大小。 ```python from xgboost import plot_importance fig, ax = plt.subplots(figsize=(10, 6)) plot_importance(model, importance_type="gain", ax=ax) plt.title('Feature Importance') plt.show() ``` 上述命令将生成一张条形图,其中横轴代表不同属性名称,纵轴对应其对应的增益值。 #### 利用WandB进行高级可视化 除了官方库自带的功能外,还可以借助第三方平台如Weights & Biases (wandb)[^3]来进行更加深入的数据探索实验跟踪记录工作。它不仅支持上传训练过程中的日志文件以便实时监控进度变化趋势;同时也提供了一系列定制化绘图选项用于呈现复杂关系模式。 安装并导入必要的包之后,可以在脚本里加入如下几行配置语句开启自动同步机制: ```python !pip install wandb import wandb wandb.init(project='my_project') for epoch in range(epochs): train(...) val_loss = validate(...) # Log metrics with wandb wandb.log({"epoch": epoch, "val_loss": val_loss}) ``` 随后便能够在网页界面上轻松获取到诸如损失曲线对比、超参数分布热力图之类的实用图表资源。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五道口纳什

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值