机器学习-决策树系列-决策树-剪枝-CART算法-27

发布时间 2024-01-04 00:32:23作者: jack-chen666

1. 剪枝

将子树还原成一个叶子节点:

是解决过拟合的一个有效方法。当树训练得过于茂盛的时候会出现在测试集上的效果比训练集上差不少的现象,即过拟合。可以采用如下两种剪枝策略。

前剪枝,设置超参数抑制树的生长, 例如:max_depth max_leaf_nodes

2. CCP—代价复杂度剪枝(CART)

决策树构建好后,然后才开始裁剪, 叫做post pruning 后剪枝。
将 子树用一个叶子节点代替,降低了准确率(增加了错误率)这个是cost(代价),但是剪枝降低了树的复杂性complexity,
参考sklearn官网:https://scikit-learn.org/stable/auto_examples/tree/plot_cost_complexity_pruning.html#sphx-glr-auto-examples-tree-plot-cost-complexity-pruning-py
Greater values of ccp_alpha increase the number of nodes pruned.越大的α值 被剪枝的节点就越多。

该算法为子树Tt定义了代价(cost)和复杂度(complexity),以及一个可由用户设置的衡量代价与复杂度之间关系的参数α

|N1|:子树Tt中的叶节点数;
还原成一个叶子结点,减少的叶子节点数 就是:|N1|-1
R(t):结点t的错误代价,计算公式为R(t)=r(t)*p(t),r(t)为结点t的错分样本率,p(t)为落入结点t的样本占所有样本的比例;
R(Tt):子树Tt错误代价,计算公式为R(Tt)=∑R(i)。

举个例子: