基于R语言的面向需水预测的随机森林方法

2012-01-07 09:14明均仁
统计与决策 2012年9期
关键词:需水需水量建模

明均仁,肖 凯

(1.武汉大学 信息管理学院,武汉 430072;2.长江水利委员会网络与信息中心水利发展研究所,武汉 430010)

0 引言

水是生命之源、生产之要、生态之基。随着我国社会经济的发展,水资源短缺的问题日益凸现,这就需要对水资源进行更加严格而有效的管理。水资源管理的基础工作是要对水资源量的准确掌握,其中包括供水量和需水量。因此需水预测就有着举足轻重的地位和作用。本世纪以来,人口增加、气候变化、耕地减少以及城市化进程更导致了地区需水量的变动加剧。寻找一种合理方法来预测地区需水量对于社会、经济和环境的协调发展具有重要的意义。

传统的需水预测方法[1,2]多是利用定额法、回归分析法、投入产出法、常规趋势法、时间序列法等进行预测,但由于影响未来需水量的外生变量均受到各种外界环境的影响,具有一定的不确定性和模糊性,这些预测方法不能够得出准确的结果。近年来也有学者利用神经网络模型[3]和模糊数学方法对区域需水量进行预测,这类方法充分考虑了外生变量的影响,能以任意精度逼近任何非线性连续函数,可以利用历史数据得出精确的未来数据。但其缺点在于对训练样本的依赖程度较大,由训练数据得出的预测模型对检验数据的稳健性不足,而且有可能因为过度训练而造成过度拟合。为此,本文引入随机森林方法,对需水预测研究提供有益的参考思路。

1 随机森林理论方法

随机森林方法是传统决策树方法的扩展,它将多个决策树进行组合,来提高预测精度。下面首先回顾决策树模型和组合算法,再对随机森林理论进行介绍。

1.1 分类回归树

本文使用的随机森林是利用分类回归树(CART)作为其基本组成单元,也可称之为基学习器或是子模型。CART是决策树技术的一种,也称为二元回归分解技术。利用CART可以自动探测出高度复杂数据的潜在结构、重要模式和关系;探测出的知识又可用来构造精确和可靠的预测模型。CART模型可分为分类树和回归树两种。分类树用于因变量为分类数据的情况,树的末端为因变量的分类值;回归树则可以用于因变量为连续变量的情况,树的末端可以给出相应类别中的因变量描述或预测。

1.2 集成学习方法

随机森林是集成学习[4]算法的一种。集成学习是一种机器学习范式,它试图通过连续调用单个学习算法,获得不同的学习器,然后根据规则组合这些学习器来解决同一个问题,可以显著的提高学习系统的泛化能力。组合多个学习器主要采用加权平均或投票的方法。常见的集成学习算法有装袋算法、提升算法以及随机森林三种方法。集成学习可以改善单一方法的不足。因此,集成学习已成为国际机器学习界的研究热点。

其中装袋算法是利用自助法的思路,对训练样本进行有放回抽样,以建立多个树模型,然后集成其预测结果提高预测效果。提升算法与装袋算法相似,但其区别在于集成预测时会考虑不同子模型的权重,对表现优良的子模型会给予较大的权重。

随机森林方法与前两者相似之处在于,它们都会对样本进行有放回抽样和集成预测,但区别在于随机森林还对解释变量进行了随机抽样。随机森林不需要对树模型进行剪枝,而是生成多个完整深度的树模型。在回归问题中,将多个树模型的预测值进行平均,以计算最终预测值。对于分类问题,则通过多数投票方式来产生最终预测。

1.3 随机森林计算步骤

(1)从原始训练样本中随机抽出M个样本。

(2)从解释变量中随机抽出N个样本,从抽中变量中选择最能有效分割数据的变量,使分割后的子集内部变异性最小。对于连续数据通常是采用均方误作为判断指标,对于离散数据则多采用基尼值。

(3)依据步骤二得到的变量将数据分割为两个纯度较高的子集。

