请问老师,为什么e = entropy(y_l) + entropy(y_r)?为什么将数据分为两类之后,信息熵=两个子类的信息熵之和?
来源:12-3 使用信息熵寻找最优划分
宝慕林4453330
2018-07-12
写回答
1回答
-
抱歉,这里确实有问题。应该使用加权平均,而非算术平均。(在这里,我相当于使用算数平均值,直接除以2,只不过由于每个分类结果都除以2,在比较不同分类结果的时候,除以2就可以省略了。)
具体权值为尝试划分以后每个节点的数据量占全部数据量的百分比。假设尝试划分的节点中,数据总量为m,尝试划分以后,左孩子的数据量为m_l,右孩子的数据量为m_r,则左孩子的数据量占比p_l = m_l / m;右孩子的数据量占比为p_r = m_r / m,
我们尝试划分后的信息熵为:
e = p_l * entropy(y_l) + p_r * entropy(y_r)
由于在这里,我测试的数据集太小,整体分类结果也相对明显,使用算术平均和使用加权平均没有产生划分上的区别,所以没有测试出这个问题。抱歉。现在,我已经在课程官方的notebook上修改了这个问题,可以参考:
另外,下一小节的gini系数牵扯同样的问题,我也进行了修改,参考:https://github.com/liuyubobobo/Play-with-Machine-Learning-Algorithms/blob/master/12-Decision-Tree/04-Gini-Index/04-Gini-Index.ipynb
非常抱歉!
感谢你的问题,如果愿意,可以加我微信,我会发给你一个小红包:)liuyubobobo
再次抱歉。感谢指正!加油!:)
612018-07-14
相似问题