我想使用更深的树来解决我的业务问题,但catboost对树的深度有16个限制。我看了一下代码,找到了硬编码的部分。catboost/private/libs/options/oblivious_tree_options.cpp中的这一行
const ui32 maxFullBinaryTreeDepth = 16;
我可以简单地将其更改为64,然后运行setup.py吗?或者会有其他依赖关系,并可能导致任何问题?
发布于 2021-04-28 14:19:51
这可能是CatBoost中的一个硬限制。
我假设您想要调优CatBoost算法以获得更好的性能。您可以尝试调优不同的参数,例如,learning_rate
、rsm
、l2_leaf_reg
。根据我的经验,12以上的深度是非常高的。也许这就是CatBoost开发人员设置硬限制的原因?
您还可以尝试使用MLJAR AutoML (我是主要贡献者) https://github.com/mljar/mljar-supervised来调优CatBoost。MLJAR有两个调优选项:
随机搜索+ hill-climibing
示例代码:
automl=AutoML(algorithms=["CatBoost"], mode="Compete")
automl.fit(X, y)
或者使用Optuna进行调整:
automl=AutoML(algorithms=["CatBoost"], mode="Optuna")
automl.fit(X, y)
MLJAR中的所有模型都有文档记录。在AutoML训练之后,您可以重用来自AutoML的超参数(如果您愿意)。
https://stackoverflow.com/questions/67299869
复制相似问题