Adaboost 如何计算训练中每个弱学习器的误差?

数据挖掘 机器学习 数据挖掘 集成建模 adaboost
2022-02-17 07:29:23

我正在研究 Adaboost 分类算法,因为我想从头开始实现它。我了解它是如何工作的,但我无法理解某些步骤的放置位置。

我将在我的理解中描述 Adaboost 训练步骤(对于任何不正确的形式,请见谅):

  • 初始化弱学习器k
  • 为数据集中的每个样本均等定义权重w=1N
  • 合身k到数据集
  • 计算误差e=i=0Neiwi
  • 计算重要性αk, IEα=12log(1ee)
  • 重新计算正确分类样本的权重:wt+1=weα
  • 重新计算错误分类样本的权重:wt+1=weα
  • 标准化新样本权重:wnormalized=wi=0Nwi
  • 对于所有后续学习者,基于加权随机选择选择样本,直到获得与原始数据集大小相同的数据集并执行相同的过程。

我的问题是:如何获得错误?关于实现,我应该先拟合数据集,然后从预测相同的数据集中得到错误吗?这似乎不正确。

我试图阅读有关此的不同来源,甚至 Statquest 频道的一个很好的解释也无法说明这一点。

谢谢!

1个回答

当我开始学习集成方法时,这个 youtube 视频对我帮助很大。

这个想法是你在数据上拟合模型,计算误差,然后处理误差。所以是的,您应该使用弱学习器来预测您的数据,然后使用另一个弱学习器。

同一频道中还有更多视频可以很好地解释直觉。