机器学习 | 入门(三)—— 决策树

决策树(Decision Tree)算法是一种基本的分类与回归方法,根据数据的属性采用树状结构建立决策模型。决策树模型常常用来解决分类和回归问题。常见的算法包括CART(Classification And Regression Tree)、ID3、C4.5、C5.0、随机森林(Random Forest) 等。

1.基本流程

决策树的学习策略是分而治之,在训练时遇到当前结点包含的样本全属于同一类别,那么就不需要再进行划分。

2.划分选择

主要目标:把样本变得越来越纯,具体来说是期望决策树的分支结点所包含的样本尽可能地属于同一类别。

2.1 信息增益

假定样本集合 <math xmlns="http://www.w3.org/1998/Math/MathML"> D D </math>D 中第 <math xmlns="http://www.w3.org/1998/Math/MathML"> k k </math>k类样本所占比例为 <math xmlns="http://www.w3.org/1998/Math/MathML"> p k ( k = 1 , 2 , ... , ∣ y ∣ ) p_k(k=1,2,..., |y|) </math>pk(k=1,2,...,∣y∣)

样本集合 <math xmlns="http://www.w3.org/1998/Math/MathML"> D D </math>D的信息熵:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> E n t ( D ) = − ∑ k = 1 ∣ y ∣ p k l o g 2 p k Ent(D)=-\sum_{k=1}^{|y|}{p_klog_2p_k} </math>Ent(D)=−k=1∑∣y∣pklog2pk

信息增益的定义:划分前的信息熵减去划分后的信息熵。

信息增益公式:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> G a i n ( D , a ) = E n t ( D ) − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ E n t ( D ) Gain(D,a)=Ent(D)\ -\sum_{v=1}^{V}{\frac{|D^v|}{|D|}Ent(D)} </math>Gain(D,a)=Ent(D) −v=1∑V∣D∣∣Dv∣Ent(D)

<math xmlns="http://www.w3.org/1998/Math/MathML"> D v D^v </math>Dv是使用某个属性时对数据集 <math xmlns="http://www.w3.org/1998/Math/MathML"> D D </math>D的划分,一般来说信息增益越大,使用属性 <math xmlns="http://www.w3.org/1998/Math/MathML"> a a </math>a所划分得到的"纯度提升"越大。

ID3决策树:以信息增益准则划分属性

那么问题来了,样本集合纯度究竟有什么影响?

在机器学习中,样本集合纯度对模型训练和性能有很大影响。如果样本集合中目标类别样本数量很少,模型就很难学习到目标类别的特征,从而导致模型性能不佳。相反,如果样本集合中目标类别样本数量过多,模型就很容易过拟合,无法泛化到新的数据集。

因此,在构建机器学习模型时,需要对样本集合进行筛选和优化,以提高样本集合纯度,从而提高模型训练和预测的准确性。同时,也需要避免过拟合现象的发生,以提高模型的泛化能力。

2.2 增益率

增益率定义:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> 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)} </math>Gain_ratio(D,a)=IV(a)Gain(D,a)

其中IV(a)的定义:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> I V ( a ) = − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ l o g 2 ∣ D v ∣ ∣ D ∣ IV(a)=\ -\sum_{v=1}^{V}{\frac{|D^v|}{|D|}log_2}\frac{|D^v|}{|D|} </math>IV(a)= −v=1∑V∣D∣∣Dv∣log2∣D∣∣Dv∣

增益率准则对可取值数目较少的属性有所偏好,意味着在决策树算法中,会倾向于选择那些具有较少可能值的属性进行划分。这是因为增益率准则认为,具有较少可能值的属性在划分数据时能够提供更多的信息。

C4.5决策树:采用启发式方法,具体步骤如下

step 1. 在候选划分属性中找出信息增益高于平均水平的属性

step 2. 在上一步的基础上,选择增益率最高的

2.3 基尼指数

CART决策树:可用于分类任务和回归任务,它使用基尼指数来划分属性,数据集 <math xmlns="http://www.w3.org/1998/Math/MathML"> D D </math>D的纯度采用基尼值来进行度量。
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> G i n i ( D ) = ∑ k = 1 ∣ y ∣ ∑ k ′ ≠ k p k p k ′ = 1 − ∑ k = 1 ∣ y ∣ p 2 k Gini(D)=\ \sum_{k=1}^{|y|}\sum_{k^\prime\neq k}{p_kp_{k^\prime}}=1-\sum_{k=1}^{|y|}{p^2}_k </math>Gini(D)= k=1∑∣y∣k′=k∑pkpk′=1−k=1∑∣y∣p2k

基尼值越小,数据集的纯度越高。

基尼指数的定义:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> 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{v=1}^{V}{\frac{|D^v|}{|D|}Gini(D^v)} </math>Gini_index(D,a)=v=1∑V∣D∣∣Dv∣Gini(Dv)

最优划分属性:在候选属性集合中选择使划分后基尼指数最小的属性
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> a ∗ = a r g m i n G i n i _ i n d e x ( D , a ) a_\ast=arg\ min\ Gini\_index(D,a) </math>a∗=arg min Gini_index(D,a)

其中 <math xmlns="http://www.w3.org/1998/Math/MathML"> a ∈ A a\in A </math>a∈A

总结

决策树算法通过选择不同的划分准则来优化决策树的构建,从而提高模型的训练和预测准确性。同时,这些准则也影响了决策树的纯度和泛化能力。

参考资料

1\] 周志华《机器学习》,第四章4.1和4.2 \[2\]【吃瓜教程】《机器学习公式详解》(南瓜书)与西瓜书公式推导直播合集 [www.bilibili.com/video/BV1Mh...](https://link.juejin.cn?target=https%3A%2F%2Fwww.bilibili.com%2Fvideo%2FBV1Mh411e7VU%3Fp%3D7%26vd_source%3D4e0c012a36c8d4343563baaae2191dee "https://www.bilibili.com/video/BV1Mh411e7VU?p=7&vd_source=4e0c012a36c8d4343563baaae2191dee")

相关推荐
大力水手(Popeye)1 小时前
Pytorch——tensor
人工智能·pytorch·python
ygy.白茶2 小时前
从电影分类到鸢尾花识别
人工智能
AI_gurubar5 小时前
大模型教机器人叠衣服:2025年”语言理解+多模态融合“的智能新篇
人工智能·机器人
XINVRY-FPGA6 小时前
EPM240T100I5N Altera FPGA MAX II CPLD
人工智能·嵌入式硬件·fpga开发·硬件工程·dsp开发·射频工程·fpga
HuggingFace7 小时前
开源开发者须知:欧盟《人工智能法案》对通用人工智能模型的最新要求
人工智能
媒体人8888 小时前
GEO 优化专家孟庆涛:技术破壁者重构 AI 时代搜索逻辑
大数据·人工智能
小菜AI科技8 小时前
Windsurf 评测:这款 人工智能 IDE 是你需要的颠覆性工具吗?
人工智能
RaymondZhao348 小时前
【全面推导】策略梯度算法:公式、偏差方差与进化
人工智能·深度学习·算法·机器学习·chatgpt
zhangfeng11339 小时前
DBSCAN算法详解和参数优化,基于密度的空间聚类算法,特别擅长处理不规则形状的聚类和噪声数据
算法·机器学习·聚类
yzx9910139 小时前
小程序开发APP
开发语言·人工智能·python·yolo