剪枝是什么意思

  统计/机器学习 监督式学习    浏览次数:3547        分享
4

经常在决策树或者类似的模型里看到“剪枝”这个词。这个词在机器学习里到底是什么意思?

 

bigbear   2017-03-13 22:23



   1个回答 
8

剪枝(prune)是一种防止决策树模型过拟合(over-fitting)的一种手段。顾名思义,剪枝就是删去决策树中的一些树枝、树杈。


剪枝又分为两类,一个是预剪枝(pre-pruning)另一个是后剪枝(post-pruning)。


预剪枝就是在构建决策树的时候进行剪枝。通常决策树会不断生长,直到该树枝无法变得更纯(对于ID3决策树来说,就是无法使得熵更小)。我们可以通过设定一个阈值使得决策树提前终止生长。比如设定最小分叉样本数(sklearn RandomForest中的min_samples_split),当该树杈上的样本小于所设定的min_sample_splt,树就不再继续生长。


后剪枝就是在决策树在完全生长完之后,再剪去一些树枝、枝叶。方法也是类似的,我们先设定一个阈值。将某节点与其父节点合并,熵必然会增加,如果这个增加值小于这个阈值,我们最终就保留这个合并。这个过程由树叶逐渐向根部进行。


SofaSofa数据科学社区DS面试题库 DS面经

可爱多   2017-04-18 12:13



  相关主题

关于knn算法中kd树的问题   1回答

决策树的深度和数据特征个数的关系   1回答

python里实现一个简单的决策树   1回答

决策树可以做多元分类吗?   1回答

请问针对Adaboost、GBDT等集成学习同一个特征是否可以入模多次?   1回答

决策树剪枝有什么策略或者注意事项?   2回答

Adaboost里的树有没有可能权重是负数?   1回答

随机森林是如何计算测试样本的概率的?   1回答

python sklean中的决策树是用的哪一种决策树算法?   2回答

怎么得到randomforestregressor里每棵树的预测结果?   1回答

决策树怎么做增量学习或者online学习?   1回答

Gradient tree boosting和random forest (随机森林) 有什么区别和联系   1回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!