首页 > 解决方案 > 以人类可解释的方式表示 catboost 模型

问题描述

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

标签: pythonrmachine-learningcatboost

解决方案


有一个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)

在此处输入图像描述


推荐阅读