机器学习——决策树

1. 决策树算法思想

1.1 概述

决策树算法:是一种分治算法,目的是构建一个基于属性的树形分类器

  • 每个非叶结点代表一个特征属性上的测试(分割);
  • 每个分支代表这个特征属性在某个值域上的输出;
  • 每个叶结点代表一个类别。

使用决策树进行决策的过程就是从根结点开始,测试待分类项中相应的特征属性,并按照其值选择输出分支,直到达到叶结点,将叶结点存放的类别作为决策结果

1.2 决策树构建

决策树构建:分治思想(递归)。
对于当前结点结束递归的条件:

  1. 当前结点样本均属于同一类别,无需划分;
    在这里插入图片描述
  2. 当前属性集为空,无法划分;
    在这里插入图片描述
  3. 所有样本在当前属性集上取值相同,无法划分;
    在这里插入图片描述
  4. 当前结点包含的样本集合为空,无法划分。
    在这里插入图片描述

算法伪代码:
在这里插入图片描述

注:第2~3行对应于递归结束条件1,第5~6行对应于递归结束条件2和3,第11~12行对应于递归条件4。

9~16行的个人理解:对于最佳划分属性 a ∗ a_* a,会为每一个属性值 a ∗ v a_*^v av生成一个分支。我们现在仅讨论某一个属性值 a ∗ v a_*^v av,已知通过这个分支后的样本子集为 D v D_v Dv。如果 D v D_v Dv为空,这个结点就是叶结点,然后回溯去找 D D D中样本最多的类,作为叶结点的类别;如果 D v D_v Dv非空,那么就根据样本子集 D v D_v Dv和属性子集 A − a ∗ A-a_* Aa递归该函数继续划分。

1.3 决策树核心

决策树的核心在于定义最佳划分属性,使得不同类样本被更好的分离。

  • 理想情况:划分后每个分支的样本都属于同一类。
  • 实际情况:想得美!

根据最佳划分属性的选取方式(准则)的不同,人们提出了不同的算法。

2. 决策树算法

2.1 ID3算法

最佳划分属性选取准则:信息增量越大越好。
目标:提升划分后子集的纯度,降低划分后子集的不纯度。纯度↑=信息量↓=信息熵↓。

什么叫纯?看图!怎么度量信息量?信息熵!
在这里插入图片描述

信息熵 E n t ( D ) = − ∑ k = 1 ∣ y ∣ p k log ⁡ 2 p k Ent(D)=-\sum\limits_{k=1}^{|y|}p_k\log_2p_k Ent(D)=k=1ypklog2pk用属性 a a a对数据集 D D D划分后的信息熵 E n t ( D , a ) = ∑ v = 1 ∣ V ∣ ∣ D v ∣ ∣ D ∣ E n t ( D v ) Ent(D,a)=\sum\limits_{v=1}^{|V|}\frac{|D^v|}{|D|}Ent(D^v) Ent(D,a)=v=1VDDvEnt(Dv)用属性 a a a对数据集 D D D划分后的信息增益 G a i n ( D , a ) = E n t ( D ) − E n t ( D , a ) Gain(D,a)=Ent(D)-Ent(D,a) Gain(D,a)=Ent(D)Ent(D,a)信息增益越大,说明划分效果越好。因此,ID3算法是这样选取最佳划分属性的: a ∗ = arg max ⁡ a ∈ A G a i n ( D , a ) a_*=\argmax\limits_{a∈A}Gain(D,a) a=aAargmaxGain(D,a)问题:信息增益准则对可取值数目较多的属性有所偏好。例如极端例子为编号属性,由于每个样本的编号都不同,因此每个编号只有一个样本,并对应一个标签,因此纯度很高。

2.2 C4.5算法

最佳划分属性选取准则:信息增益率越大越好。
信息增益率 G a i n _ r a t i o ( D , a ) = G a i n ( D , a ) I V ( a ) Gain\_ratio(D,a)=\frac{Gain(D,a)}{IV(a)} Gain_ratio(D,a)=IV(a)Gain(D,a)其中 I V ( a ) IV(a) IV(a)称为属性 a a a固有值,属性 a a a的可取值数目越多(也就是 v v v越大), I V ( a ) IV(a) IV(a)通常就越大。其定义如下: I V ( a ) = − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ log ⁡ 2 ∣ D v ∣ ∣ D ∣ IV(a)=-\sum\limits_{v=1}^V\frac{|D^v|}{|D|}\log_2\frac{|D^v|}{|D|} IV(a)=v=1VDDvlog2DDv问题:增益率准则对可取值数目较少的属性有所偏好。因此,C4.5先从候选属性中找到信息增益高于平均水平的属性,再从中选择增益率最高的

ID3和C4.5都基于信息论的熵模型,涉及大量对数运算。

2.3 CART算法

