我构建了一个决策树,每个样本均等加权。现在构建一个决策树,它给不同的样本赋予不同的权重。我需要做的唯一改变是在计算信息增益之前找到预期的熵。我有点困惑如何继续,请解释....
例如:考虑一个包含p个正节点和n个负节点的节点。因此节点熵将为-p/(p+n)log(p/(p+n)) -n/(p+n)log(n/(p+n))
。现在,如果发现拆分以某种方式将父节点划分为两个子节点。假设子节点1包含p'积极的和n'否定(所以孩子2包含p-p'和n-n')现在,对于孩子1,我们将计算为父母计算的熵并获取到达它的概率,即(p'+n')/(p+n)
。现在预期熵减少entropy(parent)-(prob of reaching child1*entropy(child1)+prob of reaching child2*entropy(child2))
。并且将选择具有最大信息增益的分割。
现在,当我们为每个样本提供权重时,执行相同的过程。需要进行哪些更改?需要对adaboost进行哪些更改(仅使用树桩)?
答案 0 :(得分:2)
(我想这与一些评论中的想法相同,例如@Alleo)
假设您有p
个正面示例和n
个反面示例。我们将示例的权重表示为:
a1, a2, ..., ap ---------- weights of the p positive examples
b1, b2, ..., bn ---------- weights of the n negative examples
假设
a1 + a2 + ... + ap = A
b1 + b2 + ... + bn = B
正如您所指出的,如果示例具有单位权重,则熵将为:
p p n n
- _____ log (____ ) - ______log(______ )
p + n p + n p + n p + n
现在您只需要将p
替换为A
并将n
替换为B
,然后您就可以获得新的实例加权熵。
A A B B
- _____ log (_____) - ______log(______ )
A + B A + B A + B A + B
注意:这里没什么特别的。我们所做的只是弄清楚这组正面和负面例子的加权重要性。当例子加权时,正例的重要性与所有例子的正数w.r.t的比例成正比。当示例的权重不均等时,我们只需执行加权平均即可得出正例的重要性。
然后按照相同的逻辑,通过比较分割前和分割属性后的熵,选择信息增益最大的属性。