树模型(1)——决策树常见面试题整理

决策树

1.决策树的原理

决策树是一种树结构,从根节点出发,每个分支都将训练数据划分成了互不相交的子集。分支的划分可以以单个特征为依据,也可以以特征的线性组合为依据。决策树可以解决回归和分类问题,在预测过程中,一个测试数据会依据已经训练好的决策树到达某一叶子节点,该叶子节点即为回归或分类问题的预测结果。

从概率论的角度理解,决策树是定义在特征空间和类空间上的条件概率分布。每个父节点可以看作子树的先验分布,子树则为父节点在当前特征划分下的后验分布。

2.信息增益和信息增益率的理解
  • 1)信息熵:信息熵用来度量样本集合的纯度
    在这里插入图片描述

    信息熵值越小,D 的纯度越高。

  • 2)信息增益:信息增益用来描述一次划分之后纯度的提升有多大。用不同的属性划分样本,会得到不同的信息增益。在 ID3 决策树算法中,我们取能使信息增益最大,即划分后纯度提升最大的属性作为当前决策树的划分属性。

在这里插入图片描述

公式前一项为未划分时的信息增益,后一项为每个子树的信息增益乘以权重的和,权重的意义是使样本数多的子节点更重要。

  • 3)信息增益率:使用信息增益当作 cost function 会对可取值数目较多的属性有所偏好,使用信息增益率可以减小这种偏好。
    在这里插入图片描述

    IV 是属性 a 的固有值,a 的可能取值数目越多(V 越大),IV(a) 的值通常越大,信息增益率就会减小。

    显然信息增益率偏好可取值数目少的属性,不能直接使用它当作 cost function,在 C4.5 决策树算法中,先从侯选属性里找出信息增益高于平均值的属性们,再从中选取信息增益率最高的。

3.决策树出现过拟合的原因及解决办法
  • 原因:
    • 在决策树构建的过程中,对决策树的生长没有进行合理的限制(剪枝);
    • 样本中有一些噪声数据,没有对噪声数据进行有效的剔除;
  • 解决办法
    • 选择合理的参数进行剪枝,可以分为预剪枝和后剪枝,我们一般采用后剪枝的方法;
    • 利用K-folds交叉验证,将训练集分为K份,然后进行K次交叉验证,每次使用K-1份作为训练样本数据集,另外一份作为测试集;
    • 减少特征,计算每一个特征和响应变量的相关性,常见得为皮尔逊相关系数,将相关性较小的变量剔除;当然还有一些其他的方法来进行特征筛选,比如基于决策树的特征筛选,通过正则化的方式来进行特征选取等(决策的正则化,例如,L1和L2正则,具体是对谁的正则呢?怎样正则的呢?)。
4.如何对决策树进行剪枝?

剪枝是防止决策树过拟合的方法。一棵完全生长的决策树很可能失去泛化能力,因此需要剪枝。

  • 1)剪枝的策略

    剪枝分为预剪枝和后剪枝两种,预剪枝是在构建决策树时抑制它的生长,后剪枝是决策树生长完全后再对叶子节点进行修剪。

  • 2)预剪枝

    • 设置一个树的最大高度/深度或者为树设置一个最大节点数,达到这个值即停止生长
    • 对每个叶子节点的样本数设置最小值,生长时叶子节点样本数不能小于这个值
    • 判断每次生长对系统性能是否有增益

    方法 3 里,对于一个决策树,每次生长前,可以判断生长后系统在验证集上准确度是否提升,如果经过一次生长,系统在验证集上的准确度降低了,那么中止这次生长。

  • 3)后剪枝

    后剪枝方法是对一棵已经完全生长的决策树进行剪枝

    • 错误率降低剪枝(Reduced-Error Pruning)
    • 悲观剪枝(Pessimistic Error Pruning)
    • 代价复杂度剪枝(Cost-Complexity Pruning)

    我们重点介绍第一种。错误率降低剪枝的方法比较直观,从下至上遍历所有非叶子节点的子树,每次把子树剪枝(所有数据归到该节点,将数据中最多的类设为结果),与之前的树在验证集上的准确率进行比较,如果有提高,则剪枝,否则不剪,直到所有非叶子节点被遍历完。

  • 4)预剪枝和后剪枝的优缺点比较

    时间成本方面,预剪枝在训练过程中即进行剪枝,后剪枝要在决策树完全生长后自底向上逐一考察。显然,后剪枝训练时间更长。预剪枝更适合解决大规模问题。

    剪枝的效果上,预剪枝的常用方法本质上是基于贪心的思想,但贪心法却可能导致欠拟合,后剪枝的欠拟合风险很小,泛化性能更高。

    另外,预剪枝的有些方法使用了阈值,如何设置一个合理的阈值也是一项挑战。