最佳划分属性选取准则:基尼指数越小越好。
基尼指数: G i n i ( D ) = ∑ k = 1 ∣ y ∣ ∑ k ′ ≠ k p k p k ′ = 1 − ∑ k = 1 ∣ y ∣ p k 2 Gini(D)=\sum\limits_{k=1}^{|y|}\sum\limits_{k'≠k}p_kp_k'=1-\sum\limits_{k=1}^{|y|}p_k^2 Gini(D)=k=1yk=kpkpk=1k=1ypk2基尼指数反映了从数据集中随机抽取两个样本,其类别标记不一致的概率,基尼指数越小,数据集 D D D的纯度越高。
属性 a a a的基尼指数: G i n i _ i n d e x ( D , a ) = ∑ v = 1 ∣ V ∣ ∣ D ∣ v ∣ D ∣ G i n i ( D v ) Gini\_index(D,a)=\sum\limits_{v=1}^{|V|}\frac{|D|^v}{|D|}Gini(D^v) Gini_index(D,a)=v=1VDDvGini(Dv)CART算法是这样选取最佳划分属性的: a ∗ = arg min ⁡ a ∈ A G i n i _ i n d e x ( D , a ) a_*=\argmin\limits_{a∈A}Gini\_index(D,a) a=aAargminGini_index(D,a)

3. 决策树剪枝

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4. 连续值与缺失值处理

4.1 连续值处理

基本思路:连续属性离散化
常见方法:二分法 n n n个属性值可形成 n − 1 n-1 n1个候选划分,即可当做 n − 1 n-1 n1个离散属性值处理。
二分法流程:

  • 给定样本集 D D D和连续属性 a a a,假定 a a a D D D上出现了 n n n个不同的取值,则将属性值由小到大排序为 { a 1 , a 2 , . . . , a n } \{a^1,a^2,...,a^n\} {a1,a2,...,an}
  • 基于候选划分点集合 T a = { a i + a i + 1 2 ∣ 1 ≤ i ≤ n − 1 } T_a=\{\frac{a^i+a^{i+1}}{2}|1≤i≤n-1\} Ta={2ai+ai+11in1}中的每个划分点 t t t,将 D D D分为 D − D^- D ≤ t ≤t t的属性值集合)和 D + D^+ D+ ≥ t ≥t t的属性值集合);
  • 根据最大化信息增益的规则选取最优划分点,即: G a i n ( D , a ) = max ⁡ t ∈ T a G a i n ( D , a , t ) = max ⁡ t ∈ T a E n t ( D ) − ∑ λ ∈ { − , + } ∣ D t λ ∣ ∣ D ∣ E n t ( D t λ ) Gain(D,a)=\max\limits_{t∈T_a}Gain(D,a,t)=\max\limits_{t∈T_a}Ent(D)-\sum\limits_{\lambda∈\{-,+\}}\frac{|D_t^{\lambda}|}{|D|}Ent(D_t^{\lambda}) Gain(D,a)=tTamaxGain(D,a,t)=tTamaxEnt(D)λ{,+}DDtλEnt(Dtλ)

4.2 缺失值处理

如果简单丢弃有缺失值的样本,无疑是对信息的浪费。
问题:有属性值缺失,如何选择划分属性?给定划分属性,如果样本在该属性上的值缺失,如何进行划分?
基本思路:样本赋权,权重划分

5. 多变量决策树

d d d维样本进行分类等价于在 d d d为空间中寻找不同类样本之间的分类边界。

单变量决策树

单变量决策树:在每个非叶结点仅考虑一个划分属性,因此产生“轴平行”分类面。
在这里插入图片描述
问题:当学习任务所对应的分类边界很复杂时,需要非常多段划分才能获得较好的近似。这会导致决策树相当复杂,且时间开销巨大。能否产生“”分类面?
在这里插入图片描述

多变量决策树

多变量决策树:每个非叶结点不仅考虑一个属性。例如“斜决策树” 不是为每个非叶结点寻找最优划分属性,而是建立一个线性分类器。
在这里插入图片描述

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
决策树算法是一种广泛应用于分类和回归的机器学习算法,它基于树形结构对样本进行分类或预测。决策树算法的主要思想是通过一系列的判断来对样本进行分类或预测。在决策树中,每个节点表示一个属性或特征,每个分支代表该属性或特征的一个取值,而每个叶子节点代表一个分类或预测结果。 决策树算法的训练过程主要包括以下步骤: 1. 特征选择:根据某种指标(如信息增益或基尼系数)选择最优的特征作为当前节点的分裂属性。 2. 决策树生成:根据选择的特征将数据集分成若干个子集,并递归地生成决策树。 3. 剪枝:通过剪枝操作来提高决策树的泛化性能。 决策树算法的优点包括易于理解和解释、计算复杂度较低、对缺失值不敏感等。但是,决策树算法也存在一些缺点,如容易出现过拟合、对离散数据敏感等。 下面是一个决策树算法的案例:假设我们要根据一个人的年龄、性别、教育程度和职业预测其收入水平(高于或低于50K)。首先,我们需要将这些特征进行编码,将其转换为数值型数据。然后,我们可以使用决策树算法对这些数据进行训练,并生成一个决策树模型。最后,我们可以使用该模型对新的数据进行分类或预测。例如,根据一个人的年龄、性别、教育程度和职业,我们可以使用决策树模型预测该人的收入水平。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值