基于分布的弱学习者:决策树桩

weak Learners based on distributions : Decision stump

我需要提升决策树桩弱 classifier。因此,对于每次迭代,我都必须根据某些权重来训练弱 classifier。然后我将在每次迭代后更新权重。到目前为止我已经明白了。但我不清楚的部分是 "Train decision stump weak classifier based on weights" 。他们究竟是怎么做到的?谁能通俗地解释一下?

假设我有训练数据集{(x1,y1),(x2,y2).......,(xm,ym)} X 是特征(比如 10),y 是二进制 class

最初权重是 w(x) = 1/m

因此决策树桩弱学习器应该根据权重给出 h(x),它应该是二进制的。

该算法是如何工作的?决策树桩将采用哪些特征?

对于提升任务,您需要在算法的每次迭代中选择最佳 classifier。为此,您需要最小化数据集上树桩相对于权重的平均误差,因此您必须在计算 classifier 的误差度量时考虑对象的权重。因此,classifier 对大权重对象的错误标记的惩罚将大于对小权重对象的错误标记的惩罚。

你可以看我的implementation在R语言上对决策树的提升,效果很好,对于决策树桩,只需将第132行的树深度改为1,你可以用不同的数字测试准确率class 的 ifiers 改变参数 T.

如果您需要更深入的理解:您可以按照与深度为 1 的树相同的方式学习树桩。要在加权数据集上学习树,您需要选择特征和值,根据所选特征以最佳方式将数据集分成两部分到加权指标,例如 Entropy and Information Gain。您可以使用 for 循环遍历所有可用特征,在嵌套循环中对选择的特征进行排序,并根据所选特征和分隔符值尝试将数据集所有可能的分离分成两组 S,然后计算每个集合的熵,因为它写在维基百科上, 而不是将 p(x) 计算为

The proportion of the number of elements in class x to the number of elements in set S

您需要将集合中具有 class x 的对象的所有权重相加,然后将此数字除以该集合中所有对象权重的总和。

p(x)

其中 W - 集合 S 中对象的所有权重,以及 W_x - 集合 S 中对象的所有权重 with class x.

然后你可以计算信息增益,但是同样,你需要使用加权比例p(t)而不是维基百科中的变体(数字的比例)。

p(t)

其中 W_S - 来自初始(未除以分隔符)集合的对象权重集。 和 W_t - 来自集合 t 的一组对象的权重(通过用一些分隔符值分隔 S,您将得到 2 个集合的 t)

选择能给您带来最大收益的特征和分隔符值,仅此而已,您刚刚学习了加权数据上的新树桩 classifier,可以开始工作了。

我做了一些图片来提供计算示例,这里我只选择了 1 个分隔符,您需要检查每个可能的分隔符的增益。