使用 Adaboost 的决策树/树桩

Posted

技术标签:

【中文标题】使用 Adaboost 的决策树/树桩【英文标题】:Decision trees / stumps with Adaboost 【发布时间】:2016-12-14 05:16:13 【问题描述】:

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

增强型决策树

我了解,当我将 Adaboost 与决策树一起使用时,我会不断地将决策树拟合到训练数据的重新加权版本。通过加权多数票进行分类

在使用 Adaboost 训练决策树时,我可以改用 Bootstrapping 吗?即,我们选择数据集的子集并在每个子集上训练一棵树,然后将分类器输入 Adaboost。

增强决策树桩

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

【问题讨论】:

为什么这个问题不在 datascience.SE 中? 【参考方案1】:

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

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

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

【讨论】:

以上是关于使用 Adaboost 的决策树/树桩的主要内容,如果未能解决你的问题,请参考以下文章

什么是使用 Adaboost(自适应提升)方法和决策树的示例

决策树 随机森林 adaboost

用cart(分类回归树)作为弱分类器实现adaboost

CART(决策分类树)原理和实现

提升算法

单层决策树