如何在PyCaret中用blend_models/stack_models堆叠/混合调优后的回归模型?
PyCaret中混合/堆叠已调优回归模型的方法
使用blend_models混合调优后的模型
只需将已调优的模型打包成列表,直接传入blend_models即可,同时可以指定和调优时一致的优化目标(比如这里的mae):
# 把三个调优后的模型存入列表 tuned_models = [tuned_knn2, tuned_rf2, tuned_ex2] # 执行模型混合 blender = blend_models(tuned_models, optimize='mae')
你还可以根据需求调整method(混合方法,默认是soft)、weights(模型权重)等参数,进一步优化混合效果。
使用stack_models堆叠调优后的模型
堆叠模型的操作逻辑类似,同样先将调优后的模型放入列表,再传入stack_models:
# 把三个调优后的模型存入列表 tuned_models = [tuned_knn2, tuned_rf2, tuned_ex2] # 执行模型堆叠,默认用线性回归作为元模型 stacker = stack_models(tuned_models, optimize='mae') # 若需要自定义元模型,例如用随机森林作为元模型: # from pycaret.regression import create_model # meta_rf = create_model('rf') # stacker = stack_models(tuned_models, meta_model=meta_rf, optimize='mae')
堆叠模型会先让所有基模型(你的三个调优模型)生成预测结果,再将这些结果作为输入训练元模型,最终输出预测值。
注意事项
确保所有调优后的模型都是在同一个PyCaret实验环境中创建的(即基于同一次setup()初始化的实验),避免因数据预处理不一致导致的错误。
内容的提问来源于stack exchange,提问作者The Great
相关产品推荐
相关产品推荐

