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

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

1.基本流程

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

2.划分选择

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

2.1 信息增益

假定样本集合 D D D 中第 k k k类样本所占比例为 p k ( k = 1 , 2 , ... , ∣ y ∣ ) p_k(k=1,2,..., |y|) pk(k=1,2,...,∣y∣)

样本集合 D D D的信息熵:
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} Ent(D)=−k=1∑∣y∣pklog2pk

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

信息增益公式:
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)} Gain(D,a)=Ent(D) −v=1∑V∣D∣∣Dv∣Ent(D)

D v D^v Dv是使用某个属性时对数据集 D D D的划分,一般来说信息增益越大,使用属性 a a a所划分得到的"纯度提升"越大。

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

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

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

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

2.2 增益率

增益率定义:
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)

其中IV(a)的定义:
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|} IV(a)= −v=1∑V∣D∣∣Dv∣log2∣D∣∣Dv∣

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

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

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

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

2.3 基尼指数

CART决策树:可用于分类任务和回归任务,它使用基尼指数来划分属性,数据集 D D D的纯度采用基尼值来进行度量。
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 Gini(D)= k=1∑∣y∣k′=k∑pkpk′=1−k=1∑∣y∣p2k

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

基尼指数的定义:
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)} Gini_index(D,a)=v=1∑V∣D∣∣Dv∣Gini(Dv)

最优划分属性:在候选属性集合中选择使划分后基尼指数最小的属性
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) a∗=arg min Gini_index(D,a)

其中 a ∈ A a\in A a∈A

总结

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

参考资料

1 周志华《机器学习》,第四章4.1和4.2

2【吃瓜教程】《机器学习公式详解》(南瓜书)与西瓜书公式推导直播合集

www.bilibili.com/video/BV1Mh...

相关推荐
这token有力气12 小时前
Function Calling 格式漂移
人工智能
onething36512 小时前
Spring Boot + Spring AI 从入门到实战:7天转型计划 Day 5 —— SSE 流式输出 + 打字机效果
人工智能·后端·全栈
onething36513 小时前
Spring Boot + Spring AI 从入门到实战:7天转型计划 Day 6 —— 业务完善 + 会话消息预览
人工智能·后端·全栈
IT_陈寒13 小时前
SpringBoot自动配置的坑,我爬了三天才出来
前端·人工智能·后端
甲维斯14 小时前
笑抽了!DeepSeek识图,豆包完胜了!
人工智能·deepseek
Lei活在当下1 天前
【AI手记系列-2026/6/18】iSparto & Harness,Caveman 以及AI时代的生存指南
人工智能·llm·openai
冬奇Lab1 天前
每日一个开源项目(第134篇):Zvec - 阿里开源的嵌入式向量数据库,向量搜索界的 SQLite
数据库·人工智能·llm
冬奇Lab1 天前
Agent 系列(22):Context Engineering 深度——三种上下文管理策略的量化对比
人工智能·agent
hboot1 天前
AI工程师第二课 - 数据处理
人工智能·python·数据分析
程序员cxuan1 天前
DeepSeek 杀入多模态,识图功能正式上线!
人工智能·后端·程序员