决策树实例(常用的大数据分析模型

什么是决策树?

决策树模型的本质是由多个判断节点组成的树。 对树的每个节点进行参数判断,进而通过树的最末尾的枝(着急的笔)可以最佳地判断感兴趣的变量的取值。 通常,一个决策树包含一个根节点、多个内部节点和多个急用笔,急用笔对应决策分类结果。 分歧判断,叶子得出结论。

观察简单的决策树模型,根据动物的特征判断是否是鱼。 在决策树模型中,我们来看看各个节点如何判断。 我们能把所有要研究的动物作为树的顶端起点,最先判断它,远离水生存吗? 如果判断是那样的话,那就不是鱼了。 如果没有的话,再做下一个判断。 有脚蹼吗? 如果是那样,那就是非鱼类,否则就是鱼类。

我们最多只能通过两个阶段的判断,在树的最末端的叶节点上,对我们感兴趣的问题做出相对最佳的决定。 这就是决策树的逻辑。 非常简单,和人脑理解事物的逻辑很相似。

决策树是一种简单高效且具有说明力的模型,广泛应用于数据分析领域。

简单:逻辑比较简单,整个算法没有更复杂的逻辑,只是分支节点; 效率:模型训练速度快。有力说明:模型的判断逻辑可以用语言清晰地表达出来。 例如,上述决策树在案例中的判断可以直接用语言表达。 无法脱离水生存的没有脚蹼的动物,判断为鱼。 决策树模型应用于数据分析的场景主要有三种:

监督分层; 驱动力分析:分析一个因变量指标受多个因素的影响,不同因素因变量对驱动力的强弱(与驱动力是指相关性,而不是因果性); 预测:通过模型预测分类; 二

熵是什么?

熵描述的是判断的不确定性,很多决策树的最终判断并不是100%正确的,决策树只是基于不确定性做出最优的判断。

例如在上述决策树的情况下,判断远离水也能生存的是“非鱼类”。 但是,有一种叫做非洲肺鱼的特殊鱼类,即使远离水也能活4年以上。 虽然并不是100%正确,但是我们之所以用这支着急的钢笔判断它不是鱼类,是因为在远离水也能够生存的所有动物中,非常大一部分不是鱼。 这个判断很可能是正确的,但判断依然存在不确定性。

那么什么是不确定性呢? 如下图所示,女性所占比例为50%,具有最大不确定性。如果女性比例为0%或100%,则具有最小不确定性。 女性的比例为30%,如果有中等不确定性的女性比例为70%,我们此时推测是女性,出错的可能性为1-70%,即30%,和刚才的情况一样。 也就是说,10人中女性是30%还是70%,我们给出的判断不同,但两人判断错误的可能性相同,都是30%;

照片: 10人中随机选择1人,判断性别是男性还是女性

如果尝试使用统计量e来表示不确定性,则e的取值被规定为0到1之间。 他和人群中的女性所占比例应该满足这样的曲线关系,当女性所占比例为0或100%时,判断的不确定性最小e取最小值0的女性比例为50%时,判断的不确定性最大,e取最大值1的女性所占比例而且,取值相对于50%的女性是对称的。

熵用于表达上述不确定性,其公式如下。

Pi的含义:对于事件,有c种可能的结果,每个可能结果的概率为P1、P2…Pc;

熵介于0-1之间。一个判断的不确定性越大,熵就越大;

信息增益

信息增益表示经过一次决策判断(分支)后,群体的熵值下降的大小,即父节点的熵与两个子节点的熵值之和的差。

a9c45238f6403e57193ece6?from=pc”>

如上图,信息增益(IG) = 0.5842 – ( 38% * 0.9507 + 62 * 0 )=0.22

决策树算法实现步骤

我们继续用上一篇文章《如何用线性回归模型做数据分析》中的共享单车服务满意分数据集来做案例,分析哪一类人群更加偏向于成为公司的推荐者,我们需要分析用户特征,更好的区分出推荐者。

4.1测量节点对应人群的熵

决策树模型的第一步,是测量每个节点对应人群的熵值,最终我们得到可以判断推荐者的决策树。如下图,每个节点中标注两个数字,上面是推荐者比例,下面是用户群占比。初始节点的推荐者比例为0.14,再没任何分叉前,人群占比100%。我们用熵来度量每个节点对应人群的不确定性,推荐者比例趋近0%和100%的人群,熵的值也趋近于0,推荐者比例趋近50%的人群,熵的值则趋近于1。

在这个案例中,我们想知道哪一类人更加偏向成为公司的推荐者,也就是说,我们希望通过决策树,可以尽量地划分出是或者不是推荐者这个事情最为确定的人群。如果这样的人群在树的最终结点、也就是叶子结点可以被很好地划分出来的话,那么叶子结点所对应的人群的特征,就是推荐者或者非推荐者的典型特征。

反应在人群的熵值计算,更大的确定性对应于比较小的熵值。我们实际上是希望通过决策树不断地分叉,使得节点的熵值越来越低,用户的label越来越纯。

4.2节点的分叉-信息增益我们使用信息增益(IG)来判断决策树的分叉方式。

节点分叉规则:在每个节点尝试按照不同特征变量的各种分组方式,选取信息增益最大(熵最小)的方式。

4.3在特定情况树节点停止分叉

决策树不会一直不停分叉,决策树停止分叉的条件通常有:

树的深度 — 如规定树的深度不能超过3叶子结点样本数 — 如叶子结点样本数不能小于10信息增益 — 如每一个分叉的信息增益不能小于0.2(R中的默认值)

停止分叉:再分叉会增加复杂度但是效果没有提高,叶子越多越复杂,会加重解释复杂性。

决策树在数据分析中的实战流程

我们了解了决策树模型的算法原理,那么它如何应用在日常的数据分析工作中呢?

继续我们刚才的案例,我们想探究分析用户推荐程度的主要影响因素是什么?可以用决策树模型将用户按照推荐者比例高低进行分层。

一百条数据,由公司员工随机采访100名用户产生,采访对象是北京市四个城区(西城区、东城区、海淀区、朝阳区)的居民,组别分为实验组和对照组。

5.1导入数据集

5.2切割自变量和因变量

5.3将分类变量转换为哑变量

Python大多数算法模型无法直接输入分类变量

5.4训练模型

圈出叶子点-最终划分出的人群分层

5.5分析结果

通过人群特征取值的判断,1、我们划分出了推荐者比例有显著区别的人群2、找出了区分推荐者人群的关键特征,例如:海淀区用户、29岁及以上等

‘5.6决策树扩展

模型建立后,可以将模型用作分类预测;决策树不只可应用于预测量为分类变量,还可应用于数值型因变量,只需将熵改为连续变量的方差;特征划分的方法除了信息增益方法外,还可以用增益率(C4.5决策树)、基尼指数(CART决策树);剪枝是决策树算法中防止过拟合的主要手段,分为预剪枝与后剪枝。预剪枝指在决策树生成过程中,对每个结点在划分前进行估计,若当前结点划分不能使决策树泛化能力提升则停止划分。后剪枝指先从训练集生成一颗决策树,自底向上对非着急的钢笔进行考察,若该结点对应的子树替换为着急的钢笔能使决策树泛化能力提升,则该子树替换为着急的钢笔;

作者:从容的哈密瓜,数据线 快手社区数据分析,互联网行业的数据分析师 主要分享互联网数据分析、产品、运营相关方法论及思考总结。

快三大小单双稳赚买法ss=”pgc-img-caption”>

4.3在特定情况树节点停止分叉

决策树不会一直不停分叉,决策树停止分叉的条件通常有:

树的深度 — 如规定树的深度不能超过3叶子结点样本数 — 如叶子结点样本数不能小于10信息增益 — 如每一个分叉的信息增益不能小于0.2(R中的默认值)

停止分叉:再分叉会增加复杂度但是效果没有提高,叶子越多越复杂,会加重解释复杂性。

决策树在数据分析中的实战流程

我们了解了决策树模型的算法原理,那么它如何应用在日常的数据分析工作中呢?

继续我们刚才的案例,我们想探究分析用户推荐程度的主要影响因素是什么?可以用决策树模型将用户按照推荐者比例高低进行分层。

一百条数据,由公司员工随机采访100名用户产生,采访对象是北京市四个城区(西城区、东城区、海淀区、朝阳区)的居民,组别分为实验组和对照组。

5.1导入数据集

5.2切割自变量和因变量

5.3将分类变量转换为哑变量

Python大多数算法模型无法直接输入分类变量

5.4训练模型

圈出叶子点-最终划分出的人群分层

5.5分析结果

通过人群特征取值的判断,1、我们划分出了推荐者比例有显著区别的人群2、找出了区分推荐者人群的关键特征,例如:海淀区用户、29岁及以上等

‘5.6决策树扩展

模型建立后,可以将模型用作分类预测;决策树不只可应用于预测量为分类变量,还可应用于数值型因变量,只需将熵改为连续变量的方差;特征划分的方法除了信息增益方法外,还可以用增益率(C4.5决策树)、基尼指数(CART决策树);剪枝是决策树算法中防止过拟合的主要手段,分为预剪枝与后剪枝。预剪枝指在决策树生成过程中,对每个结点在划分前进行估计,若当前结点划分不能使决策树泛化能力提升则停止划分。后剪枝指先从训练集生成一颗决策树,自底向上对非着急的钢笔进行考察,若该结点对应的子树替换为着急的钢笔能使决策树泛化能力提升,则该子树替换为着急的钢笔;

作者:从容的哈密瓜,数据线 快手社区数据分析,互联网行业的数据分析师 主要分享互联网数据分析、产品、运营相关方法论及思考总结。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注