问题描述
我想了解如何在训练 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)
-
数值特征
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 (将#修改为@)