龙空技术网

机器学习系列-随机森林(Python.RandomForest)

Ai机器学习 550

前言:

如今看官们对“随机森林python选取最优超参数”都比较注意,我们都想要学习一些“随机森林python选取最优超参数”的相关资讯。那么小编也在网络上网罗了一些有关“随机森林python选取最优超参数””的相关知识,希望咱们能喜欢,兄弟们快快来了解一下吧!

笔者介绍

曾担任零售企业项目负责人,负责企业数据化转型,数据化管理;曾服务中国移动,负责客服部门产品推荐模型组组长;现于某金融投资公司大数据中心,负责风控数据建设,风控建模工作。在除工作外,也喜欢在DC、DF、天池、Kaggle参加一些比赛。机器学习方面,有一定经验,愿与各位分享我的所见所闻所想,与各位共同进步。

随机森林是什么?

直入正题,随机森林是什么?随机森林其实是多个决策树模型组成的决策算法,怎么理解?

随机森林可作回归,可做分类,本文终点讲解分类用法;

我们使用决策树模型进行预测,使用的是一个决策树,用了所有的样本所有的变量,随机森林是在总体M*N(M个样本,N个特征)里面随机抽取包含m个样本,n个特征组成一个样本集,重复抽取K次,得到K个样本集,然后将K个样本集分成生成决策树,最终结果按照少数服从多数的原则,得到样本最终的结果。

步骤如下:

1.确定抽取批次k(既构建多少颗决策树);

2.选择m个样本,n个特征(总样本树M,特征N,M>m,N>n)形成m*n的样本集

3.形成决策树(弱模型)

4.重复执行2-3直至生成k颗决策树

5.以少数服从多数,选择最终结果

这样性质的模型,由不同的小模型集合而成,我们称为集成学习。

为什么随机森林效果好?

随机森林通常有较好的表现,但是每个树模型仅有部分的数据和特征,所以按照道理来说他的效果为什么这么好?并且随机森林是个黑箱子模型,他的内部构建我们是无法把控无法解释的,但是他又是根据科学的概率统计原理。

从通俗的角度理解,其实可以理解为我们通过数据的随机组合,形成不同的人,然后很多人对这个问题投票,三个臭皮匠顶过一个诸葛亮,集结了所有人的投票结果,也从另一方面降低了出错的概率。

从概率论与统计的角度,我们可以这样看:

1.假设我们只有一个决策树,决策树模型的效果是51%,那最终预测正确的概率就是51%;

2.假设我们有三个决策树组成的随机森林,每个决策树的效果都是51%,那最终预测正确的情形是:a.三颗决策树全对;b.对了两颗决策树

所以正确的概率是

3.假设我们还是51%正确率的决策树,有500颗,那最终预测正确的情形有:正确的树>250

所以正确的概率是:

所以,当树足够的情况下,最终集成的结果会比单一树的结果好。

怎么提高随机森林的效果?

我们可以看到多树的情况下,结果会更好,但是通常情况下,存在一定的上限,并不会无限靠近100%,而是靠近某一个上限,原因是当我们不断的生成决策树,会在某一时刻,无法创造出与前面的树有所差异的树,所以这个树加进来,也没法对结果有贡献。

所以我们如何提高随机森林效果,可以有以下几个方向:

a. 增加树的数量,使之可以获得更多的更稳定的结果;(太多过拟合,太少欠拟合)

b. 每棵树生成的m个样本的数量,是完全随机还是一定数量的随机(样本太少,结果不具备代表性,样本太多,可能树的差异性会变少)

c. 每棵树生成的n个特征的数量,是完全随机还是一定数量的随机(特征太少,单树效果太差,特征太多,可能树的差异性会变少)

d. 是否有放回的抽样;

e. 特征选择方式,通常使用gini系数,但是也可以在过程中,随机使用信息增益,信息增益率等;

f. 生成的树的深度、剪枝参数等

标签: #随机森林python选取最优超参数