2

我在 python 中使用 CatBoost 分类器来训练提升树。不幸的是,部署必须用不同的编程语言完成,因此我不能使用已经可用的 predict 方法,但我必须自己实现它。我尝试将模型导出到 json 文件并自己重新构造树(从而进行评分)。当没有分类特征时,它工作得很好。但是,如果我使用分类特征(单热编码与否),我不理解 json 文件中的值。例如,我的树中有这样一个拆分:

{ "split_index":16, "cat_feature_index":0, "value":1127826985, "split_type":"OneHotFeature" }。

获得 one-hot 编码的特征(cat_feature_index = 0 的特征)在我的数据中采用 4 个不同的值(100,200,700 和 800)。我想知道这个拆分到底是做什么的。

此外,如果我不使用单热编码,其中一个拆分看起来像:

{ "split_index":15, "split_type":"OnlineCtr", "border":4.99999999046, "ctr_target_border_idx":0 },

其中特征和数据同上。这种分裂究竟有什么作用?

请您告诉我在哪里可以找到树的解释和/或定义具有分类特征的树中的拆分的源代码?

4

0 回答 0