决策树优化策略05

2018-08-10  本文已影响175人  DeamoV

First

附上我的博客中这个文章的地址

剪枝优化

决策树的剪枝是决策树算法中最基本、最有用的一种优化方案,分为以下两类:

后置剪枝

后置剪枝的核心思想其实就是交叉验证,其通过对完全树进行剪枝,一直剪到只剩下树根,这样子便得到许多树,然后通过使用数据集分别对他们验证,然后根据结果选择最优树。

决策树剪枝过程

while 生成的决策树不为1个节点:
    计算所有内部非叶子节点的剪枝系数;
    选择最小剪枝系数的节点:
        if 有多个最小剪枝系数节点:
            选择包含数据项多的节点删除
        else:
            删除节点
        将剪枝后的树存入之后用的决策树集
for 决策树 in 决策树集:
    用数据集验证决策树,得到最优剪枝后的决策树
    

其最后用于验的损失函数如下公式1.1:

loss = \sum_{t=1}^{leaf} \frac{D_t}{D}H(t)
剪枝系数的引入:
剪枝系数的目的为,平衡准确度和树的节点数量之间的关系。所以很自然的想到我们常用的处理手法,在损失函数中引入叶子结点的变量,得到公式1.2。
loss_{\alpha} = loss + \alpha*leaf
设剪枝前的损失函数为loss(R),剪枝后的损失函数为loss(r),由于我们是想让剪枝前后的准确率尽量不变,所以让剪枝前后的损失函数相等,化简得公式1.3,即剪枝系数。注:剪枝后为根节点,所以r=1
\alpha = \frac{loss(r)-loss(R)}{R_{leaf}-1}
最后,由于我们想尽量减去的叶子结点多点,又同时保持准确度,故剪枝系数越小越好。

上一篇 下一篇

猜你喜欢

热点阅读