一、Random forest的相关定义

(一)Bootstrap。Bootstrap(自助法)指在训练集里有放回的重采样等长的数据形成新的数据集并计算相关参数,重复n次得到对参数的估计,计算标准误。Bootstrap不仅可以用于均值估计,也可以对任意统计量,如偏差、方差等。

(二)Random Forest。随机森林是一种统计学习理论,它利用bootstrap重采样方法从原始样本中提取多个样本,对每个bootstrap样本采用决策树进行建模,然后结合多个决策树的预测,通过投票得到最终的预测结果。实践证明,随机森林具有较高的预测精度,对异常值和噪声有较好的容忍度,不易出现过拟合。换而言之,随机森林是天然的、非线性建模工具,持续地训练样本信息,具有良好的自适应功能,非常适合解决先验知识不清楚、没有规则且约束条件多和不完整数据的应用程序,方便快速,克服了传统预测方法导致间接获取信息和知识不仅费时而且效率不高的缺点,这为预测实践奠定了基础。

二、Random Forest算法的基本原理

实际上,随机森林一般可以理解为由许多决策树组成的森林,每个样本必须由每棵树进行预测,并根据所有决策树的预测结果确定整个随机森林的预测结果。随机森林中的每棵决策树是二叉树,其生成遵循从上到下的递归划分的原则,即训练集从根节点开始依次划分训练集。在二叉树中,根节点包含所有训练数据,按照节点不纯度最小原则,它分为左节点和右节点,每个节点包含训练数据的子集,遵循相同的规则,节点将继续分裂,直到满足分支停止规则并且停止增长。

采用Bootstrap方法进行自助抽样时,原始训练集中有N个样本,那么每个样本未被抽取的概率为,当原始训练集中样本特别多时,将趋向于0.368,这就告诉大家原始样本集中有差不多37%的样本不会出现在Bootstrap样本中。所以,要更好地应用随机森林模型,还需构造多个不同的训练集,以此来增加分类模型间的差异,这样可以提高组合分类模型的外推预测能力。这样的训练经过k轮,得到一个分类模型序列{h1(x),h2(x),…,hk(x)},把这些序列利用起来构成一个多分类模型系统,则可以得到其余量函数(margin function):

这个函数主要用来测度平均正确分类树超过平均错误分类树的程度,函数值越大,说明分类预测就越可靠。因此,外推误差则为:

随着决策树分类模型的增加,所有序列PE*几乎处处收敛于:

公式里面,θ指的是选用所有变量所建立的分类模型。

公式2.2和 2.3 表明随机森林模型不会随着决策树的增加而产生过度拟合的问题,但可能会产生一定限度内的外推误差。

于是余量函数mr(X,Y)定义为:

则分类模型集合的强度s是:

假设s≥0,则根据切比雪夫不等式有:

由此公式可以看出,如果增加树的相关性或者降低组合分类模型的强度,外推误差的上界就会趋向于增加,随机化也会减少决策树间的相关性,以此达到改善组合分类模型外推误差大小的目的。

三、贫困户精准识别中的Random Forest模型

(一)选取贫困户的样本。为了使得论文的数据更具有代表性,本人共统计了450户的家庭情况。在这450户当中,有245户是贫困家庭,205户非贫困家庭。在统计过程中,主要采取了问卷调查的方式对贫困家庭的个人基本情况、家庭总体情况、家庭收入来源情况、家庭可支配收入等方面进行了调查统计。根据理论,将这数据量里面的2/3作为训练集,也就是训练集里面是300个样本,其中贫困家庭样本为163个,非贫困家庭样本为137个;剩下的150个数据为贫困户测试集数据,其中贫困家庭样本有82个,非贫困家庭样本有68个。为了更好地运用随机森林模型,本文针对家庭可支配收入以5000的贫困标准对所统计数据进行了分组处理,将家庭可支配收入小于5000的分为1组,家庭可支配收入介于[5000,10000)这一区间的分为2组,家庭可支配收入介于[10000,15000)这一区间的分为3组,家庭可支配收入介于[15000,20000) 这一区间的分为4组,家庭可支配收入在20000以上的标记为5组。