(4)对子集重复步骤三直到分割停止。这就完成了单棵树的建模。

(5)重复步骤(1)到步骤(4)X次,就构建了有X棵树的随机森林模型。

2 需水预测建模

2.1 确定模型变量

为了建立需水预测模型,首先要确定必要解释变量作为模型的输入。根据资料条件,本文选取10个用水指标以充分表述需水预测的影响因素,这10个指标为:农业灌溉亩均用水量(V2)、万元GDP用水量(V3)、城镇人均日用水量(V4)、地区生产总值(V5)、第一产业份额(V6)、第二产业份额(V7)、第三产业份额(V8)、有效灌溉面积(V9)、地区人口(V10)、地区粮食产量(V11)。上述10个影响因子为随机森林需水预测模型的输入,地区总需水量(V1)为模型的输出变量,即被解释变量。

2.2 数据处理

利用2003~2008年之间的湖北统计年鉴和湖北水资源公报,从中收集整理了96个样本数据。将其中一半数据作为训练样本建立模型,剩下一半数据作为检验样本以衡量模型的预测能力。由于随机森林方法对数据的量纲和单位并不敏感,所以并不需要进行标准化或归一化处理。部分样本数据列示在表1。

表1 部分样本数据列表

2.3 模型的性能评价标准

为了评价模型的拟合及预测能力,本研究根据以下三种指标来做出评价。分别是平均绝对误差(MAE)、平均误差平方和(MSE)、相对误差平方和(NMSE)。指标数字越小则说明模型的预测值与真实值之间差异越小,模型的预测能力越强。

2.4 建模工具

本研究用以实现的软件工具是开源软件R语言[6-8],其中的randomForest程序包可以方便的建立随机森林模型。由于R语言比其他统计学或数学专用的编程语言有更强的面向对象功能,所以该软件在国外被广泛使用,包括Google和Facebook公司均使用它进行数据分析的各项工作。

表2简单罗列了randomForest包中用到的主要函数。

表2 randomForest包主要函数名称与功能

2.5 建模步骤

首先读入样本数据,然后输入如下命令以建立模型。

rf=randomForest(V1~.,data,ntree=500,mtry=3,importance=T)a

其中V1表示输出变量,data表示数据集存放名,ntree表示模型中包括的单棵树数量,树太少对建模有一定影响,一般建议不要少于100,不过数量太多并不会对模型造成影响。mtry表示在分割数据时抽取多少个变量,这里通常的做法是选择解释变量数目的平方根,本文的输入变量有10个,所以这里的参数设置为3。建模结果存入rf变量,之后再利用predict命令得到需水量的预测值,表3将部分预测值与真实值进行比较,可初步了解模型的预测能力。

表3 随机森林预测值与真实值对照

3 模型检验

3.1 模型误差分析

首先绘制模型的误差曲线图如图1所示,其纵轴为模型的均方误,横轴为随机森林中包括树的个数。从图1中可以看到随着森林中树的数量增加,模型误差逐渐递减,在100的时候达到相对最小,之后有所回升,但总体来看数量越大模型误差越小。

图1

为了评价模型的预测能力,根据3.2节所述的三个指标,计算随机森林模型的对应结果,为了对比分析不同建模方法之间的预测能力,还利用相同的训练样本建立了BP神经网络模型和多元线性回归模型,其结果均在表4中列示。由表4可见,随机森林模型在三种指标上都为最小值,相对其它建模方法预测误差较小,体现其预测能力和抗干扰能力很强。

表4 三种建模方法的预测误差比较

表4中模型的指标有可能是样本的偶然性造成的,为了尽量减少训练样本分布对建模结果的影响,本文采用六重交叉检验的方法再次评价三种模型的预测能力。六重交叉数据检验的思路就是:先将全部训练数据随机地分为等量的6部分,选择其中的5份作为训练数据,剩下1份作为检测数据来计算模型的相对误差平方和。然后更换其中的1份数据,重复实验。这样得到6组不同的相对误差平方和,最后综合评判各模型的表现。其结果如表5如示。随机森林模型相对其它建模方法NMSE值最小,显示预测能力较强。

