CHAPTER 26 / 37
决策树:为什么它看起来像流程图,却能做出智能决策?
所有复杂的预测,本质上都可以被还原成一条清晰的判断路径,这就是决策树真正的价值。
在前面的几篇文章中,我们一直在讨论一个问题:一个模型,是如何学会预测的?
我们讲过:线性回归、逻辑回归、神经网络、偏差与方差、学习曲线、机器学习开发流程等,这些有一个共同特点——它们的决策过程,很难直接解释。
比如当一个神经网络预测:用户流失概率 = 0.83,你很难回答为什么是0.83?
而今天要讲的这个模型,非常不一样。它的决策过程,几乎可以直接画出来。甚至看起来,就像一张产品决策流程图。
这个模型,就是决策树(Decision Tree)。
什么是决策树?
假设你在一家电商平台做用户运营。你的目标是:判断一个用户,是否值得发送优惠券。
你可能会这样思考:
用户最近是否购买过商品?
是 → 不发优惠券
否 →
是否浏览过商品?
是 → 发优惠券
否 →
是否注册时间很短?
是 → 发优惠券
否 → 不发优惠券这其实就是一个决策树。 一个典型的决策树长这样:
最近是否购买?
/ \
是 否
不发券 是否浏览?
/ \
是 否
发券 注册时间短?
/ \
是 否
发券 不发券注意一个关键点:
每一个节点,都是一个问题,
每一条路径,都是一个判断过程,
每一个叶子,都是一个最终决策。这就是决策树的本质。
决策树的核心思想
很多人第一次看到决策树,会觉得这也太简单了。确实,它的逻辑非常接近人类思考方式。
决策树做的事情只有一件:不断问问题,把数据分成越来越“纯”的类别。
假设我们有一组用户数据:
你会发现,如果我们先问:是否购买过? 数据会被明显分成两组。
这就是决策树最重要的原则: 每一次分裂,都是为了让数据变得更“干净”。
在决策树中,这个概念叫:纯度(Purity)。而算法的目标,就是选择一个问题,让数据分得最清楚。
决策树是怎么“长”出来的?
很多人会以为,决策树是人工设计的。其实不是,它是自动生成的。
决策树生成过程如下:
Step 1:选择一个最好的问题(根节点)
Step 2:把数据分成两组
Step 3:对每一组重复这个过程
Step 4:直到不需要再分你可以把它想象成一个不断细化分类的过程。
假设我们有这些数据:
决策树可能会这样构建:
连续7天未使用?
/ \
是 否
是否流失 不流失因为这个问题一下子把用户分开了,这就说明,这个特征,非常有用。
什么时候停止分裂?
如果一直分下去,会发生什么?答案是决策树会变得非常复杂,甚至把所有数据都记住——这就是过拟合(Overfitting)。
所以决策树必须知道什么时候该停止。
常见的停止条件包括:
1)数据已经完全一致
2)树的深度达到上限
3)样本数量太少
4)继续分裂意义不大这些规则的目的只有一个:防止模型变得过于复杂。
决策树的一个巨大优点:非常容易解释
这是它在企业中非常受欢迎的原因。
比如银行审批贷款时,往往需要回答为什么拒绝这个申请?
如果用神经网络,很难解释。但如果用决策树,可以直接说:
收入 < 5000
且
信用评分 < 600
所以
拒绝贷款这叫: 可解释性(Interpretability)。
一个简单的TensorFlow决策树示例
虽然在真实项目中,通常会用:
XGBoost
LightGBM
RandomForest但TensorFlow也支持决策树。下面是一个非常简单的例子:
from sklearn.tree import DecisionTreeClassifier
model = DecisionTreeClassifier(
max_depth=3
)
model.fit(X_train, y_train)
prediction = model.predict(X_test)这里最重要的参数是:max_depth,它的作用是限制树的复杂度。
为什么很多比赛冠军模型,都是树模型?
因为它有三个非常现实的优势。
优势1:不需要太多数据预处理
比如神经网络通常需要:
标准化
归一化
特征缩放而决策树基本不需要。
优势2:可以处理非线性关系
例如用户年龄与购买概率:
18 岁 → 高
25 岁 → 低
40 岁 → 高这不是一条直线,但决策树可以轻松处理。
优势3:非常稳定
在很多结构化数据场景中,比如:
风控
推荐
广告
信贷树模型往往比神经网络更可靠。
决策树的一个明显问题
决策树很容易记住数据。也就是说,非常容易过拟合。
例如:
用户ID = 12345 → 预测:流失这显然没有意义,但如果树太深,就可能发生这种情况。
所以控制树的复杂度,是决策树最重要的事情之一。
决策树不是在寻找最复杂的规则,而是在寻找最有区分力的问题。
它的工作方式非常像一个经验丰富的业务人员,不是问很多问题,而是问最关键的那个问题。
在机器学习的世界里,有些模型依赖复杂的数学,有些模型依赖强大的计算能力,而决策树提醒我们一件更朴素的事情——智能,并不一定来自复杂,而往往来自清晰的结构。
附录:本文涉及的专有名词中英文对照(标红为最核心)