决策树算法常见问题(面试相关)

Posted smile-yan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了决策树算法常见问题(面试相关)相关的知识,希望对你有一定的参考价值。

整理一下决策树常见问题。

0. 相关术语

  • 决策树(Decision Trees, DTs)
  • ID3
  • C4.5
  • CART
  • 信息熵
  • 信息增益
  • 信息增益率
  • 基尼系数

1. 简单描述什么是决策树算法

决策树算法是一种用于分类和回归的非参数化的监督学习方法。在分类问题中,表示基于特征对实例进行分类的过程,可以认为是if-then的集合,也可以认为是定义在特征空间与类空间上的条件概率分布。

2. 决策树算法的分类

算法ID3C4.5CART
支持算法分类分类分类/回归
树结构多叉树多叉树二叉树
特征选择信息增益信息增益率基尼系数
均方差
连续值处理不支持支持支持
缺失值处理不支持支持支持
剪枝不支持支持支持

3. 决策树算法的优缺点

sklearn 决策树

优点:

  • 是一种白盒模型,易于理解和解释,支持可视化;。
  • 几乎不需要预处理;
  • 计算成本低。使用树(即预测数据)的成本与用于训练树的数据点的数量成对数关系;
  • 能够处理数字和分类数据;
  • 能够处理多输出问题;
  • 支持统计测试验证模型。这就有可能解释模型的可靠性。

缺点:

  • 容易过拟合;
  • 决策树可能不稳定,因为数据中的微小变化可能会导致生成完全不同的树。通过在集成算法中使用决策树,可以缓解此问题。
  • 分类样本数量不一致时,结果可能出现偏差。
  • 有些概念很难学习,因为决策树不容易表达它们。例如异或、奇偶校验或多路复用器问题。

4. 相关概念

4.1 信息熵(Entropy)

香农把信源所含有的信息量称为信息熵(Entropy),是指数据分区 D D D 所含信息量的统计平均值。

D D D 中有 m m m 个元组分类的信息熵计算如下:

i n f o ( D ) = − ∑ i = 1 m p i log ⁡ 2 p i info(D) = - \\sum_{i=1}^m p_i \\log_2 p_i info(D)=i=1mpilog2pi

其中 p i p_i pi 是指某事件发生的概率。

4.2 信息增益 --> ID3

信息熵增益是指一个特征能够为分类系统带来多少信息,带来的信息越多,该特征越重要。

I G ( Y ∣ X ) = I n f o ( Y ) − I n f o ( Y ∣ X ) IG(Y|X) = Info(Y) - Info(Y|X) IG(YX)=Info(Y)Info(YX)

I n f o ( Y ∣ X ) Info(Y|X) Info(YX) 表示条件熵,表示当 X X X 条件下 Y Y Y 的信息熵。

以信息增益作为特征选择依据的弊端:信息增益会偏向分支较多的特征。

4.3 信息增益率 --> C4.5

信息增益率能改善以上问题。

I G r a t i o = I G ( Y ∣ X ) I n f o ( X ) IG_{ratio} = \\frac{IG(Y|X)}{Info(X)} IGratio=Info(X)IG(YX)

4.4 基尼系数 --> CART

基尼系数(Gini),也称基尼不纯度,来自经济学中的概念,用来衡量一个国家和地区的财富分配水平,在机器学习中,主要用于分类,推荐等算法。

Gini 系数的计算公式为:

G i n i ( D ) = 1 − ∑ i = 1 n p i 2 Gini(D) = 1-\\sum_{i=1}^n p_i^2 Gini(D)=1i=1npi2

Gini 用于特征选择时,

5. 三种决策树算法

5.1 ID3

参考博客 https://blog.csdn.net/choven_meng/article/details/82878018

ID3 算法的核心思想是:以 信息增益 度量属性选择,选择分裂后 信息增益最大 的属性进行分裂。

ID3 算法的缺点:

  • 不能对连续数据进行处理,只能通过连续数据离散化进行处理;
  • 采用信息增益进行数据分裂容易偏向取值较多的特征;
  • 缺失值不好处理。
  • 没有采用剪枝,决策树的结构可能过于复杂,出现过拟合。

C4.5

C4.5 算法的核心思想是:以 信息增益率 度量属性选择,选择分裂后 信息增益率最大 的属性进行分裂。

C4.5 在 ID3 的基础上的改进部分(4个问题一一对应):

  • 将连续的特征离散化,使得 C4.5 能处理连续值;

  • 采用信息增益率作为度量标准;

  • 添加了对缺失值的处理方法。展开

  • 引入正则化系数进行初步的减枝,降低模型复杂度,降低过拟合可能性。

4.6 CART

CART,classification and regression tree,分类回归树。

CART 算法的 核心思想 是:以 基尼增长率 度量属性选择,选择 基尼增长率最大 的属性进行分裂。

分裂的目的是为了能够让数据变纯,使决策树输出的结果更接近于真实值。

  • 当 CART 是分类树时,采用 GINI 值作为节点分裂的依据;
  • 当 CART 是回归树时,采用 样本的最小方差作为分裂依据。

在训练的过程中,

  • 当 CART 是分类树时,基尼系数最小化准则;
  • 当 CART 是回归树时,平方误差最小化准则。

回归方差计算公式为:

σ = ∑ ( x i − μ ) 2 \\sigma = \\sqrt{\\sum (x_i-\\mu)^2} σ=(xiμ)2

CART 算法主要分为两个步骤:

  • 将样本递归划分构建决策树。
  • 用验证数据进行剪枝。

5. 决策树的基本过程

决策树分类算法通常分为三个步骤:

  • 特征选择;
  • 决策树生成;
  • 决策树修剪。

构造好的决策树的关键在于如何选择好的逻辑判断或属性。

决策树相关算法的不同主要是纯度的计算方法不同(ID3 和 ID4.5,CART)。

5.1 特征选择

CSDN 博客

特征选择在于选取对训练数据具有分类能力的特征,可以提高决策树学习的效率。通常特征选择的准则是信息增益或信息增益率。

特征选择的划分依据:这一特征将训练数据集分割成子集,使得各个子集在当前条件下有最好的分类,那么就应该选择这个特征。(将数据集划分为纯度更高,不确定性更小的子集的过程。)

5.2 决策树生成

5.3 决策树剪枝

决策树最容易出现过拟合,因而一般情况下需要进行剪枝,缩小树的规模,缓解过拟合。

两种基本的剪枝决策:

  • 预先剪枝:在生成树的同时决定是继续对不纯的训练子集进行划分还是停机。
  • 后剪枝:为一种拟合-化简的两阶段方法。首先生成与训练数据完成拟合的一棵决策树,然后从树的叶子开始剪枝,逐步向根的方向剪。剪枝时要用一个测试数据集,如果存在某个叶子剪去后使用在测试集上的准确度或其他测度不降低,则剪去该叶子。

6. 决策树停止生长的条件

  1. 达到最大叶子节点数;
  2. 达到树的最大深度;
  3. 所有特征用完,无法继续分裂;
  4. 特征没有用完,达到不了分裂阈值或者分裂后叶子的样本数不满足特定条件。

7. 更多内容

其他内容将会继续更新添加。希望能够帮到需要的小伙伴们。

Smileyan
2021.10.24 22:22

以上是关于决策树算法常见问题(面试相关)的主要内容,如果未能解决你的问题,请参考以下文章

weka 代码 算法 j48 决策树 c4.5

数据挖掘常用算法之决策树算法

ML之监督学习算法之分类算法一 ———— 决策树算法

Python机器学习算法之决策树算法

机器学习之决策树

机器学习算法之决策树