决策树(Decision Tree)

引用:https://github.com/datawhalechina/Daily-interview/blob/master/machine-learning/DecisionTree.md#%E7%AE%97%E6%B3%95%E5%8D%81%E9%97%AE
决策树(Decision Tree)
决策树是机器学习最常用的算法之一,它将算法组织成一颗树的形式。其实这就是将平时所说的if-then语句构建成了树的形式。 这个决策树主要包括三个部分:内部节点、叶节点和边。内部节点是划分的属性,边代表划分的条件,叶节点表示类别。构建决策树 就是一个递归的选择内部节点,计算划分条件的边,最后到达叶子节点的过程。
真题
1.决策树如何防止过拟合?
过拟合:一个假设在训练数据上能够获得比其他假设更好的拟合,但是在训练数据外的数据集上却不能很好的拟合数据.此时我们就叫这个假设出现了过拟合的现象。
原因1:样本问题
(1)样本里的噪音数据干扰过大,大到模型过分记住了噪音特征,反而忽略了真实的输入输出间的关系;(2)样本抽取错误,包括(但不限于)样本数量太少,抽样方法错误,抽样时没有足够正确考虑业务场景或业务特点,等等导致抽出的样本数据不能有效足够代表业务逻辑或业务场景;
(3)建模时使用了样本中太多无关的输入变量。
原因2:构建决策树的方法问题
在决策树模型搭建中,我们使用的算法对于决策树的生长没有合理的限制和修剪的话,决策树的自由生长有可能每片叶子里只包含单纯的事件数据或非事件数据,可以想象,这种决策树当然可以完美匹配(拟合)训练数据,但是一旦应用到新的业务真实数据时,效果是一塌糊涂。
针对原因1的解决方法:
合理、有效地抽样,用相对能够反映业务逻辑的训练集去产生决策树;
针对原因2的解决方法(主要):
剪枝:提前停止树的增长或者对已经生成的树按照一定的规则进行后剪枝。
剪枝的方法
剪枝是一个简化过拟合决策树的过程。有两种常用的剪枝方法:
(1)先剪枝(prepruning):通过提前停止树的构建而对树“剪枝”,一旦停止,节点就成为树叶。该树叶可以持有子集元组中最频繁的类;
(2)后剪枝(postpruning):它首先构造完整的决策树,允许树过度拟合训练数据,然后对那些置信度不够的结点子树用叶子结点来代替,该叶子的类标号用该结点子树中最频繁的类标记。后剪枝的剪枝过程是删除一些子树,然后用其叶子节点代替,这个叶子节点所标识的类别通过大多数原则(majority class criterion)确定。所谓大多数原则,是指剪枝过程中, 将一些子树删除而用叶节点代替,这个叶节点所标识的类别用这棵子树中大多数训练样本所属的类别来标识,所标识的类称为majority class .相比于先剪枝,这种方法更常用,正是因为在先剪枝方法中精确地估计何时停止树增长很困难。
2.信息增益比相对信息增益有什么好处?
信息增益偏向选择分支多的属性,容易导致过拟合。信息增益比率通过引入一个被称作分裂信息(Split information)的项来惩罚取值较多的Feature。
3.如果由异常值或者数据分布不均匀,会对决策树有什么影响?
异常值可以大幅度地改变数据分析和统计建模的结果,增加了误差差异,并降低了统计测试的能力。如果异常值是非随机分布的,则可以降低正态性可能影响具有实质意义的估计可能影响回归、方差分析等统计模型假设的基本假设
4.手动构建CART的回归树的前两个节点,给出公式每一步的公式推到

5.决策树和其他模型相比有什么优点?
相对于其他数据挖掘算法,决策树在以下几个方面拥有优势:
决策树易于理解和实现. 人们在通过解释后都有能力去理解决策树所表达的意义。
对于决策树,数据的准备往往是简单或者是不必要的 . 其他的技术往往要求先把数据一般化,比如去掉多余的或者空白的属性。
能够同时处理数据型和常规型属性。 其他的技术往往要求数据属性的单一。
是一个白盒模型如果给定一个观察的模型,那么根据所产生的决策树很容易推出相应的逻辑表达式。
易于通过静态测试来对模型进行评测。 表示有可能测量该模型的可信度。
在相对短的时间内能够对大型数据源做出可行且效果良好的结果。
6.决策树的目标函数是什么?
损失函数可以定义为
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
C(T)表示模型对训练数据的预测误差,即模型与训练数据的拟合程度,|T|表示模型复杂度,参数a>=0控制两者之间的影响。剪枝,就是当a确定时,选择损失函数最小的模型,即损失函数最小的子树。损失函数正好表示了对模型的复杂度和训练数据的拟合两者的平衡。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值