目录

一、理论基础

二、案例背景

1.问题描述

2.思路流程

三、部分MATLAB仿真

四、仿真结论分析

五、参考文献


一、理论基础

神经网络主要由处理单元、网络拓扑结构、训练规则组成。处理单元是神经网络的基本操作单元,用以模拟人脑神经元的功能。一个处理单元有多个输入、输出,输入端模拟脑神经的树突功能,起信息传递作用;输出端模拟脑神经的轴突功能,将处理后的信息传给下一个处理单元,如图1所示。

图1 神经网络基本处理单元

基本的神经处理单元其等效于人体的神经元,如图2所示,

图2 神经元和神经处理单元的对比

具有相同功能的处理单元构成处理层。常用的多层感知机由输入层、输出层和若干隐含层组成,神经网络的拓扑结构决定了各处理单元、各层之间信息的传递方式与途径。训练规则利用转换函数进行数据处理的加权及求和,训练网络系统进行模式识别,并将其转换成潜在的输出值。神经网络的基本出发点,就是通过简单函数的多次迭代,实现对复杂映射的拟合和逼近。神经网络能够实现一对一、一对多的映射关系。因此,许多实际问题都可以用神经网络模型来解决

二、案例背景

1.问题描述

住宅价格是住宅市场的核心,住宅市场的变化关系到广大消费者的切身利益,商品房价格是升是降,销售是冷是旺,是社会关注的热点问题。因此,从不同角度来看,对商品住宅价格的研究都存在着重要的理论与现实意义。商品住宅价格的变化受市场供求、人口、居民收入水平、经济政策等诸多因素的影响,其随时间变动的过程具有很大的不确定性,为较全面地刻画各方面对住房价格的影响,以把握未来住房价格的变动趋势,将通过神经元网络理论的预测方法,延伸应用于商品住宅价格的研究,对住宅价格进行科学的预测。

2.思路流程

影响商品住宅价格变动的因素是复杂、多变的,将所有因素纳入分析研究是困难的。但是可以认为在一段经济、政治比较平稳时期,商品住宅价格的变动是由一些基本因素决定的。根据本文第二章介绍的,考虑到奥克兰地区的实际情况,将选取13个主要的因素作为影响房屋价格的主要因素:

·每个城镇的平均犯罪率;

·住宅用地超过500平米的比例;

·每个城镇非商业用地的比例;

·距离海洋的距离在1公里内,则为1,否则为0;

·氧化物浓度;

·每个房子的平均房间数;

·1940前自建房屋的比例;

·到购物中心的权值距离;

·高速公里的标号;

·每1万美元的管理费;

·教师比例;

·20岁以下的人口比例;

·退休人口比例。

将以上因素分别表示为:X1~X13。

三、部分MATLAB仿真

clc;
close all;
clear all;
warning off;%% Parameters initialization
%load data
load data\housing_data.mat
%Display the original data
figure;
subplot(4,4,1);plot(x(1,:));title('Per capita crime rate per town');
subplot(4,4,2);plot(x(2,:));title('Proportion of residential land zoned for lots over 500m2');
subplot(4,4,3);plot(x(3,:));title('Proportion of non-retail business acres per town');
subplot(4,4,4);plot(x(4,:));title('1 within 1km from the sea, 0 otherwise');
subplot(4,4,5);plot(x(5,:));title('Nitric oxides concentration (parts per 10 million)');
subplot(4,4,6);plot(x(6,:));title('Average number of rooms per dwelling');
subplot(4,4,7);plot(x(7,:));title('Proportion of owner-occupied units built prior to 1940');
subplot(4,4,8);plot(x(8,:));title('Weighted distances to a main shopping center');
subplot(4,4,9);plot(x(9,:));title('Index of accessibility to motorways');
subplot(4,4,10);plot(x(10,:));title('Full-value of council rate per $10,000');
subplot(4,4,11);plot(x(11,:));title('Pupil-teacher ratio by town');
subplot(4,4,12);plot(x(12,:));title('Population below the age of 20');
subplot(4,4,13);plot(x(13,:));title('Percentage of retirees');
figure;
plot(10000*t,'r');title('PRICE');grid on%% Select multiple data,train neural network
%step1:parameter
net                   = fitnet(10);
net.trainParam.epcohs = 1000;%train times
net.trainParam.goal   = 0.0001;%aim error
%step2:train
net                   = train(net,x,t);%% By using the neural network to predict the price of houses
view(net);
y1 = net(x);%predict
%% Shows the result
figure;
subplot(221);plot(t);
title('Original price');axis([0,length(t),0,max(t)]);
subplot(222);plot(y1);
title('Predict prices ');axis([0,length(y1),0,max(y1)]);
subplot(223);plot(y1);hold on;plot(t,'r');hold off;
legend('Predict prices','Original price');
title('Predict prices');axis([0,length(y1),0,max(y1)]);
subplot(224);plot(y1 - t,'k');
title('Prediction error ');figure
plot(y1);hold on;plot(t,'r');hold off;
legend('Predict prices','Original price');
title('Predict prices');axis([0,length(y1),0,max(y1)]);figure
plot(y1 - t,'k');grid on;
title('Prediction error ');axis([0,length(y1),-50,50]);
%save networks
save net.mat net

