如何在训练弱学习者使用adaboost时使用体重

时间:2013-08-05 08:56:26

标签: machine-learning adaboost

以下是adaboost算法: enter image description here

它提到了“在训练数据上使用权重”,第3.1部分。

我不太清楚如何使用重量。我应该重新取样培训数据吗?

2 个答案:

答案 0 :(得分:13)

  

我不太清楚如何使用重量。我应该重新取样培训数据吗?

这取决于您使用的分类器。

如果您的分类器可以考虑实例权重(加权训练示例),那么您不需要重新采样数据。示例分类器可以是朴素贝叶斯分类器,其累加加权计数或加权k-最近邻分类器。

否则,您希望使用实例权重对数据进行重新采样,即,可以多次对具有更多权重的实例进行采样;而那些体重很轻的实例甚至可能不会出现在训练数据中。大多数其他分类器属于这一类。

实践

实际上,在实践中,如果你只依赖一个非常幼稚的分类器池,例如决策残余,线性判别式,则提升效果会更好。在这种情况下,您列出的算法具有易于实现的形式(有关详细信息,请参阅here): enter image description here选择alpha的位置(epsilon的定义与您的相似)。

enter image description here

示例

  

在平面中定义两类问题(例如,一个圆点   在一个广场内)并从一个随机的池中建立一个强大的分类   生成类型符号的线性判别式(ax1 + bx2 + c)。

两个类标签用红色十字和蓝点表示。我们这里使用一堆线性判别式(黄线)来构造天真/弱分类器的池。我们为图中的每个类生成1000个数据点(在圆圈内或不在圆圈内),并且20%的数据保留用于测试。

enter image description here

这是我得到的分类结果(在测试数据集中),其中我使用了50个线性判别式。训练误差为1.45%,测试误差为2.3%

enter image description here

答案 1 :(得分:1)

权重是在步骤2中应用于每个示例(样本)的值。然后在步骤3.3(wi)更新这些权重。

因此,最初所有权重都相等(步骤2),对于错误分类的数据,它们会增加,而对于正确分类的数据,它们会减少。因此,在步骤3.1中,您必须考虑这些值来确定新的分类器,更重视更高的权重值。如果你没有改变重量,那么每次执行步骤3.1时都会生成完全相同的分类器。

这些权重仅用于培训目的,它们不是最终模型的一部分。