Представление модели catboost в интерпретируемой человеком манере - PullRequest
0 голосов
/ 14 апреля 2020

Среди самых популярных пакетов, используемых в задачах моделирования, есть множество функций, которые позволяют преобразовать объект модели в нечто, понятное для людей, например, xgb.model.dt.tree в xgboost или pretty.gbm.tree в GBM , Есть ли подобная функция в пакете catboost или любая другая возможность представить модель как, например, фрейм данных? Объект класса catboost.Model представляет собой список с внешним указателем и элементами необработанных данных, и единственный способ найти некоторую информацию о структуре модели - это сохранить ее в виде файла .py, но это довольно сложный способ. sh.

1 Ответ

1 голос
/ 14 апреля 2020

Существует атрибут 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)

enter image description here

model.plot_tree(tree_idx=4)

enter image description here

...