地理数据分析与建模集中实习日志(二)matlab实现神经网络神经网络模型(1)前馈神经网络(FeedforwardNeuralNetworks)采用BP学习算法的前馈型神经网络通常被称为BP网络。三层BP神经网络结构一个典型的3层BP神经网络模型如图所示。该概念相对与反馈神经网络相对应(2)反馈神经网络(FeedbackNeuralNetworks)反馈型神经网络是一种从输出到输入具有反馈连接的神经网络,其结构比前馈网络要复杂得多。典型的反馈型神经网络有:Elman网络和Hopfield网络。反馈神经网络下面将具体介绍FeedforwardMatlab中的神经元网络分析主要包含以下步骤:1.数据采集(Collectdata)与数据预处理(DataPreprocessing)////////////////////////////////////////////2.创建网络(Createthenetwork)3.配置网络(Configurethenetwork)4.初始化权值和偏移量(Initializetheweightsandbiases)////////////////////////////////////////////5.训练网络(Trainthenetwork)6.验证网络(Validatethenetwork)////////////////////////////////////////////7.使用神经元网络模型进行预测分析(Usethenetwork)1.a.数据采集(Collectdata)与数据预处理(DataPreprocessing)简介:excel表格中的数据为“采样数据”(具体来讲,这些地区的房价是真实值)其余的数据作为房价的影响因素,后面就是使用这两套数据训练建立出来的net。最终目标:当输入任意一个地区的房价影响因素,均可以得到一个预测值(如果输入已知地区的因素,也将得到一个预测数值。当然,该数值在理论上应该与真实值相差不大)拆分exel两组数据的具体方法如下(r2013a)3步1.选matrix2.shift选非最后一列剩下3.更改matrix名字务必进行转置——神经网络的输入和输出数据要求每列是一个样本第一列不是数组delte若下次再想使用这两套值/////////////////////////////////b.数据预处理(DataPreprocessing)在matlab中,在步骤2.创建网络(Createthenetwork)时有缺省实现缺省:removeconstantrows随后进行数据标准化,所以数据均落入(-1,1)之间c.数据分组。Matlab中,使用多层神经元网络进行训练前,首先需要把数据分成三组:训练样本(trainingset)、测试样本(validationset)和验证样本(testset)。训练样本用于计算(本次和上次迭代结果的)梯度,更新网络的权重和增益值;测试样本用于对训练过程的监督,避免训练时的过度拟合现象(过度拟合时训练样本误差逐渐减少,而测试样本误差显著增加);验证样本为独立样本数据,其所得误差可用于比较不同模型的预测精度,也可用于和测试样本结果进行比较,判断分组是否合理。数据分组同样在创建net时缺省实现,缺省:dividerand要改的话在创建net时候改////////////////////////////////////////////2.创建网络(Createthenetwork)3.配置网络(Configurethenetwork)4.初始化权值和偏移量(Initializetheweightsandbiases)(可以不做)net=feedforwardnet;%创建前向神经元网络feedforwardnet(用于拟合时最常使用的神经元网络结构)net=configure(net,houseInputs,houseTargets);%若不对feedforwardnet的默认设置做修改(默认层数为2,隐含层神经元数目为10,训练方法trainlm,隐含层转换函数tansig,默认输出为purelin.),则可直接使用configure命令确认网络配置。Configure时自动初始化权重。以上摘自ppt针对我的代码:net=feedforwardnet;//创建网络net=configure(net,yingxiangyinsu,zhenshifangjia);//确认net配置////////////////////////////////////////////5.训练网络(Trainthenetwork)6.验证网络(Validatethenetwork)[net,tr]=train(net,yingxiangyinsu,zhenshifangjia);%训练由上图,可以直接印证“确认配置”时候默认的的10个神经元(小机器人)6.验证网络训练记录“tr”包含有训练网络的各个参数。如tr.trainInd,tr.valIndandtr.testInd记录了用于训练、测试和验证过程的数据序号,可以让我们了解数据如何进行分组及分组是否合理plotperf(tr)绘制误差变化图////////////////////////////////////////////7.使用神经元网络模型进行预测分析(Usethenetwork)以预测第一个地区为例first_price=net(yingxiangyinsu(:,1))实际房价证明所建立net效果可以接受