您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 股票报告 > 基于BP神经网络的平顶山房价预测
基于BP神经网络的平顶山房价预测摘要房地产行业与人民的生活息息相关,但近年来由于种种因素影响,住房价格节节攀升,引起社会广泛关注。本文以平顶山市为载体,对商品房平均销售价格进行预测;找出影响平顶山市房价的主要影响因素,进而对影响因素进行比较科学的分析,由于经济、自然和社会因素对房地产开发具有后效应影响,使得商品房住宅价格与影响其变化的变量之间的定量关系无法用精确的数学来描述。所以本文利用Matlab的线性回归与散点图曲线拟合的功能对选取的五个指标分别预测出2012年的指标数据。然后构造BP神经网络,应用Matlab神经网络工具箱,将已经获取的数据作为学习样本确定较优的网络参数,代入预测的指标数据,预测2012年商品房平均售价。以此建立一个比较科学普遍的房价预测模型,为国家更好的调控房地产市场,为居民更加理性的购房提供借鉴。关键字:线性回归曲线拟合BP神经网络一、BP神经网络模型建立1.1BP神经网络模型BP神经网络是一个具有R个输入的基本BP神经元模型结构。每一个输入被赋予一定的权值,与偏差求和后形成神经元传递函数的输入。BP神经网络属于多层网络,其神经常用的传递函数包括log-sigmoid型函数logsig、tan-sigmoid函数tan-sig以及线性函数purelin。这三种函数是BP神经网络中最常用到的传递函数,用户根据自己的需要也可以在Matlab中自己创建其他形式的传递函数。1.2BP神经网络结构BP神经网络结构是一个具有输入层、隐含层、输出层三个层次结构的BP神经网络结构,输入层有i个节点组成,隐含层有j个节点组成。本文中也采用此网络结构对平顶山市房价进行预测。二、建立BP神经网络的平顶山市房价预测模型本文采用2007年至2011年河南统计网的《平顶山市国民经济和社会发展统计公报》的历史数据,选取了其中的人均可支配收入、人均消费性支出、房地产开发投资和地区生产总值等四个数据对2012年房价进行预测。2.1指标数据的预测利用Matlab的线性回归与散点图曲线拟合的功能对四个指标进行预测,例如对人均可支配收入的预测,首先根据历史数据画出散点图,然后根据其散点图走势选择项应的拟合函数,并对其拟合指标进行分析,最后预测2012的数据。图1人均可支配收入拟合曲线根据图1所示的各点分布,我们可以认为此指标各年数据呈线性分布,利用Matlab对此散点图拟合,得出函数,利用Matlab的数据分析图及拟合指标我们可以发现此函数完全符合要求。(参数运行结果。stats=-20960-1419092920-215130))根据此函数我们可以得出2012年的人均可支配收入为:20930。同理,我们根据此方法可以得出其余线性拟合预测数据为:人均消费性支出=14826,房地产开发投资=320,地区生产总值=1305)。2.2BP神经网络平顶山市房价预测2.2.1BP神经网络参数设置、训练Matlab内部含有很方便的构建神经网络的函数,对于BP网络的实现,其提供了3个基本函数:newff、train和sim,它们分别对应3个基本步骤,即新建、训练和仿真,在进行BP神经网络模型设计时,主要考虑网络的层数和每层中神经元的个数。(1)网络层数BP网络是通过输入层到输出层的计算来完成的。隐含层的增多虽然能在速度上提高网络的训练,但是需要较多的训练时间,而训练速度可以用增加隐含层神经元个数来实现,因此在应用BP神经网络进行预测时选取只有一个隐含层的三层BP神经网络就足够了。(2)网络中各层神经元的个数网络中的输入层和输出层个数是由样本和输出信息决定的,本文利用四个个指标对平顶山房价进行预测,因此输入层为10个神经元、输出层为1个神经元。对于隐含层的神经元个数则由Hornik提出的公式:N=[2n+m,2n+m]确定,其中N为神经网络隐含层神经元个数,n为输入层节点个数,m为输出层节点个数,根据此公式我们可以得出本文模型的最佳隐含层神经元个数为[5,17],经过多次测试,得出最佳隐含层神经元个数为10个。a.建立newff函数生成网络由于原始数据的单位不同,造成了指标量纲不统一的情况,首先将2001年至2008年八个数据进行归一化,其数值位于[0,1]之间,再建立三个层次的神经网络:net=newff([01;01;01;01],[10,1],{t'ansig,'t'ansig,'p'urelin}','trainlm)';b.神经网络中参数的设置及训练net.trainParam.show=100;迭代100次显示一次结果,net.trainParam.Lr=0.05;学习速率为0.05,net.trainParam.epochs=1000;最大训练迭代为1000次,net.trainParam.goal=0.001;均方误差为0.001,net=train(net,pn,tn);开始训练网络,其中pn、tn分别为输入输出样本。由图6网络误差变化曲线可知,该网络迭代三次就能完成训练。其误差达到误差标准以下。2.2.2BP神经网络平顶山市房价预测我们利用2012年各指标的预测数据,并用刚训练完成的神经网络对2012年的房价进行预测。可以得出房价预测值为:3297(元/平方米)。三、模型评价根据平顶山2012第一季度商品房平均售价3600~3800,可以看出本文利用BP神经网络模型对平顶山市房价预测较为,可作为房价预测的模型。由于数据来源的局限性,选取的影响因素不够全面,而且房价的走势不仅仅与本文中提到的四个因素有关,还在不同程度上受国家调控政策、国际金融环境等比较抽象且难以用数据进行表达的因素影响,同时所参照的历史数据局限性,也在不同程度上制约和影响了研究的准确度,这些都需要在今后的研究中进一步改进。参考文献[1]朱凯,王正林,《精通MATLAB神经网络》北京:北京工业出版社,2009。[2]河南统计网,平顶山市统计局,《平顶山市国民经济和社会发展统计公报》,。[3]兰雪梅,朱建,黄承明等,《BP网络的MATLAB实现》,微型电脑应用,2003。[4]叶世伟,《神经网络原理》,北京:机械工业出版社。附录clcclearalla=xlsread('G:a.xls','B2:F5')p=polyfit(x,y,4)fval=polyval(p,x);plot(x,fval),holdonplot(x,y),holdofffori=1:4y=a(i,:);x=1:5;p=polyfit(x,y,4);k(i)=polyval(p,6)end2.09301.48260.03200.1305p=[11715826150.2821.5;13531955556.31067.7;147211034076.51124.6;162081150290.41312.1;183481312913815939.4]t=[16421862202624093250]pmax=max(p);pmax1=max(pmax);pmin=min(p);pmin1=min(pmin);fori=1:5%归一化处理p1(i,:)=(p(i,:)-pmin1)/(pmax1-pmin1);endt1=(t-pmin1)/(pmax1-pmin1);t1=t1';net=newff([01;01;01;01],[101],{'tansig','logsig'},'traingd');fori=1:5net.trainParam.epochs=15000;net.trainParam.goal=0.01;LP.lr=0.1;net=train(net,p1(i,:)',t1(i));endy=sim(net,[20930148263201305]');y1=y*(pmax1-pmin1)+pmin1
本文标题:基于BP神经网络的平顶山房价预测
链接地址:https://www.777doc.com/doc-4221863 .html