我正在实施将使用 CART 和 C4.5 的 AdaBoost(Boosting)。我阅读了有关 AdaBoost 的信息,但我找不到很好的解释如何将 AdaBoost 与决策树一起加入。假设我有包含 n 个示例的数据集 D。我将 D 拆分为 TR 训练示例和 TE 测试示例。假设 TR.count = m,所以我设置的权重应该是 1/m,然后我使用 TR 构建树,我用 TR 测试它以获得错误的示例,并用 TE 测试以计算错误。然后我改变权重,现在我将如何获得下一个训练集?我应该使用什么样的采样(带或不带replacemnet)?我知道新的训练集应该更多地关注分类错误的样本,但我怎样才能做到这一点?那么 CART 或 C4.5 将如何知道他们应该关注具有更大权重的示例?
问问题
860 次
1 回答
1
据我所知,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/16)日志(1/16)-(9/16日志(9/16)))。C4.5一般可以通过加权交叉熵来实现,其权重为[1,1,...,1]/N。如果您想使用 C4.5 算法实现 AdaboostM.1,您应该阅读第 339 页中的一些内容,
于 2016-12-31T09:40:15.047 回答