2024-09-28 01:23:39 发布
网友
我想使用更深的树来解决我的业务问题,但catboost的树深度限制为16。我仔细检查了代码,找到了硬编码的部分。catboost/private/libs/options/oblivious_tree_options.cpp中的这一行:
const ui32 maxFullBinaryTreeDepth = 16;
我可以简单地将其更改为64,然后运行setup.py吗?或者会有其他依赖项,并可能导致任何问题
这可能是CatBoost中的一个硬限制
我假设您希望调整CatBoost算法以获得更好的性能。您可以尝试调整不同的参数,例如,learning_rate,rsm,l2_leaf_reg。根据我的经验,深度超过12是非常高的。也许这就是为什么CatBoost开发人员设置了一个硬限制
learning_rate
rsm
l2_leaf_reg
您还可以尝试使用MLJAR AutoML(我是主要的贡献者)https://github.com/mljar/mljar-supervised来调优CatBoost。MLJAR有两个调优选项:
示例代码:
automl=AutoML(algorithms=["CatBoost"], mode="Compete") automl.fit(X, y)
或使用Optuna进行调谐:
automl=AutoML(algorithms=["CatBoost"], mode="Optuna") automl.fit(X, y)
MLJAR中的所有模型都有文档记录。AutoML培训后,您可以重用AutoML中的超参数(如果需要)
这可能是CatBoost中的一个硬限制
我假设您希望调整CatBoost算法以获得更好的性能。您可以尝试调整不同的参数,例如,
learning_rate
,rsm
,l2_leaf_reg
。根据我的经验,深度超过12是非常高的。也许这就是为什么CatBoost开发人员设置了一个硬限制您还可以尝试使用MLJAR AutoML(我是主要的贡献者)https://github.com/mljar/mljar-supervised来调优CatBoost。MLJAR有两个调优选项:
示例代码:
或使用Optuna进行调谐:
MLJAR中的所有模型都有文档记录。AutoML培训后,您可以重用AutoML中的超参数(如果需要)
相关问题 更多 >
编程相关推荐