监督学习算法 之 决策树

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

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、最佳落地场景

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

常见应用场景

金融风控

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

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

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

医疗辅助诊断

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

设备故障预警

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

相关推荐
一隅论数智1 天前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
倒头就睡的小比特1 天前
算法竞赛C++常用的STL
c++·算法
小羊没烦恼!1 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
XiHongShi20161 天前
STM32F407 RTC定时器例程,建议保存
stm32·单片机·学习
爱吃苹果的日记本1 天前
离散数学第六课
学习·离散数学
猎头南楼1 天前
知识社区推荐系统实践:新用户冷启动与长短期兴趣建模的挑战 资深推荐算法工程师
人工智能·深度学习·算法·机器学习
AI职业加油站1 天前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
旖旎夜光1 天前
力控面试题 01.01: 判定字符是否唯一(位运算) —— 题解
c++·学习·算法·leetcode·力控
wzdark1 天前
大规模并行计算中的负载均衡算法研究4
算法