Python 在CatBoost中发生过度拟合后,有没有办法保存经过训练的模型?

Python 在CatBoost中发生过度拟合后,有没有办法保存经过训练的模型?,python,machine-learning,catboost,Python,Machine Learning,Catboost,我正在使用Catboost库的Python版本 根据文档,可以使用过度安装检测器,我正在这样做: model = CatBoostRegressor(iterations=iters, learning_rate=0.03, depth=depth, verbose=True, od_pval=1, od_type='IncToDec', od_wait=20) model.fit(train_pool, eval_set=validation_pool) # this code didn't

我正在使用Catboost库的Python版本

根据文档,可以使用过度安装检测器,我正在这样做:

model = CatBoostRegressor(iterations=iters, learning_rate=0.03, depth=depth, verbose=True, od_pval=1, od_type='IncToDec', od_wait=20)
model.fit(train_pool, eval_set=validation_pool)

# this code didn't executed
model.save_model(model_name)
然而,在过度拟合发生后,我的Python脚本被中断,提前停止,选择任何你想要的短语,并且保存模型部分没有执行,这导致了大量的时间消耗,最终没有结果。我没有任何线索


有没有可能在CatBoost中处理它并节省数小时的装配工作?

我不知道CatBoost是如何工作的,但我想分享一种不同的方法来保存/存储您的培训数据,也许它会有所帮助

import pickle
model = CatBoostRegressor(iterations=iters, learning_rate=0.03, depth=depth, verbose=True, od_pval=1, od_type='IncToDec', od_wait=20)
model.fit(train_pool, eval_set=validation_pool)
#----To store model----------
filename = 'final_model' # name to store model
pickle.dump(model, open(filename, 'wb')) # pickling
#-----To load model------------
loaded_model = pickle.load(open(filename, 'rb'))

使用此代码。无论try块中发生什么,它都将保存模型

try:
    model.fit(X, y)
finally:
    model.save_model()

您可以使用pickle来完成,只需训练您的模块并使用pickle将其转储即可

 pickle.dump(regr, open("models/svrrbf.sav",'wb'))
此外,您还可以使用该模块测试输入。
希望对您有所帮助

您能提供更多关于python脚本为何以及如何被杀死的信息吗?我希望这就是overfitting detector一直在做的事情。不确定,例如,我是否完全掌握了您希望我回答的问题。“killed”是什么意思?你说的
是什么意思?我的Python脚本被杀了
我希望会出现一个错误?好吧,也许我应该换个说法。我没有得到任何堆栈跟踪,我的脚本只是被中断,过早结束,选择任何你想要的单词。如果我有错误,我当然会把它贴在这里。我非常确定,我使用的是库(CatBoost),pickle将如何帮助我?您使用了多少次迭代?如果迭代次数没有超过您在训练参数中提到的次数,那么可能是因为过度拟合。。。。。。Pickle只是存储模型的另一种方式,很久以前,当我执行多类分类时,我使用了save_模型,但它没有保存我的分类器,所以我使用Pickle,它工作了测试它,它工作了,尽管起初我感谢它再次被杀死