使用 Adaboost 的决策树/树桩

Decision trees / stumps with Adaboost

我刚开始使用 Adaboost 学习决策树,正在 OpenCV 上试用它并有一些问题。

提升决策树

我知道当我将 Adaboost 与决策树一起使用时,我会不断地使决策树适应训练数据的重新加权版本。分类由加权多数投票完成

在使用 Adaboost 训练决策树时,我可以改用 Bootstrapping 吗?也就是说,我们 select 数据集的子集,并在将分类器输入 Adaboost 之前在每个子集上训练一棵树。

提升决策树

我是否对 Decision Stumps 使用相同的技术?或者我可以改为创建等于特征数量的树桩吗? IE。如果我有 2 个 类 具有 10 个特征,我会在将分类器输入 Adaboost 之前为每个特征创建总共 10 个决策树桩。

AdaBoost 不仅在不同子集上训练分类器,还会根据达​​到的 assemble 性能调整数据集元素的权重。详细说明可参见here.

是的,您可以使用相同的技术来训练决策树桩。算法大致如下:

  1. 在没有权重的初始数据集上训练决策树桩(与权重 = 1 的每个元素相同)。
  2. 更新所有元素的权重,使用 AdaBoost 算法的公式。正确分类元素的权重应该变小,错误分类的权重-变大。
  3. 使用当前权重训练决策树桩。也就是说,不仅要最小化该决策树桩所犯错误的数量,还要最小化错误权重的总和。
  4. 如果没有达到预期的质量,请转到 pt。 2.