决策树故名思意是用于基于条件来做决策的,而它运行的逻辑相比一些复杂的算法更容易理解,只需按条件遍历树就可以了,需要花点心思的是理解如何建立决策树。
举个例子,就好像女儿回家,做妈妈的给女儿介绍对象,于是就有了以下对话:
妈妈:女啊,明天有没有时间,妈妈给你介绍个对象
女儿:有啊,对方多大了。
妈妈:年龄和你相仿
女儿:帅不帅啊
妈妈: 帅
女儿:那我明天去看看
妈妈和女儿对话的这个过程中,女儿的决策过程可以用下图表示:
你可能会认为,这个决策的过程本质上就是对数据集的每一个做if--else的判断,这不很简单吗?那为什么还要专门弄一个算法出来呢?
不妨可以考虑两点,假如训练数据集中存在无关项,比如以下的例子:
10-1 #表示第一项特征是1,第二项特征是0,最后推出的结果是1,以下同理
12-1
05-0
09-0
17-1
……
显然的,最后结果和第二个特征无关,如果仍要做判断就会增加了损耗。所以在建立决策树的过程中,我们就希望把这些无关项扔掉。
第二点,回到妈妈给女儿介绍对象的这个例子,上图是为了方面读者理解,所以按照顺序画出,但事实上,有一个严重的问题,比如说女儿可能不能容忍某个缺点,而一旦对方的性格中具有这个缺点,那么其他一切都不用考虑。也就是说,有一个特征跟最后的结果相关度极高,这时我们就希望这个数据出现在根节点上,如果核心条件不满足那就结束遍历这棵树了,避免无谓的损耗。
总言言之,决策树第一个是需要从大量的已存在的样本中推出可供做决策的规则,同时,这个规则应该避免做无谓的损耗。
算法原理
构造决策树的关键步骤是分裂属性。分裂属性值得就是在某个节点处按照某一特征属性的不同划分构造不同的分支,其目标是让各个分裂子集尽可能地“纯”。尽可能“纯”就是尽量让一个分裂子集中待分类项属于同一类别。这时分裂属性可能会遇到三种不同的情况:
对离散值生成非二叉决策树。此时用属性的每一个划分作为一个分支。
对离散值生成二叉决策树。此时使用属性划分的一个子集进行测试,按照“属于此子集”和“不属于此子集”分成两个分支。
属性是连续值。确定一个split_point,按照>split_point和<=split_point转成成离散,分别建立两个分支
构造决策树的关键性内容是进行属性选择度量,属性选择度量是一种选择分裂准则,是将给定的类标记的训练集合的数据划分D“最好”地分成个体类的启发式方法,它决定了拓扑结构及分裂点split_point的选择。
在这里仅介绍比较常用的ID3算法。
从信息论知识中我们直到,期望信息越小,信息增益越大,从而纯度越高。所以ID3算法的核心思想就是以信息增益度量属性选择,选择分裂后信息增益最大的属性进行分裂。
循序本系列的从工程角度理解算法,而非数学角度理解算法的原则,因此这里只给出信息增益度量的计算方式,如果需要深入了解其数学原理,请查阅专业资料。
设D为用类别对训练元组进行的划分,则D的熵计算方法为:
其中pi表示第i个类别在整个训练集中出现的概率。
当按照特征A分割后,其期望信息为:
其中Di/D表示每一个D在整体训练集占的比例。
而信息增益即为两者的差值:
其中当gain(A)达到最大时,该特征便是最佳的划分特征,选中最佳特征作为当前的节点,随后对划分后的子集进行迭代操作。
算法实现
github
在本专栏的前面的文章描述了基于决策树的五子棋游戏,算是一个基于决策树的应用了。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
持证人简介:贺渲雯 ,CDA 数据分析师一级持证人,互联网行业数据分析师 今天我将为大家带来一个关于用户私域用户质量数据分析 ...
2025-04-18一、CDA持证人介绍 在数字化浪潮席卷商业领域的当下,数据分析已成为企业发展的关键驱动力。为助力大家深入了解数据分析在电商行 ...
2025-04-17CDA持证人简介:居瑜 ,CDA一级持证人,国企财务经理,13年财务管理运营经验,在数据分析实践方面积累了丰富的行业经验。 一、 ...
2025-04-16持证人简介: CDA持证人刘凌峰,CDA L1持证人,微软认证讲师(MCT)金山办公最有价值专家(KVP),工信部高级项目管理师,拥有 ...
2025-04-15持证人简介:CDA持证人黄葛英,ICF国际教练联盟认证教练,前字节跳动销售主管,拥有丰富的行业经验。在实际生活中,我们可能会 ...
2025-04-14在 Python 编程学习与实践中,Anaconda 是一款极为重要的工具。它作为一个开源的 Python 发行版本,集成了众多常用的科学计算库 ...
2025-04-14随着大数据时代的深入发展,数据运营成为企业不可或缺的岗位之一。这个职位的核心是通过收集、整理和分析数据,帮助企业做出科 ...
2025-04-11持证人简介:CDA持证人黄葛英,ICF国际教练联盟认证教练,前字节跳动销售主管,拥有丰富的行业经验。 本次分享我将以教培行业为 ...
2025-04-11近日《2025中国城市长租市场发展蓝皮书》(下称《蓝皮书》)正式发布。《蓝皮书》指出,当前我国城市住房正经历从“增量扩张”向 ...
2025-04-10在数字化时代的浪潮中,数据已经成为企业决策和运营的核心。每一位客户,每一次交易,都承载着丰富的信息和价值。 如何在海量客 ...
2025-04-09数据是数字化的基础。随着工业4.0的推进,企业生产运作过程中的在线数据变得更加丰富;而互联网、新零售等C端应用的丰富多彩,产 ...
2025-04-094月7日,美国关税政策对全球金融市场的冲击仍在肆虐,周一亚市早盘,美股股指、原油期货、加密货币、贵金属等资产齐齐重挫,市场 ...
2025-04-08背景 3月26日,科技圈迎来一则重磅消息,苹果公司宣布向浙江大学捐赠 3000 万元人民币,用于支持编程教育。 这一举措并非偶然, ...
2025-04-07在当今数据驱动的时代,数据分析能力备受青睐,数据分析能力频繁出现在岗位需求的描述中,不分岗位的任职要求中,会特意标出“熟 ...
2025-04-03在当今数字化时代,数据分析师的重要性与日俱增。但许多人在踏上这条职业道路时,往往充满疑惑: 如何成为一名数据分析师?成为 ...
2025-04-02最近我发现一个绝招,用DeepSeek AI处理Excel数据简直太爽了!处理速度嘎嘎快! 平常一整天的表格处理工作,现在只要三步就能搞 ...
2025-04-01你是否被统计学复杂的理论和晦涩的公式劝退过?别担心,“山有木兮:统计学极简入门(Python)” 将为你一一化解这些难题。课程 ...
2025-03-31在电商、零售、甚至内容付费业务中,你真的了解你的客户吗? 有些客户下了一两次单就消失了,有些人每个月都回购,有些人曾经是 ...
2025-03-31在数字化浪潮中,数据驱动决策已成为企业发展的核心竞争力,数据分析人才的需求持续飙升。世界经济论坛发布的《未来就业报告》, ...
2025-03-28你有没有遇到过这样的情况?流量进来了,转化率却不高,辛辛苦苦拉来的用户,最后大部分都悄无声息地离开了,这时候漏斗分析就非 ...
2025-03-27