如何在提升

时间:2016-12-16 23:57:11

标签: algorithm decision-tree adaboost boosting

我正在实施将使用CART和C4.5的AdaBoost(Boosting)。我读到了关于AdaBoost的内容,但我找不到如何将AdaBoost加入决策树的良好表达方式。假设我有数据集D,它有n个例子。我将D分为TR训练样例和TE测试示例。 比方说TR.count = m, 所以我设置权重应该是1 / m,然后我使用TR来构建树,我用TR测试它得到错误的例子,并用TE测试来计算错误。然后我改变了重量,现在我将如何获得下一个训练集?我应该使用什么样的样品(有或没有replacemnet)?我知道新的训练集应该更多地关注错误分类的样本,但我怎样才能做到这一点?那么CART或C4.5如何知道他们应该关注更重要的例子?

1 个答案:

答案 0 :(得分:0)

据我所知,TE数据集并不意味着用于估计错误率。原始数据可以分为两部分(一部分用于培训,另一部分用于交叉验证)。主要是,我们有两种方法来对训练数据集分布应用权重。使用哪种方法取决于您选择的弱学习者。

如何应用权重?

  • 无需替换即可重新对训练数据集进行采样。此方法可以视为加权提升方法。生成的重新采样数据集包含错误分类实例,其概率高于正确分类的实例,因此它迫使弱学习算法专注于错误分类数据。

  • 学习时直接使用权重。这些模型包括贝叶斯分类,决策树(C4.5和CART)等。关于C4.5,我们计算增益信息(突变信息)以确定哪个预测器将被选择作为下一个节点。因此,我们可以组合权重和熵来估计测量值。例如,我们将权重视为分布中样本的概率。给定X = [1,2,3,3],权重[3 / 8,1 / 16,3 / 16,6 / 16]。通常,X的交叉熵是(-0.25log(0.25)-0.25log(0.25)-0.5log(0.5)),但考虑到权重,其加权交叉熵为( - (3/8)登录(3/8) - (1/8)日志(1/8) - (9 / 16log(9/16)))。通常,C4.5可以通过加权交叉熵实现,其权重为[1,1,...,1] / N. 如果你想用C4.5算法实现AdaboostM.1,你应该阅读第339页“统计学习元素”中的一些内容。