监督学习算法 之 决策树

我们已经介绍过线性回归和逻辑回归。本文介绍机器学习算法里最贴合人类日常决策思维的模型 - 决策树。

1、大白话说 决策树

你去超市 买西瓜 挑一个好西瓜,遵循以下"五步法":

(1)看瓜皮纹路:瓜皮纹路清晰规整、舒展自然,且条纹深浅对比明显

(2)看瓜底:瓜底发黄且颜色越深、越均匀,说明光照充分、自然熟透、糖分积累充足

(3)看瓜藤与瓜脐:瓜藤翠绿、鲜嫩且自然微弯;瓜脐小、微微向内凹陷

(4)听声音:清脆浑厚、有回弹的"咚咚声",有震动感

(5)掂重量:手感越沉的,说明果肉水分充足、质地饱满

完整走完这一套分层判断的流程,就能精准筛选出优质西瓜,这个过程和决策树的运行逻辑完全契合。从结构上看类似一棵倒过来的树,就是所说的决策树。

决策树包括:

(1)根节点:第一个判断条件(看瓜皮纹路)

(2)内部节点:每一层的细分判断条件,分叉出来的树枝是判断结果

(3)叶节点:最终的结论(好瓜/坏瓜)

决策树就是机器通过学习历史数据,自动总结出一套分层判断规则,以后遇到新数据,就顺着这套规则逐级判断,最终输出预测结果。

总结来说:决策树算法干的事,就是让计算机自己从历史数据里学会这套"提问逻辑" 。

它会不停地问:"先用哪个特征切分数据,能最快地把'好瓜'和'坏瓜'分开?"

这种"如果......那么......"的逻辑,让决策树拥有了机器学习领域少有的"可解释性"。你可以直接把树画出来解释原因。

2、数学模型

决策树的核心是:通过量化数据混乱度,筛选最优划分特征(找到最好的问题)。

机器训练决策树的过程,就是不断找"能让数据变得最有序、最纯净"的特征作为判断条件,层层拆分,直到数据足够纯净、可以直接输出结果。

数据的 纯度和混乱度 :

(1)如果一组数据里全是同一类样本,说明数据纯度极高、混乱度为0

(2)如果一组数据里各类样本混杂、比例均衡,说明混乱度极高、纯度极低

想象两堆瓜子:

  • A堆:全是红瓜子。(很纯净,不混乱)
  • B堆:红、白、黑各占三分之一。(很混乱)

决策树的训练目标:每一次划分,都最大限度降低数据混乱度、提升纯度。

如何量化"混乱程度"

有两个最常用的指标用于衡量混乱程度:熵(Entropy)和基尼系数(Gini)。

"熵"(读音:shāng)是物理学里的一个概念,后来被香农引入信息论。你可以把它粗暴地理解为"混乱程度"或者"不确定度"。

举个栗子:

低熵状态:你手里握着5个硬币,全是正面朝上。这时候系统很"纯净",不确定性极低。

高熵状态:5个硬币里,正面、反面、甚至立起来的都有。这时候系统很"混乱",不确定性极高。你完全猜不到下一个拿出来的是什么。

  • 熵(Entropy):可以理解为"不确定性"。B堆的熵就很高,因为你随便抓一把,不知道会抓出什么颜色。
  • 基尼系数(Gini):它衡量的是"随便抽两个样本,类别不一样的概率"

树的生长策略

决策树的生长策略:每次分裂,都选择能让"混乱程度"下降最快的那个特征,就是想尽办法降低系统的熵值。

通过不断地"提问"(分裂节点),把原本混乱的数据(混合了好瓜和坏瓜),变得越来越纯净(全变成好瓜,或者全变成坏瓜)。

决策树终止

当数据集完全纯净(所有样本属于同一类)、没有更多特征可用、或者达到预设的树深度(防止过拟合)时,树停止生长。

3、最佳落地场景

凡是需要"白盒决策"、需要把模型结论翻译成"业务规则"的场景,都是决策树的最佳落脚点,因此决策树依然是金融、医疗、政务等传统行业的"心头好"。

常见应用场景

金融风控

银行每天要处理成千上万个贷款申请,人工审不过来,又不能乱拒。

决策树把专家经验固化成规则。

决策树可以明确告诉拒绝原因,黑箱模型很难做到。

医疗辅助诊断

一些常见病初筛中,决策树常被用作辅助工具。根据患者的血常规指标、影像学特征,一步步缩小怀疑范围。

设备故障预警

根据 监测温度、振动频率、电流波动 做故障预判。

相关推荐
longlongzihan几秒前
LeetCode 25. K 个一组翻转链表 (迭代+分组反转法)
算法·leetcode·链表
xuxigifxfh几秒前
牛客:BISHI8 大整数哈希
java·算法·哈希算法
涉密IT资质笔记4 分钟前
涉密资质投入产出分析模型:时间成本、四块成本构成与 ROI 决策框架
java·开发语言·算法
木井巳6 分钟前
【BFS 解决拓扑排序】火星词典
java·算法·leetcode·广度优先·宽度优先·图搜索算法
Xudde.8 分钟前
Mr-Robot 靶机渗透测试(Vulnhub Writeup)
笔记·学习·安全·web安全
北风toto17 分钟前
KMP 算法详解:从暴力匹配到 O(n+m) 的字符串搜索
java·开发语言·算法
外收内放19 分钟前
数据分析(数据查询与选择)
python·学习·数据分析
林澈在路上23 分钟前
哪个写歌软件可以用自己声音?MELO音乐详解
人工智能·python·算法
爱读书的小胖24 分钟前
Codewars Sum of a Sequence Hard Core Version C 解题分析
c语言·数据结构·算法
不会就选b24 分钟前
算法日常・每日刷题--<动态规划>24
算法·动态规划