【机器学习基础笔记(四)】决策树

147 阅读2分钟

第四章决策树


4.1 基本流程

image.png

显然,决策树的生成是一个递归过程。在决策树基本算法中,有三种情形会导致递归返回:

  1. 当前结点包含的样本全属于同一类别,无需划分。
  2. 当前属性集为空,或是所有样本在所有属性上取值相同,无法划分。
  3. 当前结点包含的样本集合为空,不能划分。

在第(2)种情形下,我们把当前结点标记为叶结点,并将其类别设定为该结点所含样本最多的类别。

在第(3)种情形下,同样把当前结点标记为叶结点,但将其类别设定为其父结点所含样本最多的类别。

4.2 划分选择

4.2.1 信息增益

信息熵是度量样本集合纯度最常用的一种指标。假定当前样本集合D中第k类样本所占的比例为pk,则D的信息熵定义为:

Ent(D)=k=1ypklog2pk(2.1)Ent(D)=-\sum_{k=1}^{\mid y \mid} p_k\log_2 p_k \tag{2.1}

Ent(D)Ent(D)的值越小,则D的纯度越高。其中,∣y∣表示样本类别总数。

image.png

【机器学习基础】第十二课:决策树的划分选择

信息熵取值范围的证明

4.2.2 增益率

著名的C4.5决策树算法不直接使用信息增益,而是使用 “增益率”(gain ratio) 来选择最优划分属性。增益率定义为:

Gain_ratio(D,a)=Gain(D,a)IV(a)(3.1)Gain\_ratio(D,a)=\frac{Gain(D,a)}{IV(a)} \tag{3.1}

其中,

IV(a)=v=1VDvDlog2DvDIV(a)=-\sum_{v=1}^V \frac{\mid D^v \mid}{\mid D \mid} \log_2 \frac{\mid D^v \mid}{\mid D \mid}

称为属性a的“固有值”

属性a的可能取值数目越多(即VV越大),则IV(a)IV(a)的值通常会越大。

4.2.3 基尼指数

CART决策树使用 “基尼系数”(Gini index) 来选择划分属性。 数据集D的纯度可用基尼值来度量:

Gini(D)=k=1ykkpkpk=k=1ypk(1pk)=1k=1ypk2Gini(D)=\sum_{k=1}^{\mid y \mid} \sum_{k'\neq k}p_k p_{k'}=\sum_{k=1}^{\mid y \mid} p_k (1-p_k)=1-\sum_{k=1}^{\mid y \mid} p_k^2

直观来说,Gini(D)Gini(D)反映了从数据集D中随机抽取两个样本,其类别标记不一致的概率。

因此,Gini(D)Gini(D)越小,则数据集D的纯度越高。 选择使得划分后基尼指数最小的属性作为最优划分属性。

4.3 剪枝处理

剪枝(pruning) 是决策树学习算法对付“过拟合”的主要手段。

机器学习基础-第十三课-决策树的剪枝处理 我实在是来不及看了下次一定

4.3.1 预剪枝

在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶结点。

4.3.2 后剪枝

先从训练集生成一棵完整的决策树,然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶结点。

4.4 连续与缺失值处理

机器学习基础-第十四课-决策树中的连续与缺失值 夜里实在太冷了哥们

4.5 多变量决策树

【机器学习基础】第十五课:多变量决策树 加了四天班了我要睡觉

就这样吧就这样吧一大半是之前学过的公式之后再推睡觉睡觉睡觉睡觉