【问题标题】:Representation of catboost model in a human-interpretable manner以人类可解释的方式表示 catboost 模型
【发布时间】:2020-07-26 13:17:45
【问题描述】:

在建模问题中最流行的包中,有很多函数可以将模型对象转换为人类可以理解的东西,例如xgboost 中的 xgb.model.dt.tree 或 GBM 中的 pretty.gbm.tree。 catboost 包中是否有任何类似的功能或将模型表示为例如数据框的任何其他可能性? catboost.Model 类的对象是一个包含外部指针和原始数据元素的列表,找到有关模型结构的一些信息的唯一方法是将其保存为 .py 文件,但这是一种相当苛刻的方式。

【问题讨论】:

    标签: python r machine-learning catboost


    【解决方案1】:

    有一个tree_idx属性,但只能用plot_tree做树可视化,不能直接用model;这是波士顿数据的可重现示例:

    import numpy as np
    import catboost
    from catboost import CatBoostRegressor
    from sklearn.datasets import load_boston
    
    boston = load_boston()
    y = boston['target']
    X = boston['data']
    
    model = CatBoostRegressor(depth=2, verbose=False, iterations=5).fit(X, y)
    
    model.plot_tree(tree_idx=0)
    

    model.plot_tree(tree_idx=4)
    

    【讨论】:

    • 叶子中的val是什么意思?
    • @NaumanNaeem 这是一个回归树,所以显示的值是最终在各个终端节点(叶子)中的样本的平均值。
    • 当我使用 catboost 分类器 binarymulticlass 时会出现类似的值,我不确定这些值是什么。可视化的官方教程笔记本没有提及这些。
    • @NaumanNaeem cmets 不适合讨论此类问题。如果您遇到问题,非常欢迎您提出问题。
    • 谢谢,我实际上发布了一个没有人回答的问题。也许你想拍look
    猜你喜欢
    • 2018-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-12
    • 1970-01-01
    • 1970-01-01
    • 2012-02-20
    • 1970-01-01
    相关资源
    最近更新 更多