及时行乐|原理+代码|深入浅出Python随机森林预测实战( 二 )


问:为什么在列上也要随机抽样?
答:在引入笔者最最喜欢的一个比喻之前 , 先来看一个实际的业务场景 , 来自某城市商业银行 。 我们有一大个电子表格存着大量的历史数据 , 大概50多个变量(50多列) , 变量们来自几个不同的公司如人行 , 电信等(同一个客户在不同公司) , 最后希望预测的是该客户是否会违约 。 电子表格组成如下:
整个表格看成一座巨大的岛屿 , 岛屿的长和宽分别对应电子表格横轴长和纵轴的长度
表中缺失的数据段看成一个个分布随意的小湖泊 , 有数据的地方看成陆地
整个小岛地底埋藏着巨大的价值(数据价值) , 通过在随意的种树(用装袋法在行列上进行随机抽样)来吸取地底的养分 , 毕竟湖泊上种不了树 , 所以只要足够随机 , 就总能充分的利用陆地 。
随机森林第一步之后的操作完全可以参照集成学习——装袋法中提及的步骤 。
问:既然每个模型给出的预测结果最后都会被加权 , 所以随机森林中每棵决策树的权重是多少?
答:随机森林中每棵决策树的权重都是一样的 , 如果这个袋子中有10棵决策树(或者其他模型) , 那每棵树给出的预测结果的权重便是1/10 , 这是随机森林的特性 。 如果权重不一样的话 , 便是后续推文会提及的Adaboost等集成学习中的提升分支了 。
问:装袋法中袋子中的模型越多越好吗?袋中用来训练每个模型的源数据比例也是越多越好吗?
答:袋子中模型多一点好 , 袋中用来训练每个模型的源数据比例小一点好 , 但这并不代表越多越好与越小越好 , 还得结合数据集特性和一些深层次的模型算法知识 。
装袋法的优势如下:
准确率明显高于组合中任何单个分类器
对于较大的噪音 , 表现不至于很差 , 并且具有鲁棒性
不容易过度拟合
随机森林算法的优点:
准确率有时可以和神经网络媳美 , 比逻辑回归高


推荐阅读