我认为建立决策树最主要要解决以下两个问题:
1.树根怎么选,一般来说约上层的节点重要性越高
2.节点按什么阈值分裂效果最好
简单用一个例子来举例:
年龄 职业 是否购买mac
25 程序员 是
50 程序员 是
10 学生 否
20 学生 是
25 学生 否
30 程序员 是
25 程序员 否
回答第一点问题:
谁是更适合的根节点,那么假设我们按照年龄是否大于等于25来分类,那么分错的个数是3个,
按照职业是否是程序员来分类,那么分错的个数是2个,这表明按照职业来进行分类更适合作为根节点
回答第二个问题:
按照年龄是否大于等于25来分类,那么分错的个数是3个,如果我们按照年龄大于等于30来分类,那么分错的个数是2个,
这表明按照大于等于30来分类更合适
数学上的一些概念:
熵:熵越大,越混乱,熵越小,混乱越小
–注意这里和稳定的区别(他们传闻说是越稳定,越混乱,越不稳定,混乱越小),还是不理会这个概念了
熵 = -sum(P * logP), 当A和B平均分类时熵最大: -(0.5 * log0.5 + 0.5 * log0.5) =1
当全部分类为A或者B时,熵最小: -(1 * log1 + 0) = 0
前面的选择根节点或者分裂节点的目的都是为了熵减的目的
也就是比如label的熵为0.6,那么哪个特征的熵和0.6越接近越适合作为根节点,
对于节点分裂的阈值也是同理,哪个阈值导致的熵和0.6越接近,就用哪个作为分裂阈值
参考文章:https://zhuanlan.zhihu.com/p/30059442