决策树算法原理以及决策树规则生成方法

决策树算法原理以及决策树规则生成方法

决策树是一种可解释性较强的策略分析工具。creditmodel提供了分类回归树和条件推断树两种决策树生成和提取规则的方法。

每一个风险管理人员都应该掌握使用决策树发现规则和对进行客户分群的方法。

决策树实质上是IF-THEN规则的集合,这种规则与人类进行决策的行为习惯不谋而合,这使得决策树具有很强的可解释性。另外,我们可以将决策树模型进行可视化,更能有效地帮助我们分析和解决问题。
强可解释性和易于可视化使得决策树模型在金融领域、健康医疗领域、工业生产和制造、天文学和分子生物学得到了广泛应用等。

决策树的基本原理

决策树是什么?

决策树是数据科学领域最为经典的模型之一,也是一种应用非常广泛的分类方法。

在日常生活中,我们经常会通过对一系列问题的判断来进行决策。例如,风险投资、相亲择偶、医生问诊,其实都是一个决策的过程。

医生会通过观察、询问、体检来获得患者的基本症状,然后选择不同的维度,依据自己的经验规则,对患者的病情进行诊断。

在银行贷款时,银行的信贷审批员也需要根据借贷人的基本信息如收入、教育程度、婚姻状态等信息对是否放贷进行决策。

男女相亲时,双方可能会根据对方的外貌、教育程度、收入、性格等信息,决策是否进一步交往。

如果女方比较看重男方的收入和学历,则女方判断是否约会依据的规则可能有:

规则1:若男方收入高,则约。

规则2:若男方收入中等且为本科或研究生学历,则约

规则3:若男方收入中等且为高中及以下学历,则不约

规则4:若男方收入低,则不约。

这样四条规则就可以把是否交往这个问题从收入和教育程度两个维度进行了划分,这些几条决策规则可以用一个树形结构表示可以表示,如下图所示。
在这里插入图片描述
医生、天使投资人、信贷审批员、找对象的女生头脑里都有一些专家规则,这些规则往往是通过非常多的案例归纳或者其他人的言传身教逐渐形成的。但是,很多很多时候,我们并没有这样的专家决策系统,而只有数据。如果你是一个女生,注册了某个婚恋网站的会员,婚介一次性给你推荐了10个备胎,如下表所示,你选择与其中5个人约会,另外5个你选择不约。

对象编号 收入水平 教育程度 颜值 年龄 身高 是否约会
1 研究生 28 178 不约
2 本科 中等 35 185
3 高中及以下 中等 30 170 不约
4 中等 高中及以下 28 175 不约
5 本科 40 165 不约
6 中等 本科 27 180
7 中等 高中及以下 25 182 不约
8 中等 研究生 中等 50 168
9 中等 研究生 38 177
10 高中及以下 24 172

于是,我们从收入水平、教育程度、颜值外貌、年龄、身高以及你的决策结果几个维度收集到了这些人的数据,我们能否从这些数据中能否学习到一些规则,构建一个交往决策系统,决定你会与哪些人约会,然后更精准地给你推荐相亲对象呢?这就是决策树所要解决的问题。那么如何根据已有数据生成决策树呢?这就是下一节所要讲的内容。

决策树的生成

决策树中的每一个非叶子节点(如收入,教育程度)代表在某个特征上的一次判断。每一次判断都包含两个层次的问题:

  • 一是对哪个特征进行判断,例如对收入进行判断。
  • 二是在该特征上进行怎样的判断,收入“高”?收入“低”?收入“中等”?。

树中的叶子节点(如约,不约)代表决策的结果,决策结果是根据树的根节点到该叶子节点的路径上的一系列判断来决定的。

决策树的生成一般是从根节点开始,选择对应特征,然后选择节点对应特征的分割点,再根据分割点分裂节点。

对于离散型特征,根据取值进行分裂,如相亲对象这一数据集中的“颜值”是一个离散型的特征,其有三个取值——“高、中、低”,那么根节点就分裂成三个子节点。

对于连续型特征,则需要根据取值的分割点,来分裂子节点,例如“身高”这一特征,可以选择 170 170 170作为分割点。
在这里插入图片描述

