数据挖掘模型介绍之三:决策树

1. 适用的场景

(1)分析对某种响应可能性影响最大的因素,比如判断具有什么特征的客户流失概率更高;

(2)为其他模型筛选变量。决策树找到的变量是对目标变量影响很大的变量。所以可以作为筛选变量的手段。

注:

1)决策树筛选的变量之间的独立性可能不够,因为决策树每次选择变量时不会考虑变量和其他变量的相关性。所以,如果其他模型自变量的相关性很敏感,用决策树筛选变量时需要检查变量的相关性。

2)如果为回归模型筛选变量,需要注意,决策树筛选出的变量和因变量之间的关系可能不具有单调性,因此用在回归模型中可能并不好用。这样的变量可以不用,或者进行离散化处理。

(3)预测因变量属于某一类的可能性或者可能性排名。比如因变量的类别为“响应”和“不响应”,“流失”和“不流失”,“类别一”、“类别二”和“类别三”。

注:

1)如果训练集的样本是分层抽样的,即抽样中各类别的比例和原始数据不同,那么,模型结果显示的属于某一类的概率也是不准确的。这时,概率排名是有意义的,但概率本身没有意义。如果模型目标是提取某类别可能性最高部分客户,但对属于某类别的可能性不关心的话,直接用模型的结果就行。如果模型的目标是预测属于某类别的概率,那么,需要把原始数据在模型里运行一下,得到原始数据在各个叶子节点里各分类的真实概率。

2)使用决策树直接预测记录属于哪个类别并不好用,因为对于很多情况下,记录属于某个类别的比例特别低,而这个特别低比例的记录却是用户真正感兴趣的记录。而如果直接把决策树作为分类器,很多时候会把所有叶子节点的类别都分为同一个类别,并且这个类别不是用户关心的。比如,为预测客户响应营销的可能性使用决策树,训练数据集里的客户总体响应率可能只有1%甚至更低。这样建立模型后,模型结果里,所有叶子节点中,纯度最高的节点,可能也只有5%的响应客户。这样,如果本模型用于分类,那么,所有节点的类别都是不响应。

2. 决策树构建过程

(1)   确定模型目标(可以参考文章第一部分:使用场景);

(2)   确定训练集数据、验证集数据、目标变量、自变量,对数据进行必要的预处理;

(3)   使用训练集进行决策树构建:

1) 常用算法:CART,CHAID,C5.0,C4.5等;

2) 主要过程:从根节点开始进行不断的划分,进行剪枝;

3) 确定最佳划分的主要标准:划分后节点的纯度;

(4)   使用测试集进行模型的验证;

(5)   确定模型。

3. 决策树构建关键过程:划分


3.1 划分的总体标准

确定最佳划分的总体标准:(1)划分后,子节点的纯度提升最大;(2)每个子节点记录数不太少(至少也有几十个)。

所谓纯度提升,可以这样理解:就是划分后,一个子节点里的所有记录,在各个分类上分布比父节点更不平均。比如,一个决策树要对记录进行类别预测,一共有两个类别A和B,父节点的记录在A和B上的的分布是A:60%,B:40%。进行进一步划分后,父节点划分后,其中一个子节点上A和B的分布是,A:85%,B:15%,那么,这个节点的纯度就比父节点有了提升。实际模型的纯度计算要比这个例子复杂,并且有很多计算方式。




3.2 针对数值型变量的划分方式

如果当前要划分的变量是数值型变量,一般的处理方式是,把数值型变量截成分段,比如,前三个月购买金额字段,截成“<3500”、“>=3500”。

决策树算法中,会把数值型变量进进行分段处理,这样会有一个后果,就是对于极端值所包含的信息不敏感,尤其是当极端值确实包含了重要信息时,这些信息很可能不能在模型中表现出来。

注:

1)   因为划分过程一般由算法自动完成,所以很可能划分的分界点不是非常规整的整数,比如,可能是“<3527”、“>=3527”。

2)   划分成的段数由具体算法和配置的参数确定,可能分成两段,也可能分成三个以上的分段。

3.3 针对分类型变量的划分方式

如果当前要划分的变量是分类型变量,处理方式相对简单一些,一般的处理方式是,算法会按照各分类的表现,确定把一些分类归为一类。比如,类别变量的取值有“A”、“B”、“C”、“D”、“E”、“F”六个类别,可能划分成“ACD”、“BE”、“F”三个类别。当然,极端的情况是,每一个类别都单独属于一个划分。比如上述分类变量的六个类别都单独作为一个划分。

3.4 划分时缺失值的处理方式

