当今制造业的竞争激烈,企业需要不断寻求创新的方法来提高效率、降低成本并保持产品品质。在这个动态且复杂的环境中,统计分析工具成为了业界的一大利器,而其中一个广泛应用的工具就是决策树。决策树是一种强大的统计模型,能够帮助制造业解决各种问题,从产品缺陷分析到生产效率优化,再到供应链管理和品质控制。在这篇文章中,我们将探讨何谓决策树,其有哪些应用场景与使用技巧,以应对日益变化的市场需求。
什么是决策树?
决策树是一种机器学习方法,每次根据某个规则,选择一个特征,并以该特征的某个值作为阈值,把训练样本递归的分为若干子树,以同样的规则递归拆分,最后得到一棵可用于决策分类的树形分类器,其主要算法有:ID3、C4.5、CART等。决策树是一种常用的分类方法,需要监督(Supervised) 学习,监督学习就是给出一组样本,每个样本都有对应的变量和分类结果,在分类结果已知的前提下,透过学习这组样本得到一颗决策树,这颗决策树就能够对新的样本进行预测分类。接下来,我们透过一个简单的案例帮助大家理解决策树的分析思维。
决策树案例分享
给出如下一组数据,该数据包含了20个样本,希望透过下图(一) “今天是否周末”及“今天心情如何”来预测“是否外出看电影”。

图(一)
然后用这一组附带分类结果的样本进行训练,这里为了简化过程,我们假设决策树为二叉树,且类似于下图(二):

图(二)
透过样本数据的学习,可以发现每个变量节点都有一个具体的判断指标,如周末、非周末,心情好、一般、不好,我们将其称之为「阈值」。如果是数值型的变量节点,则阈值一般为一个具体的值,如年龄是否超过30岁对结果进行判断,则30称为阈值。
决策树的生成一般分为两步骤,透过学习已知样本的分类结果来实现:
- 一般来说,变量的节点无法给出结果的判断时,节点会一分为二,如果不是二叉树则一分为多,直到分无可分。如该样本数据中,“今天是否周末”无法直接判断看或者不看电影,则加入新的变量节点“心情如何”再进行拆分,直至无法拆分为止;
- 选择合适的阈值,可让误分类率最小。
常用的决策树算法
前面介绍过,常用的决策树算法有ID3、C4.5和CART(Classification And Regression Tree),其中CART分类效果优于其他算法,也是JMP所采用的方法。接下来我们分别进行介绍:
ID3算法
采用资讯增益来评估拆分条件,对于一组样本数据增益越大,说明分类效果越好。资讯增益的过程其实是一种熵降的过程,熵定义的是资讯混乱程度的大小,ID3建模的过程也是将资讯由混乱变单纯的过程。
上面案例中提到两个变量,是否周末、心情如何,我们看看每个变量节点分类效果如何:
- “今天是周末”来判断决定“看电影”:其中11个样本确定是周末,但最终决定看电影的样本为10个,误分类1个;
- “心情好”来判断决定“看电影”:其中6个样本确定是心情好,最终决定看电影的样本为6个,误分类0个;
- “心情一般”来判断决定“看电影”:其中6个样本确定是心情一般,但最终决定看电影的样本为4个,误分类2个。
最后发现“心情好”决定“看电影”的误分类率最低,也就是资讯增益最大,所以ID3构建决策树的时候会优先拆分“今天心情如何”这项变量。
C4.5算法
观察上面ID3的算法会发现,水平数越多的拆分变量节点拆分时的误分类率越低,熵也会随之越小。假如使用“ID”作为拆分变量,则子集纯度可以达到最高(因为此时每个子集只有1个样本),资讯增益最大。但显然,这样的拆分变量对于预测是毫无意义的,这也是所谓的过度拟合(Over Fitting)。
因此,为了避免拆分类别过多的“陷阱”,C4.5算法采用资讯增益率来评估拆分条件,资讯增益率的分母会随着拆分水平数增加而增大,从而导致资讯增益率降低。如果按照C4.5算法进行拆分,虽然“今天心情如何”作为拆分变量可以得到更单纯的子集,但是其拥有“心情好、一般、不好”三个水平,导致其资讯增益率反而低于“今天是否周末”这个变量,所以C4.5优先选择的是“今天是否周末”为拆分变量。具体资讯增益率的算法本文就不做赘述。
大车算法
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进行预测建模与机器学习
>> 下载JMP: 软体试用30 天