京公网安备 11010802034615号
经营许可证编号:京B2-20210330
今天,我们继续开启分类算法之旅,它是一种高效简介的分类算法,后面有一个集成算法正是基于它之上,它是一个可视化效果很好的算法,这个算法就是决策树。
1 一个例子
有一堆水果,其中有香蕉,苹果,杏这三类,现在要对它们分类,可以选择的特征有两个:形状和大小,其中形状的取值有个:圆形和不规则形,大小的取值有:相对大和相对小。现在要对其做分类,我们可以这样做:
首先根据特征:形状,如果不是圆形,那么一定是香蕉,这个就是叶子节点;
如果是圆形,
再进一步根据大小这个特征判断,如果是相对大的,则是苹果,如果否,则是杏子,至此我们又得到两个叶子节点,并且到此分类位置,都得到了正确划分三种水果的方法。
大家可以体会刚才这个过程,这就是一个决策分类,构建树的一个过程,说成是树,显得有点高大上,再仔细想想就是一些列 if 和 else 的嵌套,说是树只不过是逻辑上的一种神似罢了。
刚才举的这个例子,有两个特征:形状和大小,并且选择了第一个特征:形状作为第一个分裂点,大小作为第二个分裂点,那么不能选择第二个特征作为第一分裂点吗? 这样选择有没有公式依据呢?
2 分裂点选择依据
在上个例子中,有三类水果,现在假设杏都被我们家的宝宝吃完了,现在手里只有香蕉和苹果这两类水果了,并且这个时候要对它们做分类,此时机灵的你,一定会根据特征:形状对它们分类了,因为这样一下就会把它们分开了,此时我们说这类集合的纯度更高,与之前的那三类水果在形状这个特征上。
纯度这个概念是很好的理解的,种类越少纯度越高,自然两类纯度更高。 此时有人提出了一个和它相反的但是不那么容易理解的概念:熵。它们是敌对双方:熵越大,纯度越低;熵越小,纯度越高。
这是一种概念,那么如何用公式量化熵呢:
其中 i 等于苹果,香蕉,杏,P(i)是集合中取得某一个水果的概率。
试想一下,如果我们想更好地对某个集合完成分类,会怎么做呢?我们一定会优先选择一个特征,使得以这个特征做分类时,它们能最大程度的降低熵,提高分类的纯度,极限的情况是集合中100个元素(集合中只有两类水果),根据某个最优特征,直接将分为两类,一类都是苹果,一类都是杏,这样熵直接等于0。
这个特点就是所谓的信息增益,熵降低的越多,信息增益的就越多。很多时候都不会发生上述说的这个极限情况,就像文章一开始举的例子,根据形状划分后,熵变小了,但是未等于0,比如刚开始三类水果的熵等于0.69,现在根据形状分裂后,熵等于了0.4,所以信息增益为0.69 – 0.4 = 0.29 。如果根据大小划分,信息增益为0.1,那么我们回考虑第一个分裂特征:形状。
这种方法有问题吗?
3 信息增益越大,分类效果越好?
这是只根据信息增益选择分裂特征点的bug,请看下面举例。
如果某个特征是水果的唯一标示属性:编号,那么此时如果选择这个特征,共得到100个叶子节点(假设这堆水果一共有100个),每个叶子节点只含有1个样本,并且此时的信息增益最大为 0.69 – 0 = 0.69 。
但是,这是好的分类吗? 每一个样本作为单独的叶子节点,当来了101号水果,都不知道划分到哪一个叶子节点,也就不知道它属于哪一类了!
因此,这个问题感觉需要除以某个变量,来消除这种情况的存在。
它就是信息增益率,它不光考虑选择了某个分裂点后能获得的信息增益,同时还要除以分裂出来的这些节点的熵值,什么意思呢? 刚才不是分裂出来100个节点吗,那么这些节点自身熵一共等于多少呢:
再除以上面这个数后,往往信息增益率就不会那么大了。这就是传说中的从ID3 到 C4.5 的改进。
4 与熵的概念类似的基尼系数
只需要知道基尼系数和熵差不多的概念就行了,只不过量化的公式不同而已,这就说明理解了,至于公式长什么样子,用的时候去查就行了。
让我们看一下远边的大海,和海边优美的风景,放松一下吧!
5 展望
以上介绍了决策树的一些概念和分裂点选取的基本方法。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
在Python数据分析中,Pandas库的DataFrame是最核心、最常用的结构化数据表对象,类似于Excel的二维表格,具备规整的行列结构、字 ...
2026-09-07在数据分析、经营复盘、业绩预测与经济统计工作中,平均增速(平均增长率)是衡量数据长期变化趋势、业务发展快慢的核心指标。不 ...
2026-09-07 很多数据分析师精通Excel单元格操作,但当被问到“表结构数据的基本处理单位是什么”“字段和记录的本质区别”“为什么表结 ...
2026-09-07随着大数据技术的快速发展,商业竞争逐步从传统的经验式经营转变为数据驱动的精细化运营。海量的用户行为数据、交易数据、运营数 ...
2026-09-04CDA数据分析师 出品 作者:李诗怡 1. 波士顿矩阵(BCG Matrix) 定义: BCG于1970年提出的业务组合分析工具,以"市场增长率"(纵 ...
2026-09-04 数据分析师八成以上的时间在和数据表格打交道,但许多人拿到Excel后习惯性地先算、先分析,结果回头发现漏了一列关键数据, ...
2026-09-04数据透视表是Excel与Power BI中最核心的数据分析工具,具备快速汇总、维度拆分、动态筛选的能力,可高效完成数据归类与统计展示 ...
2026-09-03在Power BI数据分析可视化场景中,堆积柱状图+折线图是最常用的复合图表组合。堆积柱状图适合展示各细分维度当期数值、结构占比 ...
2026-09-03 很多数据分析师每天与Excel打交道,但当被问到“表格结构数据的基本处理单位是什么”“数据类型误判会引发哪些分析错误”“ ...
2026-09-03CDA数据分析师 出品 作者:李诗怡 一、8个核心数据清洗函数 1. TRIM:一键清除多余空格(最常用) 作用:仅保留文本中"单词/字 ...
2026-09-02数据分析的核心并非单纯操作工具、整理报表或绘制图表,而是依靠科学的思维逻辑挖掘数据价值、解释业务现象、指导经营决策。在完 ...
2026-09-02在社会经济、产业研究、区域治理与大数据实证分析中,面板数据是最具研究价值的数据类型。面板数据同时包含截面维度与时间维度信 ...
2026-09-02 很多数据分析师能熟练计算均值、标准差,但当被问到“如何用一张图让业务方3秒内看懂核心结论”“面对不同数据类型该怎么选 ...
2026-09-02在数据驱动决策的体系中,数据分析按照分析目的可分为描述性分析、诊断性分析、预测性分析与指导性分析四大类型。其中,诊断性分 ...
2026-09-01网络请求是Python爬虫开发、接口测试、数据拉取的核心基础功能,Python生态中主要依靠 urllib 和 requests 两大库实现HTTP请求操 ...
2026-09-01 很多数据分析师面对业务问题时,常常感到“知道要分析,却不知道用什么方法”。其实,数据分析并非无章可循——从三大基础范 ...
2026-09-01在数据库设计与业务数据维护中,自增ID是数据表最常用的主键字段,用于唯一标识每一条业务数据,正常状态下ID应保持连续递增。但 ...
2026-08-31在数理统计、数据分析、经济测算与日常量化评估中,平均值是刻画数据集中趋势、反映整体水平的基础核心指标。在实际应用中,最常 ...
2026-08-31在数据驱动的时代,数据分析早已不是“凭经验、靠感觉”的零散操作,而是一套具备固定逻辑、标准化流程的系统方法——这就是数据 ...
2026-08-31在大数据时代背景下,海量行业数据亟需通过专业化工具挖掘潜在价值,辅助企业业务决策、优化运营模式、规避经营风险。Python凭借 ...
2026-08-28