python - 以人类可解释的方式表示 catboost 模型
问题描述
在建模问题中最流行的包中,有很多函数可以将模型对象转换为人类可以理解的东西,例如 xgboost 中的 xgb.model.dt.tree 或 GBM 中的 pretty.gbm.tree。catboost 包中是否有任何类似的功能或将模型表示为例如数据框的任何其他可能性?catboost.Model 类的对象是一个包含外部指针和原始数据元素的列表,查找有关模型结构的一些信息的唯一方法是将其保存为 .py 文件,但这是一种相当苛刻的方式。
解决方案
有一个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)
推荐阅读
- java - ComputeIfAbsent 抛出 concurrentModificationException
- nativescript - NativeScript:为什么在尝试构建/运行我的项目时出现“重复资源”错误?
- wix - 如何将现有文件复制到 WiX 中的 MyDocuments 目录?
- python - 定义一个函数,将员工分配到最近的工作站
- c++ - AVL-tree 节点缺少包含结构的内容,我找不到原因
- c# - 如何使用 FallbackValue 设置 UserControl 的宽度
- sql - SQL - 评估多行的最小值,然后过滤以显示唯一行列表?
- python - 进行预测时获得相同的输出
- java - 如何实现我的 JSON 格式为某种格式?
- azure - 开发者租户的图形 API 令牌