总而言之,决策树通过选择特征和对应分裂点生成多个子节点,当某一个节点中的取值只属于某类别(或方差较小)时,那么就不再进一步分裂子节点。

核心问题:如何选择节点的特征以及特征分割点?

要回答上述问题,我们首先介绍不纯度的概念(所谓的纯与不纯,就是你理解的那个“纯”)。

不纯度(impurity): 表示落在当前节点的样本类别分布的均衡程度,如果类别一致,那么不纯度为0。

在这里插入图片描述
如上图所示,叶子节点 t 1 t_1 t1 t 3 t_3 t3是比较纯的,叶子节点 t 2 t_2 t2就不那么纯了。

我们根据不纯度的下降程度来选择特征和对应的分裂点。

假设在节点分裂前的相亲对象的数据集为 D 0 = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 } D_0=\{1,2,3,4,5,6,7,8,9,10\} D0={ 1,2,3,4,5,6,7,8,9,10},编号代表的是每一个相亲对象。 接下来,我们根据“收入水平”和“教育程度”这两个特征为例,来说明如何选择特征。

根据收入水平的取值“高”、“中”、“低”,将数据集分裂为三部分,分别为 D 1 D_1 D1 D 2 D_2 D2 D 3 D_3 D3,记为 D 123 D_{123} D123,教育程度分裂后的子节点数据集分别为 D 4 D_4 D4 D 5 D_5 D5 D 6 D_6 D6,记为 D 456 D_{456} D456

假设 Imp ( ⋅ ) \text{Imp}(\cdot) Imp()为节点的不纯度。收入水平分裂节点前后的不纯度的下降值为 Imp ( D 0 ) − Imp ( D 123 ) \text{Imp}(D_0) - \text{Imp}(D_{123}) Imp(D0)Imp(D123)。 教育程度分裂节点前后,不纯度的下降值为 Imp ( D 0 ) − Imp ( D 456 ) \text{Imp}(D_0) - \text{Imp}(D_{456}) Imp(D0)Imp(D456)。 然后,比较收入水平和教育程度分裂前后不纯度下降值的大小,选择下降值更大的特征作为最优的分裂方式。

从上图可以直观看出,选择收入水平的不纯度下降是最大的。

如何度量不纯度呢?

那么,究竟如何度量节点的不纯度呢?不同决策树算法有不同的衡量指标。下面介绍三种常见的节点不纯度度量方法:

  • 基尼指数(Gini index)
  • 信息熵(Entropy)
  • 误分率(Misclassification error)
基尼指数(分割前)

基尼指数是衡量一个国家或地区居民之间的贫富差距的指标,常用来判断社会财富分配的公平程度,这一指标实质上是反映社会中各个收入水平的人群数量分布的均衡程度。

同理,我们可以借用Gini指数来反映决策树子节点中不同类别样本分布的均衡程度,即不纯度。

假设数据集一共有 C C C类, p ( C ∣ t ) p(C|t) p(Ct)是节点 t t t中第 c c c类样本的相对频率,则节点 t t t的Gini指数为
Gini ( t ) = 1 − ∑ c = 1 c [ p ( C ∣ t ) ] 2 \text {Gini}(t) = 1- \sum_{c=1}^c [p(C|t)]^2 Gini(t)=1c=1c[p(Ct)]2
根据基尼指数的计算公式,我们可以知道,当节点中各个类别的样本比例一致时,即均匀分布,Gini指数取得最大值 ( 1 − 1 C ) (1 - \frac{1}{C}) (1C1),节点不纯度最大;当节点中的样本全部属于一个类别时,Gini指数等于0,节点不纯度也最小。

相亲对象数据集的结果变量是否约会,有两个类别——约与不约,故$ C = 2 。 我 们 可 以 根 据 一 个 节 点 。我们可以根据一个节点 t$中不同类别样本的数量来计算Gini指数。

节点编号 约样本数 不约样本数
t 0 t_0 t0 5 5
t 1 t_1 t1 2 0
t 2 t_2 t2 3 2
t 3 t_3 t3 0 3
t 4 t_4 t4 1 3
t 5 t_5
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值