决策树原理总结
概述
- 什么是决策树?
- 最优划分属性(离散型)的选择
- 决策树的过拟合处理
- 连续属性处理
1. 什么是决策树?
-
决策树通常用于分类预测问题,我们希望从给定的训练集学得一个模型用以对新示例进行分类。
-
决策树由根结点至叶结点逐步生成,在生成过程中,主要解决两个问题:
① 每步中最优划分属性的选择;
② 如何对最优划分属性进行划分(对于取值有限的离散型属性,可以直接根据属性值对样本进行划分;而连续属性则需要确定划分点),它属于“分而治之”策略。
-
一棵决策树包含一个根节点、若干内部结点和若干叶节点。其中根节点和内部节点对应一个属性判断,叶节点对应判断的果。
-
优点:计算复杂度不高,输出结果易于理解,对中间的缺失值不敏感,可以处理不相关属性数据;
-
缺点:可能会产生过度匹配问题;
-
适用数据类型:数值型和属性型。
2. 最优划分属性(离散型)的选择
有以下三种准则是用于最优划分属性的选择,它们都是在信息熵的基础上提出的,接下来我们首先介绍下信息熵的概念。
(0) 信息熵
信息熵(information entropy)是度量样本集合纯度的常用统计量。对于包含
(1) 信息增益(ID3算法)
将集合D按照属性
(2) 增益率(C4.5算法)
信息增益准则对可取值数目较多的属性有所偏好,比如将样本编号列也看做是样本的一个属性,那么该属性的信息增益必然是最大。为减小这种偏好所带来的不利影响,可采用增益率准则
其中
称为属性
注意到,增益率准则对可取值数目较少的属性有所偏好,因此C4.5算法并不是直接选择增益率最大的属性,而是使用一个启发式:先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的。
(3) 基尼指数(CART算法:classification and regression tree)
类比于信息熵的概念,我们引出基尼值
则最优划分属性为
3. 决策树的过拟合处理
在整个训练过程中,为尽可能正确地将训练样本分类,通常会造成决策树的分支过多,需要修剪掉一些枝以降低过拟合风险。如何判断树枝(结点)是否需要被修剪,原则是使得决策树的泛化性能提升,可利用预留出的测试样本来评估泛化性能。有预剪枝和后剪枝两种剪枝策略:
- 预剪枝:指在决策树生成过程中,对每个结点在划分前先进行评估,若当前结点的划分不能带来决策树泛化性能的提升,则停止划分并将其作为叶结点。
- 后剪枝:指先从训练集生成一棵完整的决策树,然后自下而上地对非叶结点进行评估,若该结点对应地子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶结点。
预剪枝不仅可以降低过拟合风险,还能显著减少决策树的训练和测试时间;但当前不能提升泛化性能的分支有可能在其基础上进行的后续划分导致性能显著提高;预剪枝基于”贪心“本质禁止这些分支展开,给决策树带来了欠拟合的风险。
后剪枝决策树通常比预剪枝决策树保留了更多的分支,其欠风险相对也会小些,泛化性能往往由于预剪枝决策树;但其训练时间会多于预剪枝决策树。
4. 连续属性处理
对于连续型属性,常将其离散化,采用二分法进行属性的划分。假设连续属性
于是,我们就可以像离散变量一样的方式计算连续属性的信息增益
posted on 2020-05-17 21:56 chenxiaoyuan 阅读(421) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具