gini impurity:
pa = 0;
for i in set
for j in set
if i==j continue;
else
pa += pi * pj;
pa就是该集合的gini impurity. pi表示i在集合中出现的概率
熵:
pa = 0;
for i in set
pa += -sigma(pi * log(pi))
pa, pi意义如上
这两种方式用来衡量决策树过程中,当前这一决策的好坏
通常采用熵的方式; 熵对混乱集合的判罚更重一些。
递归构造决策树:
已知一个集合, 集合元素由许多属性构成。 如何选择某个属性将该集合分成两个集合,且两个集合尽可能的“纯”。
信息增益infomation gain: 当前集合的熵, 与拆分后两个新集合的熵加权平均后的差值。 信息增益越大, 使用该属性对原集合划分效果会更好。
递归退出条件是: 集合的最优划分得到的熵比原集合的熵还要大。
两个集合的熵如何加权平均? 通常乘以每个集合的权重
=========================================
过拟合: 得到的决策树模型太过于拟合训练数据, 而对真实的、新数据没有好的区分能力。
解决办法: 剪枝。 对相同父节点的两个子节点, 计算合并两个子节点增加的熵是否低于一定的阀值; 低就合并
=========================================
对数值型属性的处理
采用方差作为评价函数来取代gini impurity或者熵
=========================================