Bagging
用将trainset分成N份,并行地训练N个模型,用这些模型对testset进行预测得到N份预测结果,再将结果进行投票或者平均处理,得到最后结果。
实例:某个选手是晋级还是淘汰,有N=5个评委,如果>=3个评委认为晋级则晋级,否则淘汰。
Boosting
先训练一个模型model1,对比model1的结果和label,
提高预测错误数据的权重,然后训练model2,对比model2的结果和label,
再提高预测错误数据的权重,然后训练model3,对比model3的结果和label,
…直到训练了N个模型
然后model1的权重是weight1,model2的权重是weight2,modelN的权重是weightN…
对这些模型的结果进行带权重的投票得到最终结果。
实例:某个问题由小学生、初中生、高中生、大学生、硕士生、博士、领域专家一起给出答案,最终的结果小学生权重最小,专家权重最高。
Stacking
类似于bagging的升级版,bagging是多个模型结果的投票或者平均,
stacking更复杂一些,是对多个小模型结果再建模,相当于两层模型。
网上看资料,也发现有3层甚至更多层的模型stacking。
注意
建模过程中,可能会有 kfold等操作,比如kfold5,
如果对testset有多次预测可以直接取平均