说明
模型集成是指将一系列不同模型的预测结果集成在一起,从而获得更好的预测结果。
对于模型集成来说,模型的多样性非常重要。Diversityisstrength.用于集成的模型应尽可能好,同时应尽可能不同。
同一的网络,使用不同的随机初始化,多次独立训练,然后集成,意义不大。更好的方法是使用结构非常不同的模型进行集成,这样每个模型的偏差就会在不同的方向上相互抵消,结果就会更加稳定准确。
实例
可以用多种不同的方法来集成它们,最简单的办法是,取平均:
final_preds = 0.25 * (preds_a + preds_b + preds_c + preds_d)
由于每一个模型的性能会有差距,所以更好的办法是加权平均:
final_preds = 0.5 * preds_a + 0.25 * preds_b + 0.1 * preds_c + 0.15 * preds_d
知识点扩充:
当我们想在数据集上构建许多个模型,便可考虑使用集成的方法:
挂袋法:并行进行,挂袋法集成中的每一个模型只使用训练集的一部分,它们的思路是减少对数据产生过度拟合,但前提是每个模型的差别不能太大,挂袋法对如线性回归之类的线性预测器无效。对于一些很稳定的模型,挂袋法的效果不明显,它适合那些对很小的改变也十分敏感的分类器,例如决策树,它很不稳定,未剪枝决策树就十分适合挂袋法。而KNN分类器则是一种很稳定的模型,不过我们可以使用随机子空间方法,为最近邻方法引入不稳定性。
赋权重提升法:顺序进行,产生一个逐步复杂的模型序列,它按顺序基于前一个模型的错误训练新的模型,每次训练得到的模型被赋予一个权重,这个权重依据模型再给定数据的效果而定。最终的预测值产生时,这些权重值就是每个特定模型对于最终输出结果的影响力的判据。整体来说就是把错误率低的分类器赋予更大的权重。
梯度提升法:由于赋权提升法使根据赋予错误实例更大的权重,然后是的下一个模型更可能选中这些错误分类的实例再次训练,而这也存在不足之处,这里梯度提升法采用梯度而不是权重来鉴别缺陷,基于调整残差(真实值y与预测值y')来完善上一个模型的缺陷。
到此这篇关于python模型集成知识点总结的文章就介绍到这了,更多相关python模型集成是什么内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!