决策树处理缺失值比其他很多模型都有优势。最常见的处理方式是可以把缺失值作为一个单独的类别使用。当然,缺失值类别可能作为一个单独的划分,也可能和其他某些分类或分段归为一个划分。总之,缺失值的处理方式就是把缺失值作为一个单独的分类来看待。

4. 决策树划分算法


4.1 基于Gini(基尼)得分的划分算法

(1)   目标:划分出的所有子节点的Gini得分加权平均和最大。

注:在一些软件(比如SASEM)中的决策树模型里,如果使用Gini得分作为划分判断标准,Gini得分是越低越好的。原因是软件里对Gini得分进行的处理,比如用1减去我们这里定义的Gini得分,从而使得最终得分越低越好。但道理都是一样的。

(2)   过程:

1)   计算划分出的每个子节点的Gini得分;

2)   计算划分出的所有子节点的Gini得分的加权平均和;

3)   比较各种划分方式所得到的所有子节点的Gini加权平均和,Gini加权平均和超过父节点的Gini得分,并且Gini加权平均和最大的划分方式作为最终的划分方式。

(3)   如何计算划分出的某一个子节点的Gini得分

一个子节点的Gini得分=节点中各类别记录数所占的百分比的平方和。

比如:一个决策树的目标变量有两个分类A和B,一个子节点,A的记录占比是80%,B的记录占比是20%,那么,本节点的Gini得分=0.82+0.22=0.64+0.04 = 0.68。

(4)   如何计算划分出的所有子节点的Gini加权平均和

1)       计算每个子节点的Gini得分;

2)       计算每个子节点的Gini得分加权平均值;

一个子节点的Gini得分加权平均值=节点Gini得分*节点记录数占所有子节点总记录数的比例。

比如:一个子节点的Gini得分是0.68,本节点有3000个记录,另外还有两个子节点,记录数分别为5000和2000,那么,本节点的Gini得分加权平均值是:

0.68*3000/(3000+5000+2000)=0.68*0.3= 0.204

3)       计算所有子节点的Gini得分加权平均值的和。

4.2 基于熵减少的划分算法

(1)   什么是熵

“熵”是信息理论里的一个概念,可以简单的把熵理解成“用于度量一个系统复杂程度的变量”。具体的定义和描述如果感兴趣可以去查阅相关资料。

(2)   目标:划分出的所有子节点的熵的加权平均和最小。

(3)   过程:

1)       计算划分出的每个子节点的熵;

2)   计算划分出的所有子节点的熵的加权平均和;

3)   比较各种划分方式所得到的所有子节点的熵加权平均和,熵加权平均和超过父节点的熵,并且熵加权平均和最大的划分方式作为最终的划分方式。

(4)   如何计算划分出的某一个子节点的熵

一个子节点的熵=节点中各类别记录数所占的百分比乘以该比例的以2为底的对数,然后在把各类别的这个结果相加,然后再乘以-1,即取相反数。

比如:一个决策树的目标变量有两个分类A和B,一个子节点,A的记录占比是80%,B的记录占比是20%,那么,本节点的熵=-1*(0.8*log20.8+0.2*log20.2)。

(5)   如何计算划分出的所有子节点的熵

1)       计算每个子节点的熵;

2)       计算每个子节点的熵加权平均值;

一个子节点的熵加权平均值=节点熵*节点记录数占所有子节点总记录数的比例。

比如:一个子节点的熵是0.32,本节点有3000个记录,另外还有两个子节点,记录数分别为5000和2000,那么,本节点的熵加权平均值是:

0.32 *3000/(3000+5000+2000)=0.32*0.3= 0.096

3)       计算所有子节点的熵加权平均值的和。

4.3 基于卡方检验的划分算法

(1)   什么是卡方检验

卡方检验室统计学里的一种检验统计显著性的检验方法。其目标是检验某个划分不可能是由偶然因素和随机产生的可能性。相关详细资料可以查阅统计学书籍。

(2)   目标:划分出的所有子节点的卡方值最大。

(3)   过程:

1)   计算划分出的每个子节点的卡方值;

2)   计算划分出的所有子节点的卡方值的和;

3)   比较各种划分方式所得到的所有子节点的卡方值的和,卡方值的和最大的划分方式作为最终的划分方式。

(4)   如何计算划分出的某一个子节点的卡方值

(5)   划分出的所有子节点的卡方就是每个子节点卡方的和。

(6)   使用卡方检验的决策树算法:CHAID。

4.4 基于方差的划分算法

(1)   基于方差的划分算法主要应用于决策树应用于预测数值型变量的情况下。

(2)   目标是子节点的方差减少。

4.5 基于F检验的划分算法

简单介绍一下,基于F检验的方法,目标是使划分的F检验值变大,越大,说明划分效果越好。


  • 4
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值