(二)Random Forest模型建立。基于装袋法对随机森林进行了修改,这基本上是对决策树算法的一种改进而对多个决策树进行的组合。每棵树的建立取决于独立的采集样本,而且每棵树具有相同的分布,分类误差取决于每个决策树的分类能力及其相关性。具体步骤如下:1.设N为原始训练集样本的数量,M为变量的数量。2.需要找到固定值m,此值用于确定在制定节点决策时要使用多少个变量。应该注意的是,决策时m小于M;3.使用自助服务方法,我们随机抽取了k个新的自助服务样本集,并构建了k棵决策树,每次没被抽到的样本组成了袋外数据;4.每个自助服务样本集都成长为单棵决策树,在树的每个节点上,从M个功能中随机选择m个功能(m小于M)。根据节点不纯度最小的原则选择M函数,然后选择功能进行分支增长。然后完全生长决策树,以最大程度地减少每个节点上的杂质,并且不执行正常的修剪操作。5.根据生成的多决策树分类器对需要预测的数据进行预测,并根据各决策树的投票结果选择投票数最高的类别。

在构建随机森林时,使用自助样本集来形成每个树分类器。通过每次采样生成的袋外数据用于预测分类精度,并且通过收集每个预测结果来获得错误率,接着评估外部数据和估计组合分类的正确率。此外,在随机森林中,当生成每棵决策树时,从原始训练样本集中随机选择使用的自助样本集,在每个节点上随机选择每个决策树使用的变量,并从所有变量M中随机选择,从而最小化了各棵决策树之间的相关性,提高了分类精确度。

(三)Random Forest模型中贫困户的精准识别

首先,在已经创建好的模型中放入我们训练集中的变量,这样就得到分类结果。接着,需要把实际情况跟前面得到的分类结果进行对比,很容易发现此随机森林模型存在过度拟合的问题,所以需要进行调参。比如说通过减少树的深度、增大分裂节点样本数、减少特征数等来降低模型的复杂度,从而实现调参的目的。最后,借用医学上的“金标准”来进行初步检测,因此得出了随机森林算法对训练集数据的混淆矩阵,从这个混淆矩阵中可以得到贫困识别中的阳性预测值为0.944、阴性预测值为0.976,表明在预测的贫困户中贫困户所占的比率近似是94.4%,非贫困户所占的比率近似为97.6%,具体见表2和3-2。

表2 Random Forest算法对训练集数据的混淆矩阵

表3-2 Random Forest分类检验指标(1)

为了得到随机森林模型其他方面的特性,我们仍需进一步的进行检验,主要的检验指标见下表3-3。

表3-3 Random Forest分类检验指标(2)

由表3-3可知,Random Forest分类模型中的0.958表明在该模型中被正确分类的贫困户和非贫困户占所有户数的比值,0.042可以说明模型分类的误差比较小,0.981表明模型能正确识别的贫困户,0.931表明模型能正确识别93.1%的非贫困户,0.944表明模型分类的精确性比较高,0.962 说明Random Forest分类器对于贫困识别的分类效果越好,0.956表明Random Forest模型的性能很好,0.452表明了Random Forest分类模型的预测性能还有待提高。

四、结语

脱贫攻坚是全面建成小康社会的底线任务和标志性指标,全面建成小康社会,困扰了中华民族几千年的绝对贫困问题,将历史性地得到解决,中国人民将书写人类发展史上的伟大传奇。唯其如此,我们更加深刻地体味到“决战决胜脱贫攻坚”的历史意义和分量。在调研过程中发现,贫困家庭的贫困原因各有各的不同,有些家庭贫困是因为疾病、因为残疾,有些家庭贫困是因为教育,有些家庭本来已经脱贫了但却因病返贫,也有一些家庭贫困是因为缺乏劳动力。虽然目前在我国采用的扶贫方式不少,比如说资金帮扶、产业帮扶、补贴帮扶等等措施,但是在实际中仍会发现并没有完全做到因贫施策。所以最好的做法是能在了解贫困家庭现状以及贫困原因之后,制定有针对性的解决方案,从而高效实施扶贫措施,精准帮扶贫困群体。