表5 六重交叉检验得到三种模型的误差数据

3.2 解释变量分析

利用随机森林模型进行解释变量的重要性排序,这样可以使研究者了解在需水量中,哪些解释变量是比较重要的。从图2可以看到变量重要性度量,变量重要性度量就是假设某个变量不包括在模型中,会对模型的误差造成多大的影响。左侧图形的误差计算依据是袋外数据(OOB data),因为随机森林方法会有放回地随机从原始训练集中抽取N个样本,组成一个新的训练集,对于单棵树而言,有近37%的数据可能未被选中,这部分数据称为袋外数据,可以用它来作为测试数据对该树模型的误差进行估计。右侧图形的误差计算是依赖划分后子集的纯度。根据图形显示,本模型中最重要的解释变量是V10人口,其次是V9有效灌溉面积,之后则是V5地区生产总值与V11粮食产量。因此,在实际工作中对模型进行外推预测的时候,要注意对这四个变量的预测精度进行控制。

图2 各解释变量的重要性度量

4 结语

本文建立的随机森林模型对需水预测研究提供了一种新的方法,具有一定的参考意义。随机森林擅长计算大规模数据,而本文由于资料所限,所用的样本数偏少。在实际研究工作中加大采样范围可以弥补预测精度的不足。样本中所涉及的解释变量还可以增加。这些都是影响模型结果准确率的主要原因。另外实验还发现模型在预测极端数据时误差较大,在这一点上不如神经网络模型精度高。因此利用随机森林方法时,预测范围不要外推超过训练样本范围。

随机森林方法是一种树型分类器的组合算法。它的优点在于能高效的处理大数据集,而且预测精度较高。数据在分析前不需要过多的预处理,不需要标准化或是归一化,但需将缺失值补足。在有大量相关的解释变量情况下,也不需要进行变量筛选工作,随机森林可以自动辨识最重要的输入变量。从模型运行结果分析可以看出,相比较BP神经网络和多元线性回归等方法,其预测误差较小。由于随机森林的抽样特性,其子模型之间相互独立,因此随机森林不会受到异常值和噪声的影响而出现过度拟合的情况。随机森林建模过程中产生的OOB数据可用来估计模型的泛化误差。还能同时处理连续型变量和分类变量,模型预测稳健性较高。随机森林的缺点在于因为没有剪枝过程,对某些数据集可能会形成过度拟合。

[1]贺丽媛,夏军,张利平.水资源需求预测的研究现状及发展趋势[J].长江科学院院报,2007,(2).

[2]张成才,崔雅博,胡彩虹.需水量预测方法研究[J].气象与环境科学,2009,(2).

[3]凌和良,桂发亮,楼明珠.BP神经网络算法在需水预测与评价中的应用[J].数学的实践与认识,2007,(11).

[4]Jiawei Han,Micheline Kamber.数据挖掘概念与技术[M].范明,孟小峰译.北京:机械工业出版社,2008.

[5]Luis Torgo.Data Mining with R:Learning by Case Studies[M].New York:Chapman and Hall/CRC,2010.

[6]Venabl Esen,Ripl Eybd.Modern Applied Statistics with S[M].Berlin:Springer,2002.

[7]Joseph Adler.R in a Nutshell[Z].O'reilly,2010.

猜你喜欢
需水需水量建模
研究揭示大尺度干旱半干旱区生态景观格局与区域作物需水之间的潜在关联性
联想等效,拓展建模——以“带电小球在等效场中做圆周运动”为例
南京城市中心区生态需水量探析
辽河流域生态需水量计算及水资源分配研究
马铃薯各生育时期需水关键技术
基于PSS/E的风电场建模与动态分析
不对称半桥变换器的建模与仿真
贵州番茄需水量时空分布特征
成都市生态需水量研究
河套灌区试用无人机获取作物需水信息