四、仿真结论分析

首先通过“load data\housing_data.mat”语句,可以将需要进行训练的函数调用到MATLAB的workspace中,方便数据的调用。

图1 数据调用

首先执行如下的MATLAB指令:

net                = fitnet(10);

net.trainParam.epcohs = 1000;

net.trainParam.goal   = 0.0001;

这里的主要含义就是使用fitnet函数产生一个随机的神经网络,然后将训练次数设置为1000,训练的误差目标设置为0.0001。随机产生的net其信息如下所示:

Neural Network

…………………………….

dimensions:

…………………………….

connections:

…………………………….

subobjects:

…………………………….

functions:

…………………………….

weight and bias values:

…………………………….

methods:

…………………………….

    evaluate: outputs = net(inputs)

然后开始训练,执行如下的指令:

net= train(net,x,t);

训练完成后,系统会出现如下的神经网络界面:

图2 神经网络界面

通过查看相关的信息,我们可以看到整个训练过程的性能如下所示:

图3 神经网络训练曲线

其训练误差分布如下所示:

图4 训练误差分布

从图4.4可知,通过神经网络训练后,多数数据可以分布在较小误差附近,个别数据会产生较大的误差。

图5 数据分布

执行view,可以看到设计好的神经网络模型:

图4.6神经网络数据模型

最后使用设计得到的net函数进行数据的预测。

这里将原始的样本数据和通过神经网络预测得到的数据进行对比,其结果如下:

图7 原始样本数据和预测后的数据对比图

从图7可以看到,通过神经网络预测后的数据和原始的数据基本相似,通过相减得到其误差信息如下所示:

图8 误差曲线

从图8可知,通过神经网络之后,其预测输出值和样本值之间的误差都在0附近,但是对于部分值,如房屋价格中几个跳变的区域,误差较大,这就是对突发情况的预测能力较弱导致的。

五、参考文献

[01]White, H. Economic prediction using neural networks: the case of IBM Gaily stock returns, Neural Networks, IEEE International Conference on,1988,2(6): 451-458.

[02]Kamijo K &Tanigawa T,Stock Price Pattern Recognition: A Recurrent Network Approach. Proceeding of the International Joint Conference on Neural Networks,1990, 215-222.

[03]Youngohc Yoon&George Swales, Predicting Stock Price Per-Formance: A Neural Network Approach, System Sciences, International Conference on,1991. Proceedings of the Twenty-Fourth Annual Hawaii1991,4:156-162.A05-03

