对于提升任务,您需要在算法的每次迭代中选择最佳分类器。为此,您需要最小化数据集上树桩相对于权重的平均误差,因此在计算分类器的误差度量时必须考虑对象的权重。因此,分类器对大权重对象的错误标记的惩罚将大于对小权重对象的错误标记的惩罚。
您可以看到我在 R 语言上对决策树进行提升的实现,它运行良好,对于决策树桩,只需将第 132 行的树深度更改为 1,您可以使用不同数量的分类器更改参数 T 来测试准确性。
如果您需要更深入的理解:您可以使用与深度树 1 相同的方式来学习树桩。要在加权数据集上学习树,您需要根据加权指标选择将数据集以最佳方式分离为 2 部分的特征和值,例如例如熵和信息增益。您可以使用 for 循环遍历所有可用特征,在嵌套循环中对选取的特征进行排序,并根据所选特征和分隔值尝试将数据集所有可能的分离为两组 S,然后计算每个集合的熵,因为它是写在维基百科上的, 但不是将 p(x) 计算为
类 x 的元素个数与集合 S 的元素个数的比例
您需要将集合中具有 x 类的所有对象的权重相加,然后将此数字除以该集合中所有对象权重的总和。
其中- 集合 S 中的所有对象的权重,以及- 集合 S中具有类 x的所有对象的权重。
然后您可以计算信息增益,但同样,您需要使用加权比例 p(t) 而不是维基百科中的变体(数字的比例)。
其中- 初始(不除以分隔符)集合中的对象权重集。和- 来自集合 t 的一组对象的权重(通过用一些分隔符值分隔 S,您将获得 2 个集合 t)
选择能给你带来最大收益的特征和分隔符值,仅此而已,你刚刚学习了关于加权数据的新树桩分类器,它已经准备好工作了。
我制作了一些图片来提供计算示例,这里我只选择了 1 个分隔符,您需要检查每个可能的分隔符的增益。