机器学习基础:手把手教你搞懂决策树,从原理到实例

在机器学习领域,树模型是一类直观且实用的算法,而决策树作为其中的核心代表,因其逻辑清晰、可解释性强的特点,成为入门者的首选学习内容之一。它模拟人类决策过程,从根节点开始逐步分支,最终让数据落到叶子节点得出决策,既能处理分类任务,也能完成回归任务。今天,我们就从决策树的基本组成、训练测试逻辑、核心原理到实际构造,一步步揭开它的面纱。

一、决策树的 “骨架”:基本组成

决策树的结构就像一棵倒置的树,由三个核心部分构成,每个部分在决策过程中承担着不同角色:

  • 根节点:决策的起点,是第一个需要选择的特征。比如判断 “今天是否去打球”,根节点可能是 “天气如何”。
  • 非叶子节点与分支:决策的中间过程。非叶子节点代表某个特征的判断条件,分支则对应该特征的不同取值。例如非叶子节点是 “天气 = 晴天”,分支就分为 “湿度高” 和 “湿度正常”。
  • 叶子节点:决策的终点,代表最终的结果。比如经过一系列判断后,叶子节点可能是 “去打球” 或 “不去打球”。所有数据最终都会落到叶子节点,从而完成分类或回归。

二、决策树的 “成长”:训练与测试

决策树的应用分为训练和测试两个阶段,两者逻辑清晰,重点在于训练阶段的 “树构造”。

  1. 训练阶段:核心是从给定的训练集中 “长出” 一棵决策树。这个过程需要解决两个关键问题:从哪个特征开始作为根节点?每个非叶子节点后续该选择哪个特征进行切分?这是决策树的难点,也是决定模型效果的关键。
  2. 测试阶段:当决策树构造完成后,测试过程就非常简单。只需将测试数据从根节点开始,按照特征的判断条件沿着分支向下走,直到抵达叶子节点,叶子节点的结果就是该数据的预测结果。

三、决策树的 “导航仪”:特征切分的衡量标准

要构造一棵优质的决策树,关键是找到 “最优特征” 进行节点切分。这里我们需要两个核心概念:信息增益

1. 熵:衡量数据的不确定性

熵是表示随机变量不确定性的度量,不确定性越高,熵值越大;不确定性越低,熵值越小。其计算公式为:
H(X) = -∑(pi * logpi)(其中 i=1,2,...,n,pi 是第 i 类数据在总数据中所占的概率)

通过两个例子能更直观理解:

  • 集合 A=[1,1,1,1,1,1,1,1,2,2]:数据中 “1” 占 80%,“2” 占 20%,不确定性较低,熵值较小。
  • 集合 B=[1,2,3,4,5,6,7,8,9,1]:数据类别分散,不确定性高,熵值较大。

在分类任务中,我们希望通过节点分支后,数据类别的熵值变小—— 因为熵值小意味着数据更 “纯粹”,同类数据聚集在一起,分类效果更好。

进一步看熵的极端情况:

  • 当 pi=0 或 pi=1 时(所有数据都是同一类),H (p)=0,此时数据完全没有不确定性,是最理想的分类结果。
  • 当 pi=0.5 时(两类数据各占一半),H (p)=1,此时数据不确定性最大,分类难度最高。

2. 信息增益:选择最优特征的依据

信息增益表示 “某个特征能让类别不确定性减少的程度”。简单来说,就是通过该特征切分后,数据的熵值下降了多少 —— 信息增益越大,说明这个特征对分类的帮助越大,越适合作为当前节点的切分特征。

我们的目标很明确:计算所有候选特征的信息增益,选择增益最大的特征作为当前节点(根节点、非叶子节点),然后在后续的子节点中重复这个过程,直到所有数据都被合理分类。

四、决策树的 “实战”:14 天打球数据构造实例

理论需要结合实践,我们以 “14 天打球情况” 数据集为例,手把手演示决策树的构造过程。

1. 数据集背景

  • 数据量:14 天的记录,其中 9 天去打球(yes),5 天不去打球(no)。
  • 特征:4 个环境特征 —— 天气(outlook)、温度(temperature)、湿度(humidity)、是否有风(windy)。
  • 目标:构造一棵决策树,判断 “当天是否适合打球”。

2. 第一步:计算初始熵

首先,计算未进行任何特征切分时,系统的初始熵(即根节点的熵)。
总数据中,“打球(yes)” 的概率 p (yes)=9/14,“不打球(no)” 的概率 p (no)=5/14,代入熵公式:
H (初始) = -[(9/14)*log (9/14) + (5/14)*log (5/14)] ≈ 0.940

3. 第二步:计算各特征的信息增益

我们以 “天气(outlook)” 为例,其取值分为 sunny、overcast、rainy 三类:

  • outlook=sunny:共 5 天(3 天 yes,2 天 no),熵值 H (sunny)≈0.971。
  • outlook=overcast:共 4 天(全是 yes),熵值 H (overcast)=0。
  • outlook=rainy:共 5 天(2 天 yes,3 天 no),熵值 H (rainy)≈0.971。

接下来计算 “天气” 特征的条件熵(即切分后的平均熵):
H (初始 | outlook) = (5/14)*0.971 + (4/14)*0 + (5/14)*0.971 ≈ 0.693

最后计算信息增益:
信息增益 = 初始熵 - 条件熵 = 0.940 - 0.693 = 0.247

按照同样的方法,我们可以计算出 “温度”“湿度”“是否有风” 三个特征的信息增益。假设最终 “天气” 的信息增益最大,那么它就会被选为根节点

4. 第三步:递归构造子节点

确定根节点为 “天气” 后,我们需要对每个分支(sunny、overcast、rainy)进一步处理:

决策树作为机器学习中的 “入门利器”,不仅逻辑直观、可解释性强,还能为后续学习随机森林、梯度提升树(GBDT)等集成算法打下基础。希望通过本文,你能真正搞懂决策树的核心逻辑,从 “知道” 到 “会用”,逐步打通机器学习的入门之路。

  • 对于 “outlook=overcast” 分支:所有数据都是 “yes”,熵值为 0,无需继续切分,直接作为叶子节点(结果 = yes)。
  • 对于 “outlook=sunny” 和 “outlook=rainy” 分支:数据仍有 “yes” 和 “no”,需要在剩余特征(温度、湿度、有风)中,再次通过 “计算信息增益” 选择最优特征作为子节点,重复这个过程,直到所有分支的熵值为 0(数据完全分类),决策树构造完成。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值