基于BP神经网络的多因素房屋价格预测matlab仿真相关推荐

  1. m分别使用BP神经网络和GRNN网络进行时间序列预测matlab仿真

    目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 广义回归神经网络是径向基神经网络的一种,GRNN具有很强的非线性映射能力和学习速度,比RBF具有更强 ...

  2. 【图像识别】基于BP神经网络实现手写体大写字母识别附matlab代码

    1 简介 手写体字符识别是人机交互领域的一个重要内容,本文基于 BP 神经网络实现了任意数量字符模版的多字符手写体字符识别.分为以下几步,第一,首先对目标图像进行识别前预处理.包括灰度图像二值化,图像 ...

  3. 【语音识别】基于BP神经网络0到10数字语音识别含Matlab源码

    1 简介 语音识别技术具有重要的理论价值和广阔的应用前景,近年来受到了人们的广泛重视.随着电子计算机的不断应用与发展以及人工智能的不断进步与完善,人们越来越希望让机器能够理解人类的自然语言,这种需求使 ...

  4. 分别使用BP神经网络和SVM支持向量机进行乳腺癌识别matlab仿真,输出识别率,召回率以及F1

    目录 一.理论基础 二.核心程序 三.测试结果 一.理论基础 乳腺癌是全球第二常见的女性癌症.2012年,它占所有新癌症病例的12%,占所有女性癌症病例的25%.当乳腺细胞生长失控时,乳腺癌就开始了. ...

  5. 基于CMAC小脑模型的数据训练和预测matlab仿真

    目录 一.理论基础 二.核心程序 三.仿真结论 一.理论基础 J.S.Albus于20世纪70年代提出了CMAC,即小脑模型关节控制器,它由含局部调整,相互覆盖接受域的神经元组成.它是模拟人的小脑的一 ...

  6. m基于EM参数估计的Gamma随机过程电池剩余寿命预测matlab仿真

    目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 近年来,为了应对传统化石燃料枯竭和环境恶化,锂离子电池在新能源汽车和电网储能等领域取得了广泛应用.然 ...

  7. 《MATLAB 神经网络43个案例分析》:第25章 基于MIV的神经网络变量筛选----基于BP神经网络的变量筛选

    <MATLAB 神经网络43个案例分析>:第25章 基于MIV的神经网络变量筛选----基于BP神经网络的变量筛选 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 < ...

  8. 基于神经网络的房屋价格预测

    本课题的主要任务就是通过神经网络对房屋的价格进行预测,这里,我们采用的数据是奥克兰其中一个郊区的房屋价格的数据.在MATLAB中,使用load函数,将数据进行导入,可以看到房屋价格数据如图2.1所示. ...

  9. bp 神经网络 优点 不足_基于粒子群算法和BP神经网络的多因素林火等级预测模型...

    森林对于生态环境以及人类生活.生产意义重大.目前世界森林面积达40亿hm2,受自然或人为因素的影响,每年全球发生森林火灾次数高达几十万次,受灾面积达几百万公顷. 20世纪80年代以来,随着全球气候持续 ...

最新文章

  1. ARouter::Compiler No module name, for more information, look at gradle log
  2. jQuery 实现图片的特效1[原]
  3. Kinect for Windows V2 SDK+ VS2012 环境搭建
  4. 2022秋招算法岗卷成人间地狱!高薪惹眼,招录比100:1
  5. Android之使用Jsoup抓取网络数据
  6. css3 自定义滚动条样式
  7. 如何获取握手包_白话详解TCP的三次握手到底做了些什么
  8. Java中用JS那些_java web中javascript主要用哪些?
  9. 全国高等学校计算机水平考试总结,参加全国计算机等级考试的经历和总结
  10. 3.3.4.5. 日期计算
  11. python数据格式化后导入数据库_MySQL导入格式化数据
  12. 聚类时需要标准化吗_收房时,需要请专业验房师吗?
  13. 21幅非常有创意的倒影摄影作品欣赏
  14. 华为交换机CSS集群
  15. CMD操作查看电脑IP
  16. 计算机网络hdcp是什么意思,韩立平:笔记本电脑上hdcp是干什么的?
  17. transition参数css,css3的transition属性详解
  18. linux bigendian未定义,big endian与little endian
  19. 奈奎斯特定理和香农定理解释
  20. 浅谈Observer观察者模式

热门文章

  1. 【操作系统】进程:管程
  2. 在一个批处理系统中有两个作业进程,一个作业序列其到达时间及估计运行时间如下表作业 到达时间
  3. JNDI学习总结(三)——Tomcat下使用Druid配置JNDI数据源
  4. SSM手动、自动切换多数据源
  5. go中宕机与恢复 panic/recover 介绍
  6. 淘宝/天猫API,获得淘宝商品评论返回值说明(数据解析)
  7. 理解Linux中的进程状态
  8. vps系统和云服务器搭建,vps系统和云服务器搭建
  9. python时间戳_Python时间戳使用和相互转换详解
  10. 10_视觉里程计1_三角测量