5.决策树需要进行归一化处理吗

概率模型不需要归一化,因为他们不关心变量的值,而是关心变量的分布和变量之间的条件概率。决策树是一种概率模型,数值缩放,不影响分裂点位置。所以一般不对其进行归一化处理。

6.决策树如何处理缺失值

https://blog.csdn.net/u012328159/article/details/79413610

该博文对下述需处理缺失值的三种情况有详细的描述:

  • 如何在训练样本属性缺失的情况下进行划分属性的选择?
  • 给定划分属性,若样本在该属性上的值是缺失的,那么该如何对这个样本进行划分?
  • 如何解决测试样本中属性有缺失值的情况?
7.决策树与逻辑回归的区别
  • 对于拥有缺失值的数据,决策树可以应对,而逻辑回归需要挖掘人员预先对缺失数据进行处理;
  • 逻辑回归对数据整体结构的分析优于决策树,而决策树对局部结构的分析优于逻辑回归;(决策树由于采用分割的方法,所以能够深入数据内部,但同时失去了对全局的把握。一个分层一旦形成,它和别的层面或节点的关系就被切断了,以后的挖掘只能在局部中进行。同时由于切分,样本数量不断萎缩,所以无法支持对多变量的同时检验。而逻辑回归,始终着眼整个数据的拟合,所以对全局把握较好。但无法兼顾局部数据,或者说缺乏探查局部结构的内在机制。)
  • 逻辑回归擅长分析线性关系,而决策树对线性关系的把握较差。线性关系在实践中有很多优点:简洁,易理解,可以在一定程度上防止对数据的过度拟合。(我自己对线性的理解:1,逻辑回归应用的是样本数据线性可分的场景,输出结果是概率,即,输出结果和样本数据之间不存在直接的线性关系;2,线性回归应用的是样本数据和输出结果之间存在线性关系的场景,即,自变量和因变量之间存在线性关系。)
  • 逻辑回归对极值比较敏感,容易受极端值的影响,而决策树在这方面表现较好。
  • 应用上的区别:决策树的结果和逻辑回归相比略显粗糙。逻辑回归原则上可以提供数据中每个观察点的概率,而决策树只能把挖掘对象分为有限的概率组群。比如决策树确定17个节点,全部数据就只能有17个概率,在应用上受到一定限制。就操作来说,决策树比较容易上手,需要的数据预处理较少,而逻辑回归则要去一定的训练和技巧。
  • 执行速度上:当数据量很大的时候,逻辑回归的执行速度非常慢,而决策树的运行速度明显快于逻辑回归。
8.决策树的优缺点
  • 优点
    • 决策树可以可视化,易于理解和解释;
    • 数据准备工作很少。其他很多算法通常都需要数据规范化,需要创建虚拟变量并删除空值等;
    • 能够同时处理数值和分类数据,既可以做回归又可以做分类。其他技术通常专门用于分析仅具有一种变量类型的数据集;
    • 效率高,决策树只需要一次构建,反复使用,每一次预测的最大计算次数不超过决策树的深度;
    • 能够处理多输出问题,即含有多个标签的问题,注意与一个标签中含有多种标签分类的问题区别开;
    • 是一个白盒模型,结果很容易能够被解释。如果在模型中可以观察到给定的情况,则可以通过布尔逻辑轻松解释条件。相反,在黑盒模型中(例如,在人工神经网络中),结果可能更难以解释。
  • 缺点
    • 递归生成树的方法很容易出现过拟合。
    • 决策树可能是不稳定的,因为即使非常小的变异,可能会产生一颗完全不同的树;
    • 如果某些分类占优势,决策树将会创建一棵有偏差的树。因此,建议在拟合决策树之前平衡数据集。

欢迎关注公众号:AI与Quant。持续更新,谢谢。

参考资料

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值