CatBoost 训练后特征信息

问题描述

我想了解如何在训练 catboost 模型后访问有关数值和分类特征的信息。例如,这里有一些玩具代码

import pandas as pd
from catboost import catboostClassifier,Pool

train_pool = Pool(pd.DataFrame({'size': [1,1,2,1],'shape': ['square','square','circle']}),[1,feature_names = ['size','shape'],cat_features= ['shape'])

model = catboostClassifier(iterations=2,cat_features = ['shape'],ctr_leaf_count_limit=1)

model.fit(train_pool,plot=False)

我现在想在 model 对象上运行一个函数以获得以下内容

  • 数值特征 size 具有最小值 0 和最大值 1(这应该是数值特征的 catboosts 拆分逻辑的一部分)

  • 分类特征 shape 具有以下训练值:

    values=['square',None]

    请注意,circle 中的 values not 因为 car_leaf_count_limit=1 会选择出现次数最多的值,在本例中为 'square' .我把 None在这里是因为我很确定 cat boost 会将 None 分配给任何看不见的类。

    接下来,我选择了上述数据示例以确保 catboost 决定在 shape=='square' 上拆分。理想情况下,我希望看到一个数组 used_values=['square'],它强调在这square 值上至少有一个分割。

这里需要强调的是,我只想对 model 对象进行操作。显然,可以通过在训练数据上运行函数来获得其中的一些细节。我的动机是双重确保我完全了解模型输入的训练范围,以及它在预处理中可能对它们做什么。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)