机器学习(四):分而治之(上)——决策树分类
简单地说,一个困难的决定可以简化为一系列小的越来越具体的决定。
决策树
理解:从代表数据集的根节点开始,该算法选择最能预测目标类的特征,这些案例将被划分到这一特征的不同值的组中,这一决定形成了第一组树枝。继续分而治之其他节点,每次选择最佳的候选特征,直到达到停止标准。如果一个节点停止,可能具有以下情况:
- 节点上几乎所有的案例属于同一类
- 没有剩余的特征来分辨案例之间的区别
- 决策树已经到达预先定义的大小限制
C5.0决策树算法
- 选择最佳分割
我们需要一种方式寻找分割数据的特征值,即分区中主要包含来源于一个单一类的案例。这个算法使用的是熵度量纯度。样本数据的熵表示分类值如何混杂在一起,最小值0表示是完全同质的,1表示样本凌乱的最大数量。
-
修剪决策树
如果决策树增长过大,将会使许多决策过于具体,模型将会过度拟合训练数据。提前停止法:又叫预剪枝决策树法,一旦决策树达到一定数量,或者决策节点仅含有少量案例,就停止树的增长。很难把握,只有决策树生长到足够大才能学习到
后剪枝决策树法:比预剪枝更有效,如果决策树生长过大,根据节点处的错误率使用修剪准则将决策树减小到更合适的大小。 提高决策树的准确性
自适应增强:boosting算法,许多个决策树构建的过程,然后这些决策树通过投票表决的方法为每个案例选择最佳分类。可以理解为,通过将多个能力较弱的学习算法组合在一起,比任何一个单独的算法要强得多。在R软件中,一般加入参数trials=10,作为使用独立决策树的数量。不是一定能提高准确性,可以在改进算法性能的时候进行尝试。犯比其他错误更严重的错误
代价矩阵:将惩罚因子分配到不同类型的错误上,用来指定每种错误相对于其他错误有多少倍的严重性。例如:
0 4
1 0
正确分类时没有代价,错误时有1和4两种代价。
例子:使用c5.0决策树识别高风险银行贷款。