点击蓝字,关注我们
数据分析软件 | JMP
今天我们一起看看关于决策树的技术干货!
本文作者
邓老师 - JMP 资深数据分析顾问
决策树是一种机器学习方法,每次根据某个规则,选择一个特征,并以该特征的某个值作为阈值,把训练样本递归的分为若干子树,以同样的规则递归拆分,最后得到一棵可用于决策分类的树形分类器,其主要算法有:ID3、C4.5、CART 等。
决策树是一种常用的分类方法,需要监督 (Supervised) 学习,监督学习就是给出一组样本,每个样本都有对应的变量和分类结果,在分类结果已知的前提下,通过学习这组样本得到一颗决策树,这颗决策树就能够对新的样本进行预测分类。
接下来,我们通过一个简单的案例帮助大家理解决策树的构建思路。
01
案例分析
决策树的生成
开门见山,如下有一组数据,该数据包含了 20 个样本,希望通过“今天是否周末”及“今天心情如何”来预测“是否外出看电影”。
然后用这一组附带分类结果的样本进行训练,这里为了简化过程,我们假设决策树为二叉树,且类似于下图:
通过样本数据的学习,可以发现每个变量节点都有一个具体的判断指标,如周末、非周末,心情好、一般、不好,我们将其称之为阈值。如果是数值型的变量节点,则阈值一般为一个具体的值,如年龄是否超过 30 岁对结果进行判断,则 30 称为阈值。
决策树的生成一般分为两步,通过学习已知样本的分类结果来实现:
1
第一步
一般来说,变量的节点无法给出结果的判断时,节点会一分为二,如果不是二叉树则一分为多,直到分无可分。如该样本数据中,“今天是否周末”无法直接判断看或者不看电影,则加入新的变量节点“心情如何”再进行拆分,直至无法拆分为止。
2
第二步
选择合适的阈值使得误分类率最小。
02
案例分析
决策树算法
前面介绍过,常用的决策树算法有 ID3、C4.5 和 CART(Classification And Regression Tree),其中CART 分类效果优于其他算法,也是 JMP 所采用的方法。
接下来我们分别进行介绍:
1
ID3 算法
采用信息增益来评估拆分条件,对于一组样本数据增益越大说明分类效果越好。信息增益的过程其实是一种熵降的过程,熵定义的是信息的混乱程度,ID3 建模的过程也是将信息由混乱变单纯的过程。
上面案例中提到两个变量,是否周末、心情如何。例如我们想要判断决定”看电影“,我们看看每个变量节点分类效果如何:
变量节点 | 确定变量节点的样本数 | 决定”看电影“的样本数量 | 决定”看电影“的误分类数量 |
今天是周末 | 11 | 10 | 1 |
心情好 | 6 | 6 | 0 |
心情一般 | 6 | 4 | 2 |
最后发现“心情好”决定“看电影”的误分类率最低,也就是信息增益最大,所以 ID3 构建决策树的时候会优先拆分“今天心情如何”这项变量。
2
C4.5 算法
观察上面ID3的算法会发现,水平数越多的拆分变量节点拆分时的误分类率越低,熵也会随之越小。假如使用“ID”作为拆分变量,则子集纯度可以达到最高 (因为此时每个子集只有1个样本),信息增益最大。但显然,这样的拆分变量对于预测是毫无意义的,这也是所谓的过度拟合(Over Fitting)。
因此,为了避免拆分类别过多的“陷阱”,C4.5算法采用信息增益率来评估拆分条件,信息增益率的分母会随着拆分水平数增加而增大,从而导致信息增益率降低。如果按照C4.5算法进行拆分,虽然“今天心情如何”作为拆分变量可以得到更单纯的子集,但是其拥有“心情好、一般、不好”三个水平,导致其信息增益率反而低于“今天是否周末”这个变量,所以C4.5优先选择的是“今天是否周末”为拆分变量。具体信息增益率的算法本文就不做赘述。
3
CART 算法
CART 算法与 C4.5 算法思路是非常相似的,但是在具体实现和应用场景上略有不同:CART 算法不仅仅能够处理分类型的目标响应,同时也能处理连续型的目标响应,这也是其被称作分类与回归树的原因;ID3 算法只能处理分类响应,即只能建立分类树。
CART 可以是一个回归树。理想地说每一个子节点里都只有一个类别时分类应该停止,但是很多数据并不容易完全划分,或者完全划分需要很多次拆分,必然造成很长的运行时间,所以CART可以对每个子节点里的数据分析其均值标准差,当标准差小于一定值可以终止拆分,从而降低计算成本。
CART 算法采用基尼指数 (分类树) 及标准差(回归树) 作为纯度的度量;而 ID3 算法采用信息熵作为纯度的度量。两者也有相似之处,总体内包含的类别越混乱,基尼指数就越大。CART 算法只能建立二叉树,而 ID3、C4.5 算法能够建立多叉树 (注:只能建立二叉树并不是指响应变量只能选取二水平变量,CART 算法会采用对多水平进行合并的原则,从而输出二叉树)。
CART 存在一些细小分割,即过度拟合的问题,为了解决这一问题,对特别长的树进行剪枝处理,直接剪掉。当然也可以采用一些交叉验证的方法协助构建决策树以防止出现过度拟合的问题。
利用 JMP 分析-预测建模-分割(即决策树)可快速进行 CART 的模型建立,并形成树。但要说明的是 JMP 中针对分类树采用的是 G²(似然比卡方,与基尼指数类似),G² 越小,纯度越高,分类的效果越好。如下所示:
上图展示如何将响应与变量放置在分割平台对话框中
上图 CART 分类树显示,对于“是否看电影”这件事情的决定,“今天是否周末”是最重要的变量,也是使得 G² 下降最快的变量。再对“今天是周末”这个分支进行拆分,可以得到一个G²为0的子分支(是周末且心情好,即100%决定看电影),达到分无可分的目的,分类树构建完成。
这就是 JMP 构建决策树的过程,希望对大家有所帮助。
欢迎来 JMP 统计社区精进您的技能!
关于 JMP
1989 年第一版 JMP 软件问世以来,JMP 一直致力于通过交互式可视化统计分析,发现数据背后的价值,被广泛应用于业务可视化、探索性数据分析(EDA)、数据挖掘、建模预测、实验设计、产品研发、生物统计、医学统计、可靠性分析、市场调研、六西格玛质量管理等领域,裨益半导体和电子、医药、化工、食品、金融和服务、政府和教育等各行各业。
JMP Pro
专为科学家和工程师打造的预测分析软件
JMP Pro 提供一系列丰富的算法,让您能够构建高效的模型,您还可以通过模型筛选,轻松找到最适合您的数据的模型,轻松构建候选模型,然后使用 C、Python、JavaScript、SAS 或 SQL 进行分析、对比和生成评分代码。
JMP官方微信公众号
敏捷分析 成就无限
分享
收藏
点赞
在看
点击“阅读原文”,立即免费下载JMP试用!