一个单身狗写下这个标题我是心虚!!!
很早就听说过决策树算法的威力,很早之前就做过决策树模型的分析和应用,这次就来看看决策树算法的操作和实际运用。
首先,要先理解什么是决策树呢?
根据我的理解,再加上百度百科的解释,决策树其实是一个预测模型,现代管理决策者常用的有效工具,他代表的是对象属性与对象值之间的一种映射关系,复杂来说,是指将构成决策方案的有关因素,以树状图形的方式表现出来,并据以分析和选择决策方案的一种系统分析法,例如下图:
决策树解析
简单来说,做决策的时候,你需要从最上面的节点出发。在每一个分支上,都有一个判断条件。满足条件,往左走;不满足,向右走。一旦走到了树的边缘,一项决策就完成了。
那么有哪些实际应用案例呢?我就举个例子吧:以某饭店“多级决策树”作为分析例子:
某饭店决定投资建饭店消耗品生产厂,提出三个方案:
一是建大厂,投资350万元;二是建小厂,投资170万元;三是建小厂,如果经营得好再扩建,扩建再投资150万元;
咋一看,第三种方案是符合现在大家经常说的精益创业的理念的:先实验,再修改,最后放大操作。那么这三种方案,到底哪种是可行的呢?这里的可行指的是能够在一定时间收回成本,并且盈利,因此需要管理人员对未来10年中前4年、后6年的损益值和概率进行预测。
这个案例天然适合决策树来分析,经过分析,很容易得到下面的决策树图:
接下来我们可以对结果做求解运算,计算各点的收益期望值:
点⑧:(80×0.8 10×0.2)×6=396
点⑨:(40×0.8 5×0.2)×6=198
点⑧和点⑨期望值相比,前者较大,所以应选择扩建,对不扩建进行删枝。把点⑧期望值减投资后所246万元移到点⑥上来,这是第一次决策。
点④:(80×0.8 10×0.2)×6=396
点⑤:(80×0.2 10×0.2)×6=144
点⑥:396-150=246
点⑦:(40×0.2 5×0.8)×6=72
点②:(80×0.6 10×0.4)×4 396×0.6 144×0.4=503.2
点③:(40×0.6 5×0.4)×4 246×0.6 72×0.4=280.4
各方案实际收益期望值:
建大厂:503.2-350=153.2(万元)
建小厂:280.4-170=110.4(万元)
因此我们可以得到结论:应采用直接建大厂的方案,净收益期望值为153.2万元。
以上只是决策树模型的运用,是针对特定的案例和有限的素材做分析,这样是方便的。但是如果是对大数据呢?昨天偶然看到南开大学王树义教授关于大规模数据的决策数文章,嗯,很感兴趣,就试着操作了一下,就觉得很受启发。下面就直接用王教授的案例再加上我的理解来做说明吧:
接下来需要解决的是:这里有一份贷款资料,总共将近5万条数据,包括:贷款级别、贷款细分级、一年内短期雇佣、受雇年限、居住状态(自有、按揭、租住)、贷款占收入比例、贷款用途、贷款周期、贷款申请人是否有不良记录、贷款申请人是否有逾期90天以上记录、透支额度占信用比例、逾期罚款总额、贷款是否安全等维度,需要快速分析某个客户贷款是否安全。
从这点来看,决策树是非常适用的,因为有不同条件,就只要看是否满足相应条件即可,那么决策树模型就不是非常适用了,这里就引入了机器学习的决策树算法。
这次就使用python语言作为数据处理和做决策的语言。使用Jupyter作为本次运行决策树算法的环境,需要使用到的是python中的pandas、sklearn库。Ok就正式开始吧。下图是实际操作的代码部分:
决策树算法代码
下图是通过上面算法得到的最终决策树算法模型:
决策树算法模型
我们可行非常方便的通过计算机做运算,例如,随便从原来的数据中找出一条来测试,只需要执行:
决策树算法验证
我们可以看到得到的结果是1,而在之前那份数据中,测试数据对应的结果也是1,因此这个模型是成立的。
至此我们的决策数算法模型就完成。
决策树还应用在哪里呢?例如下图是根据网上相亲数据得到的关于女性在择偶决策方面的决策树,可以发现女性在择偶的时候看的是吸引力哈和共同爱好,嗯,好吧,其实都是看脸的时代。
女性择偶决策树模型
其实,决策树应用的案例还是非常多的,无论是算法还是模型,在实际运用中起的作用也是十分巨大的。这是模型和算法的魅力,有兴趣的朋友可以和我多多交流。