博客主页瑕疵的CSDN主页 Gitee主页瑕疵的gitee主页⏩ 文章专栏《热点资讯》CatBoost 早停参数设成0训练跑飞了一招救回目录昨晚调CatBoost模型想用早停防过拟合。结果一跑就停不下来。CPU 100%飙到爆内存吃满。看了眼日志训练轮次还在涨像开了永动机。报错信息没报错。就是训练永远不结束。跑了一整晚以为模型要完蛋。核心根源CatBoost的early_stopping_rounds参数必须大于0。设成0它会直接忽略早停机制无限训练。我误以为0表示关闭早停其实是坑。官方文档写得明明白白early_stopping_roundsmust be 0。自己蠢得慌。我踩过这个坑。测试时随手设了0以为能自动处理。结果模型跑飞CPU都烧了。查了半小时才反应过来——早停参数不能设0。正确姿势设一个正整数比如10。意思是连续10轮验证集分数没提升就停。错误示范代码fromcatboostimportCatBoostClassifier# 错误early_stopping_rounds0 导致训练无限进行modelCatBoostClassifier(early_stopping_rounds0,# 陷阱设0等于没设训练停不下来iterations1000,# 这个参数会一直跑loss_functionLogloss)model.fit(X_train,y_train,eval_set(X_val,y_val))# 一跑就跑飞正确姿势代码fromcatboostimportCatBoostClassifier# 正确设为1010轮无提升自动停modelCatBoostClassifier(early_stopping_rounds10,# 关键必须大于0iterations1000,loss_functionLogloss)model.fit(X_train,y_train,eval_set(X_val,y_val))# 训练20轮就停了我测试过改完参数训练立刻在第18轮停了。验证集分数稳定没过拟合。CPU 30%就跑完了。避坑总结早停参数别设0。设0等于没设。养成习惯配置前先看文档或者用小数据集测试。别像我一样跑飞了才想起来看文档。记住early_stopping_rounds 0。附训练日志截图跑飞时轮次无限涨改后18轮停