在 Adaboost 中更新权重
每个节点的权重?
每个型号的重量?
表重量列(更混乱)?初始权重设置为,其中M是数据点的数量。我假设 data2_1 是 data1_1 在通过 feature1 的新权重更新后的更新,但由于缺少关于表的标题等的描述,它有点模糊。
在对数据及其权重()和分数进行训练的分类器之后更新每个节点的权重。
是最终的分类器,但在表达式之前似乎缺少符号。这是每个分类器与其权重的乘积之和
AdaBoost 是一个二元分类器(它可以很容易地扩展到更多类,但公式有点不同)。AdaBoost 以加法方式构建分类树。
从训练数据集中为每个实例/观察分配权重。所以是观察的权重。最初,所有的权重都是相等的,都是其中是观察的数量。
使用 AdaBoost 构建的树使用每个观察的权重来计算节点中的所有内容(拆分测试、预测、分数)。与普通分类树的主要区别在于,您必须使用权重,而不是使用计数。一个小例子:考虑在某个节点中,您有 3 个标记为正的观察和 2 个标记为负的观察。例如,您将使用和比率来计算熵。在 AdaBoost 中使用的树中,您必须使用每个观察的权重,因此您将用于正标记观察,而用于负标记。熵将使用和。
为什么使用权重而不是计数(顺便说一下,当所有权重都为)? 因为在每棵树建成后,你会增加那些预测不好的观察的权重,并减少那些预测好的观察的权重。这个想法是因为 AdaBoost 是一种加法模型,一旦你学会了一些东西,你就会想把注意力吸引到仍然需要学习的东西上。
我提到每棵树都被添加到整个学习器中。然而,并不是每棵树都带来相同的贡献,也不是所有的树在性能上都是相同的。因此,您想思考一棵树对最终结果的影响有多大。因此,您有一个计算因子它对每棵树的贡献进行建模。
树节点上没有权重,不可能有。
建立 AdaBoost 和 AdaBoost.SAMME(多类版本)的论文没有在列上指定任何权重。我想,如果您希望之前可以进行特征工程,但是如果没有一些相当复杂的调整,列上的权重不适合 AdaBoost 的数学。
您发布的表指定了对行和特征的观察以及列上的目标变量。最后一列包含每个观察值的初始权重。
[后期编辑]
当我为了实现的目的而研究这个算法时,我已经阅读了所有可用的论文(我在某个地方有它们,但它们是打印出来的,而不是手头的)。但是,我记得 Hastie、Tibshirani、Friedman 的书 - The Elements of Statistical Learning 有一个非常好的描述,你可以在网上找到这本书,因为它是作者提供的。我建议你花一些时间在那里。


