1 决策树
决策树是一种能解决分类或回归问题的机器学习算法。
其有良好的扩展性,可以产生多种变种。
并且结合模型融合方法扩展新的算法AdaBoost,GBDT等算法。
参考文章:
C4.5算法详解(非常仔细):https://blog.csdn.net/zjsghww/article/details/51638126
解释很详细:http://www.saedsayad.com/decision_tree.htm
决策树算法原理(上):https://www.cnblogs.com/pinard/p/6050306.html
2 决策树算法
- 算法思想
决策树训练的过程就不段选择分裂属性将样本拆分到子树的子节点。最佳分裂属性应该是能让树分裂完成后,每棵子树的样本类别更纯,所以衡量不纯度的属性适合作为分裂的评价指标。
- 算法实例
以一个算法代入实例帮助理解决策树算法ID3,其他算法代入和使用方式类似。
A Step by Step ID3 Decision Tree Example:
https://sefiks.com/2017/11/20/a-step-by-step-id3-decision-tree-example/
2.1 ID3
2.1.1 信息熵
熵越大,样本类别越多。使用信息熵衡量分裂后的不纯度。信息增益相当于看分裂前后的熵的减少量。
We can summarize the ID3 algorithm as illustrated below
信息熵:
Entropy(S) = ∑ – p(I) . log2p(I)
信息增益:
Gain(S, A) = Entropy(S) – ∑ [ p(S|A) . Entropy(S|A) ]
These formulas might confuse your mind. Practicing will make it understandable.
2.1.2 算法流程
以下是算法描述:其中T代表当前样本集,当前候选属性集用T_attributelist表示。
(1)创建根节点N
(2)为N分配类别
(3)if T都属于同一类别or T中只剩下一个样本则返回N为叶节点,为其分配属性
(4)for each T_attributelist中属性执行该属性上的一个划分,计算此划分的信息增益
(5)N的测试属性test_attribute=T_attributelist中最大信息增益的属性
(6)划分T得到T1 T2子集
(7)对于T1重复(1)-(6)
(8)对于T2重复(1)-(6)
2.2 C4.5
2.2.1 信息增益率
算法倾向选择特征中属性值角度的特征。这时可以规范化信息增益,除以这个属性的熵值(