原理+代码|深入浅出Python随机森林预测实战

更新时间:2023-06-30 14:04:27 阅读: 评论:0

贫血吃什么补血效果最好>现场质量管理
原理+代码|深⼊浅出Python随机森林预测实战
点击上⽅“早起Python”,关注并“星标”
每⽇接收Python⼲货!
本⽂含 6036 字,20 图表截屏
建议阅读 15 分钟
本⽂是Python商业数据挖掘实战的第3篇
3 - 随机森林预测宽带客户离⽹
前⾔
组合算法也叫集成学习,在⾦融⾏业或⾮图像识别领域,效果有时甚⾄⽐深度学习还要好。能够理解基本原理并将代码⽤于实际的业务案例是本⽂的⽬标,本⽂将详细介绍如何利⽤Python实现集成学习中随机森林这个经典的⽅法来预测宽带客户的流失,主要将分为两个部分:
详细原理介绍
Python代码实战
集成学习
本⽂的主⾓是随机森林,所以我们将以随机森林所属的分⽀ —— 装袋法 ⼊⼿,深⼊浅出该集成学习⽅法的原理步骤。装袋法流程如下
乍⼀看图中的步骤可能有些复杂,现在来逐步拆解。装袋法中的装袋⼆字是精髓,顾名思义即将多个模型装⼊同⼀个袋⼦后,让这个袋⼦作为⼀个新的模型来实现预测需求,仅此⽽已。换句话说,即把多个模型组合起来形成⼀个新的⼤模型,这个⼤模型最终给出的预测结果是由这多个⼩模型综合决定的,决定⽅式为少数服从多数。
假设有10万条原始数据,⽤这些数据来做⼗棵决策树(当然也可以是其他模型),最后这10棵树将被装进了同⼀个袋⼦中。这时候取其中⼀条数据放⼊这个袋⼦,便会得出10个预测值(每棵树各⼀个),假如其中三棵树给出的预测值为0,剩余的七棵给出的为1,那我们便可知道这个袋⼦对这个数据的预测结果为 0 的概率是 3/10。
为了更深⼊的理解装袋法,下⾯将回答三个与装袋法有关的常见问题:
问:袋⼦中的每个模型使⽤的样本量范围应为多少合适?
答:如果是上⾯的例⼦,袋⼦⾥⾯有⼗棵树,源数据总量为 10万 条,则每棵树取⽤的样本量的最⼩值为最少是1w个(10w/10棵 = 1w/棵),因为⾄少要保证不能浪费样本,但每棵树最多可取⽤多少样本
男性肝不好有哪些表现
呢?其实在样本量已知,同⼀袋⼦中模型个数为n的情况下,样本的选择⽐例为1/n ~ 0.8最好。每个⼩模型取⽤ 100% 的样本是绝对没有意义的,那就跟没抽是⼀样的,这样也就没有体现出装袋,只有每个模型⽤到的数据都有⼀定的不同,组合起来后每个的投票(预测结果)也才有意义。
问:袋中模型们之间的相关性会影响最后的决策结果吗?
答:装袋法思路最重要的⼀点:袋⼦中每个模型之间不能相关,越不相关越好,这⾥的不相关主要体现在⽤于训练每个模型的样本不⼀样。其次,每个模型的精度越⾼越好,这样它的投票才更有价值。
耳垂厚的人有福气吗PS:训练模型的样本不⼀样这⼀点可以理解为总统选举,抽 10 波选民来投票,这 10 波选民的差异性越⼤越好,这样⼀来,只有在选民千差万别的情况下你依然脱颖⽽出,才⾜以说明你的实⼒,如果这10波选民中每⼀波之间的差异性都很⼩,⽐如都是本来就偏袒于总统候选⼈,那投票结果的说服⼒就会⼤减。
问:上⾯所说的模型精度⾼是不是哪怕模型很复杂也可以,如果每个模型的精度⾼但都过度拟合怎么办?
答:在装袋法中,模型是越精确越好,哪怕是过度拟合的也没有关系。因为⼀个模型要想在训练集上做到越精确越好,⽽精确程度与模型的复杂度⼤多是成正⽐的,所以出现过拟合的情况也是正常且情有可原的。复杂和过度拟合只是对袋⼦中每个模型⽽⾔,因为最后都会被加权,所以整个袋⼦(整体)并不会出现过度拟合的情况。
随机森林
随机森林的实现步骤如下:
问:为什么在列上也要随机抽样?
国画交易
答:在引⼊笔者最最喜欢的⼀个⽐喻之前,先来看⼀个实际的业务场景,来⾃某城市商业银⾏。我们有⼀⼤个电⼦表格存着⼤量的历史数据,⼤概50多个变量(50多列),变量们来⾃⼏个不同的公司如⼈⾏,电信等(同⼀个客户在不同公司),最后希望预测的是该客户是否会违
约。电⼦表格组成如下:
图:
红框表⽰数据缺失,这⾥只展⽰了部分⾏和部分列数据,如果这份数据表的规模为 4万⾏ * 50列,那这数据缺失的分布得有多随意啊
所以,到底该如何充分利⽤这残次不齐的数据就成了呈待解决的关键问题。这时候就可以祭出超级⽣动形象的 “岛屿 - 湖泊 - 椰⼦树”⽐喻了:
家常罗宋汤整个表格看成⼀座巨⼤的岛屿,岛屿的长和宽分别对应电⼦表格横轴长和纵轴的长度
表中缺失的数据段看成⼀个个分布随意的⼩湖泊,有数据的地⽅看成陆地
整个⼩岛地底埋藏着巨⼤的价值(数据价值),通过在随意的种树(⽤装袋法在⾏列上进⾏随机抽样)来吸取地底的养分,毕竟湖泊上种不了树,所以只要⾜够随机,就总能充分的利⽤陆地。
D1驾照
正因为是⾏列都随机,才能够做到真正的把整个数据表随机切分成多份,每个模型使⽤⼀份,只要模型的数量⾜够,总有模型能够在最⼤程度上获取数据集的价值。⽽且因变量的分类往往⼜是极不平衡的,可以参考。⾄于如何将这些种好的树的信息⼜再收集,便可以将陆地上⽐较近的⼏棵树上⾯再弄⼀个收集器,把这⼏棵树从陆地上收集到的养分再递进⼀层汇总,最终实现陆地养分汇总于树⽊,树⽊养分汇总于收集器,收集器养分汇总于更上层的另⼀个收集器,最终实现整⽚数据海洋中多个岛屿的信息汇总,这便是周志华团队和蚂蚁⾦服的合作的⽤分布式深度随机森林算法检测套现欺诈。
随机森林第⼀步之后的操作完全可以参照集成学习——装袋法中提及的步骤。
问:既然每个模型给出的预测结果最后都会被加权,所以随机森林中每棵决策树的权重是多少?
答:随机森林中每棵决策树的权重都是⼀样的,如果这个袋⼦中有 10 棵决策树(或者其他模型),那每棵树给出的预测结果的权重便是
1/10,这是随机森林的特性。如果权重不⼀样的话,便是后续推⽂会提及的Adaboost等集成学习中的提升分⽀了。
问:装袋法中袋⼦中的模型越多越好吗?袋中⽤来训练每个模型的源数据⽐例也是越多越好吗?
答:袋⼦中模型多⼀点好,袋中⽤来训练每个模型的源数据⽐例⼩⼀点好,但这并不代表越多越好与越⼩越好,还得结合数据集特性和⼀些深层次的模型算法知识。
批评与自我批评内容装袋法的优势如下:
准确率明显⾼于组合中任何单个分类器
对于较⼤的噪⾳,表现不⾄于很差,并且具有鲁棒性
不容易过度拟合
随机森林算法的优点:
准确率有时可以和神经⽹络媳美,⽐逻辑回归⾼
对错误和离群点更加鲁棒性
决策树容易过度拟合的问题会随着森林的规模⽽削弱

本文发布于:2023-06-30 14:04:27,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1070286.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:模型   数据   装袋   森林   预测   结果   集成
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图