决策树模型理论精讲:新手必看学习指南

2026-06-23阅读 0热度 0
学习总结

最近在琢磨怎么用决策树模型做企业IT系统的故障根因分析,顺带把思路梳理了一遍。目前规划了两个方向:一个是用决策树模型做训练,另一个是结合大模型来搞。问了问DeepSeek,它给的建议大致是这样的——如果手头已经有历史故障数据,整理出了比较清晰的故障特征和结果标签,而且数据量不算特别大,那决策树其实是更务实的选择。万一碰到决策树没见过的复杂场景,再拿大模型来兜底,两者配合着做诊断,综合推断根因。

那今天这篇,就先聊聊决策树模型的理论底子。

一、决策树概念

决策树(Decision Tree)是分类与回归问题里最基础也最常用的算法之一。分类任务的目标是离散值,回归则是连续值。从分类问题的角度看,一般分两步走:第一步是模型构建,也就是归纳——通过对训练集的学习,建立分类模型;第二步是预测应用,也就是推论——用建好的模型去测试新样本。

决策树本质上就是通过一系列规则对数据进行分类。它的优点很明显:推理过程直观,能表示成If Then的形式;完全依赖属性变量的取值来做决策;还能自动忽略那些对目标变量没啥贡献的属性,顺带帮你筛掉不重要的变量,减少特征数量。

决策树技术背后,核心机制是归纳算法——从特殊到一般的推理过程。由于归纳学习依赖检验数据,有时也叫检验学习。整个决策树学习通常包含三个步骤:特征选择、决策树生成、决策树剪枝。

二、决策树的组成部分

决策树的基本部件有三个:决策结点、分支和叶子。最顶上的叫根结点,是整棵树的起点。每个分支要么是个新的决策结点,要么直接连到叶子。每个决策结点代表一个问题或决策,通常对应一个待分类的属性;而每个叶结点,则代表最终的一种分类结果。

遍历决策树的过程,就是从根到叶一路向下:在每个结点做一次测试,根据测试输出的不同走向不同分支,最后抵达叶子结点。本质上,就是利用若干个变量来判断属性的类别。

三、熵、信息增益与基尼系数

这几个指标是决策树算法里绕不开的概念。

1. 熵(Entropy)

熵用来度量信息量的大小,或者说随机变量的不确定性。越有序,熵越低。计算公式是这样的:

其中p(xi)是事件xi发生的概率。熵值越大,系统越混乱、越难预测。

2. 条件熵

设有随机变量(X, Y),联合概率分布如下:

条件熵H(Y|X)表示在已知X的条件下,Y的不确定性。定义为X给定条件下,Y的条件概率分布的熵对X的数学期望:

当熵和条件熵中的概率由数据估计(比如极大似然估计)得到时,对应的就称为经验熵和经验条件熵。

3. 信息增益算法

输入:训练数据集D和特征A;输出:特征A对数据集D的信息增益g(D,A)。

a. 计算数据集D的经验熵H(D):

b. 计算特征A对数据集D的经验条件熵H(D|A):

c. 计算信息增益:

4. 信息增益比

直接用信息增益选特征,容易偏向取值多的属性。信息增益比可以校正这个问题。特征A对训练集D的信息增益比定义为:信息增益与训练集D关于特征A的值的熵之比。

5. 基尼系数

基尼系数是CART树做分类时,衡量数据集或节点“不纯度”的核心指标。(CART做回归则主要用平方误差最小化。)

基尼系数反映的是:从数据子集中随机抽两个样本,它们类别标签不一致的概率。系数越大,不纯度越高。计算公式如下:

对包含K个类别的数据集D,Gini(D) = 1 - Σ (p_i)^2,i从1到K,其中p_i是第i类样本的比例。

举个例子:如果节点里全是A类,Gini = 1 - (1² + 0²) = 0,表示纯净;如果A和B各占50%,Gini = 1 - (0.5² + 0.5²) = 0.5,最不纯;如果是70% A和30% B,Gini = 0.42。

四、决策树算法介绍

1. 重要算法一览

决策树领域里,几个关键算法包括:CLS、ID3、C4.5、CART。

2. 发展历程

1966年,Hunt、Marin和Stone开发了CLS学习系统,用于学习单个概念。1979年,J.R. Quinlan提出了ID3算法,并在1983年和1986年做了总结和简化,使其成为决策树学习的标杆。1986年,Schlimmer和Fisher改造ID3,在每个可能的决策树节点创建缓冲区,实现递增式生成,称为ID4。1988年,Utgoff在ID4基础上推出ID5,效率进一步提升。1993年,Quinlan将ID3改进为C4.5。

另一条线是CART,跟C4.5不同,CART的决策树由二元逻辑问题生成,每个节点只有两个分支,分别对应正例和反例。

3. 各算法的特征选择方式

ID3用信息增益选特征,增益大的优先。C4.5改用信息增益比,解决信息增益偏好取值多的属性的问题。ID3和C4.5都基于熵模型,涉及大量对数运算。CART分类树则用基尼系数代替信息增益比,简化模型又不失熵模型的优点。基尼系数越小,不纯度越低,特征越好——这点和信息增益(率)正好相反。

4. 三种算法对比

五、Python的sklearn中的决策树初步介绍

sklearn的tree模块实现了两种决策树:DecisionTreeClassifier(分类树)和DecisionTreeRegressor(回归树)。分类树预测离散值,回归树预测连续值。

需要注意的是,sklearn中的分类树只实现了ID3和CART算法,而且没有内置剪枝步骤。如果要限制树的大小,可以在初始化时设置参数,比如max_depth(树的最大深度)、max_leaf_nodes(最大叶子节点数)。至于sklearn决策树在实际项目中的应用,后面会结合具体案例持续更新实操内容。

免责声明

本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。

相关阅读

更多
欢迎回来 登录或注册后,可保存提示词和历史记录
登录后可同步收藏、历史记录和常用模板
注册即表示同意服务条款与隐私政策