网站首页 > 技术文章 正文
上一节中我们讲解了决策树中的回归树的问题Cart树,我们再来回顾下,决策树的四个问题。1、它分几支。2、它怎么判断分裂条件。有Gini系数,MSE等。3、它什么时候停止?4、叶子节点怎么表达。对于分类来说是类别,对于回归来说是叶子节点内的平均数。这一节我们讲解决策树中的何时停止问题。
目录
1-预剪枝
2-后剪枝
3-叶子节点如何表达
假如你不限制什么时候停止,你不人为的把它停下来,你最终得到的这棵树在训练集上表现出来的正确率是百分之多少?如果你不限制深度的话,它一定会分配到百分之百。哪怕是100个样本,我有100个叶子结点。总能够把你给分到每一个都百分之百准确。但这样会造成什么问题呢?过拟合。在开始咱们在讲线性回归的时候。给大家讲过过拟合。其实本质上,模型太复杂了。那么对于一颗树模型,什么叫复杂,什么叫不复杂?是树越深,就相当于分的越细,最后都细枝末节。那些没有关系的条件也在那分。这个就是就明显过拟合了。那么通常我们会限制树的深度来防止过拟合,怎么限制这个树的深度呢?分为两种方式,我们都管它叫做剪枝,分为预剪枝和后剪枝。
假如我们说过拟合是模型上的一种病的话,它有什么症状呢?最典型的症状就是它在训练集上的表现很好,在测试集上的表现差。这就叫做过拟合。说明你走过了,要往回走一走。剪枝就是想让这个树往回退一退。通常两种剪枝方式更合理的是后剪枝。而更简单的是预剪枝。我们先说下预剪枝。
1-预剪枝
其实预剪枝就是人为的给它固定一些条件。比如我们决策树里边要要传的超参数。
这些项,实际上就是预剪枝条件。比如min_samples_split就是这个节点到底还有多少个样本。我才会分裂,否则我就干脆不分了。假如你设置成100的话,当这个节点里只剩下80条数据。我就不再继续往下分了。不管你结果有多差,我就把你当做叶子节点了。再比如min_samples_leaf就是叶子节点分完了之后,至少有多少个叶子结点在这个里边我才承认,这次分裂能够分。比比如这设置成10。假如分到最后剩120条数据,分为两个子节点,一个是3条,另一个是117条。3<10,它就认为这次分裂是不合法,它要退回去。还要保留着120条当做叶子节点。最大深度max_depth和最大叶子节点max_leaf_nodes的数量,两个超参数其实彼此有些矛盾,当固定为二叉树的时候,固定最大深度情况下,叶子节点数量其实是一定的,这两个超参数必定有一个可能会失效。 所以超参数基本上选择的都是最大深度。 这些都是在分裂之前人为的给它设置的一些条条框框。一些规则,你触碰到我这些规则了,你就不要再分裂了。等于在训练之前就做好了这个剪枝的这个条件了。所以预剪枝它的运算是非常简单的。
2-后剪枝
后剪枝就是我先肆无忌惮的让你把这个数给生长好。然后把一个一个的分裂,从最底下的叶子节点开始尝试cancel掉,cancel掉之后检验一下,在测试集上效果变好了吗?如果变好了,那么说明这次分裂确实多余了。就真的把它剪掉。然后再试着cancel下一个叶子节点。一个一个的cancel,cancel到你的训练集上的表现好了。这会儿就后剪枝完成。那我们说实际上后剪枝是一种自动化调参的一种方式。
实际上,后剪枝和预剪枝哪一个用的多呢?实际上预剪枝用的多。因为决策树再怎么剪枝它仍然不尽如人意,所以我们虽然讲了决策树的各种,但实际上真正用的时候是把好多好多决策树放在一起用的。没有任何人去用单独一棵决策树去让它生长,去工作。我们讲的这个十分复杂的决策树,只是你们未来能够用的集成学习的一个根源。它只是若干个工人中的一个。所以你没有必要把这一个工人弄得那么完美,还不辞辛苦地给它后剪枝。所以大部分时候使用的都是预剪枝来完成限制数的实际工作。
3-叶子节点如何表达
我们看下最后一个问题,叶子节点如何表达呢?对于分裂,当达到了剪枝条件的时候就停止了,假如一个三分类问题,其中一个叶子节点里有80个1,10个2,1个3,未来要有一个新数据落到这个里边,分为谁的可能性最好? 只能说是1最好。实际上在分类过程中就是一个投票机制,这个叶子节点里面哪一类最多,未来落在这个节点里面的新数据,就认为它被分为哪一类。而回归问题就是取里面的平均值。
下一节我们讲解很重要的集成学习的概念。
猜你喜欢
- 2024-11-12 电力系统领域,电力系统暂态稳定判别方法
- 2024-11-12 机器学习“司马家族”——树族 机器学习实战树回归
- 2024-11-12 机器学习之图解 GBDT 的构造和预测过程
- 2024-11-12 机器学习算法之随机森林算法通俗易懂版本
- 2024-11-12 决策树之 GBDT 算法 - 回归部分 gbdt和决策树
- 2024-11-12 大数据:如何用决策树解决分类问题
- 2024-11-12 几种特征选择方法的比较,孰好孰坏?
- 2024-11-12 决策树算法之随机森林 决策树和随机森林预测结果
- 2024-11-12 3分钟掌握机器学习中的决策树 机器学习和深度学习决策树
- 2024-11-12 一文看懂决策树分类模型理论和应用
你 发表评论:
欢迎- 11-13第一次养猫的人养什么品种比较合适?
- 11-13大学新生活不适应?送你舒心指南! 大学新生的不适应主要有哪些方面
- 11-13第一次倒班可能会让人感到有些不适应,以下是一些建议
- 11-13货物大小不同装柜算法有哪些?怎么算?区别有哪些?
- 11-13五大基本算法 五大基本算法是什么
- 11-13高级程序员必备:分治算法分享 分冶算法
- 11-13最快速的寻路算法 Jump Point Search
- 11-13手机实时人工智能之「三维动作识别」:每帧只需9ms
- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)