基于神经网络的房价预测,BP神经网络预测房价

article/2025/10/8 10:56:18

1、如何利用matlab进行神经网络预测

matlab 带有神经网络工具箱,可直接调用,建议找本书看看,或者MATLAB论坛找例子。
核心调用语句如下:
%数据输入

%选连样本输入输出数据归一化
[inputn,inputps]=mapminmax(input_train);
[outputn,outputps]=mapminmax(output_train);
%% BP网络训练
% %初始化网络结构
net=newff(inputn,outputn,[8 8]);
net.trainParam.epochs=100;
net.trainParam.lr=0.01;
net.trainParam.goal=0.01;
%网络训练
net=train(net,inputn,outputn);
%% BP网络预测
%预测数据归一化
inputn_test=mapminmax('apply',input_test,inputps);
%网络预测输出
an=sim(net,inputn_test);
%网络输出反归一化
BPoutput=mapminmax('reverse',an,outputps);
%% 结果分析

谷歌人工智能写作项目:小发猫

2、BP神经网络预测代码 15

你这是在做时间序列呢循环神经网络进行房价预测。
你可以去《神经网络之家》nnetinfo----》学习教程二--->神经网络在时间序列上的应用
上面有讲解。我把代码摘抄给你
% time series:神经网络在时间序列上的应用
% 本代码出自《神经网络之家》
timeList = 0 :0.01 : 2*pi; %生成时间点
X = sin(timeList); %生成时间序列信号
%利用x(t-5),x(t-4),x(t-3),x(t-2),x(t-1)作为输入预测x(t),将x(t)作为输出数据
inputData = [X(1:end-5);X(2:end-4);X(3:end-3);X(4:end-2);X(5:end-1)];
outputData = X(6:end);
%使用用输入输出数据(inputData、outputData)建立网络,
%隐节点个数设为3.其中隐层、输出层的传递函数分别为tansig和purelin,使用trainlm方法训练。
net = newff(inputData,outputData,3,{'tansig','purelin'},'trainlm');
%设置一些常用参数
net.trainparam.goal = 0.0001; %训练目标:均方误差低于0.0001
net.trainparam.show = 400; %每训练400次展示一次结果
net.trainparam.epochs = 1500; %最大训练次数:15000.
[net,tr] = train(net,inputData,outputData);%调用matlab神经网络工具箱自带的train函数训练网络
simout = sim(net,inputData); %调用matlab神经网络工具箱自带的sim函数得到网络的预测值
figure; %新建画图窗口窗口
t=1:length(simout);
plot(t,outputData,t,simout,'r')%画图,对比原来的输出和网络预测的输出
%------------------附加:抽取数学表达式----------------------------top
%希望脱离matlab的sim函数来使用训练好网络的话,可以抽取出数学的表达式,|
%这样在任何软件中,只需要按表达式计算即可。 |
%============抽取数学表达式==================
%抽取出网络的权值和阈值
w12 = net.iw{1,1}; %第1层(输入层)到第2层(隐层)的权值
b2 = net.b{1}; %第2层(隐层)的阈值
w23 = net.lw{2,1}; %第2层(隐层)到第3层(输出层)的权值
b3 = net.b{2}; %第3层(输出层)的阈值
%由于有归一化,必须先将归一化信息抓取出来
iMax = max(inputData,[],2);
iMin = min(inputData,[],2);
oMax = max(outputData,[],2);
oMin = min(outputData,[],2);
%方法1:归一化--->计算输出--->反归一化
normInputData=2*(inputData -repmat(iMin,1,size(inputData,2)))./repmat(iMax-iMin,1,size(inputData,2)) -1;
tmp = w23*tansig( w12 *normInputData + repmat(b2,1,size(normInputData,2))) + repmat(b3,1,size(normInputData,2));
myY = (tmp+1).*repmat(oMax-oMin,1,size(outputData,2))./2 + repmat(oMin,1,size(outputData,2));
%方法2:用真正的权值和阈值进行计算
%公式请参考《提取对应原始数据的权重和阈值》
W12 = w12 * 2 ./repmat(iMax' -iMin',size(w12,1),1);
B2 = -w12* (2*iMin ./(iMax - iMin) + 1) + b2;
W23 = w23 .*repmat((oMax -oMin),1,size(w23,2))/2;
B3 = (oMax -oMin) .*b3 /2 + (oMax -oMin)/2 + oMin;
%最终的数学表达式:
myY2 = W23 *tansig( W12 *inputData + repmat(B2,1,size(inputData,2))) + repmat(B3,1,size(inputData,2));

3、BP神经网络做数据预测,预测出来结果感觉不对,求大神指导

作预测,曲线要拟合。看理论值与实际的相关程度。你的相关系数肯定小,难以有理想结果!

4、bp神经网络遇到新的数据,就预测不准,怎么弄?

预测数据的话BP不是特别好用,最好用Elman反馈神经网络或者RNN循环神经网络,这些有记忆功能的网络比较好用。bp主要和你选择的隐含层数,和误差范围,学习率有关。你可以调节相关参数来改变神经网络,获得更精确的结果。

5、机器学习可以预测汇率变化吗?

作者| Filip Piekniewski

编译| ziqi zhang

随着人工智能的持续深入,深度学习技术在多智能体学习、推理系统和推荐系统上取得了很大进展。

对于多智能体来说,预测能力有着关键性的作用。一个训练有素的智能体已经能骗过智商正常的人类了!你可能不会相信,仅仅从一个反应系统学习90%的动作命令,它就已经可以取得这样的“成就”了。

这是结合了统计学和动力学而实现的。对于这个问题,大多数方案是通过统计学方法,构建概率模型来解决。这点与行为引导(behavior guiding)研究相同。但是,在这两类研究中,应用统计学方法可能会忽略一些重要的极端值,而相关重要信息又往往只能根据这些极端值的分布情况来得到。

Filip Piekniewski是一位资深的人工智能爱好者,他曾经推出一篇博文,详细介绍了上述多智能体的实现过程。

最近,他又发布一篇博文,详细介绍了——视觉预测模型(Predictive Vision Model),用于将预测范式引入到机器学习模型中。

这是一篇有趣的干货长文,希望大家能花时间来阅读。下面简要介绍下视觉预测模型的思路及部分细节。

主要思路

本文构建了一个在视觉条件下以感官信息作为输入的预测模型。由于无法准确建立感官信息的运动方程,只能通过机器学习来完成。

这个实现过程很简单,只需将当前输入值与将来的同等值联系起来,这与自动编码器相似,但是当前模型不是预测信号本身,而是下一帧信号。一旦建立了对应联系,所构成的系统就可以预测出下一个输入值。

事实上,我们可以同时训练并使用这个系统。显然,这个结果系统不能准确输出外部实际值,但是可以产生一个相当逼近实际情况的近似值。在很多情况下,这样的近似值已经足以用来产生一个鲁棒性很好的表现。

实现细节

构建一个上述的预测编码器本身十分简单,问题的关键在于缩放上。在构建一个系统的时候,有时可以通过将一个大的系统拆分成小块或者缩小数量来解决这个问题,而不是一次性构建一个庞大的整体。我们就应用这种想法。

我们不用构建一个大规模的预测编码器来处理大图像,而是构建许多小规模的预测编码器。工作时,每个小编码器都输入并处理一个小的片段,工作流程如下图所示:

这样我们就得到了一个“分布式”预测系统。

当然,这样仍然存在问题:虽然每个单元能够独立地进行预测了,但是它们所处理的信号有些具有全局一致性。

如何实现资源共享,从而提高运行效率呢?

互联!我们可以尝试将这些独立的单元连接起来,这样,每个单元就可以向相邻单元通报它们刚刚看到(预测)了什么。

听起来相当不错,但是如果我们现在向每个单元发送多组信号的副本,即每个单元的预测信息,那么这些单元承担的信息量将大大增加,时间和空间的压力可想而知,以至于我们无法进一步扩展系统。

如何解决这一问题呢?

压缩!压缩方法就像去噪自编码器(denosing autoencoder)一样,强制每个单元只能预测,而且只能使用基本特征进行预测。

我们通过引入一个瓶颈,缩小中间层来实现压缩功能。一旦这一功能实现了,我们就能利用“压缩后”的表达信息连接到相邻单元,从而构成横向连接。工作流程如下图所示:

到目前为止,我们实现了:每个单元不光可以预测自身的输入信息,还可以预测附近单元的输入信息。由于感官数据通常具有局部性(locality)特点,这些附近单元的附加信息通常对预测是十分有用的。

需要注意的是,即使现在的系统是稀疏连接的(本地连接),只要我们添加更多的单元(其实就是以更高分辨率处理图像)就可以扩展这个系统,而且总的收敛时间将不受任何影响(假设添加的算力与添加的单元成正比)。

分层与反馈

我们现在只有一层单元来预测未来的输入信息,那么,问题又来了:对于这个系统,我们一直是在一个非常精细的规模下传递预测信息的。但是,当想要获得较大规模场景的规律时,即便加入横向反馈,这种单层预测系统也无能为力。

为了在大规模的场景中仍然可以找到规律,我们可能会想到使用一个能够处理整个场景的单元,但是因为它不能扩展,所以这种想法不太可行。但是请注意,我们已经对数据进行了压缩,如果我们再添加一个层,用来预测第一层的压缩特征,那么这一层中的每个单元都将可以获得更大的视野(虽然这样做会失去对较低一级预测无用的功能)。如下图所示:

好了,现在有了较高一层单元,我们就可以发现更大规模视野的规律。我们可以不断地添加更多的层,直到剩下一个能够捕获整个场景规律的单元,尽管这个单元处理的分辨率可能不是很高。

层数增加带来单元数量的增加,每个单元都会产生预测信息,中间这些额外的预测信息可以做什么呢?

作为反馈进行回传!这样,可以帮助低一层的单元更好地进行预测,如下图所示:

到目前为止,我们就完成了一个完整的视觉预测模型的系统搭建任务。每个单元都有其清晰的目标函数,误差以分布式的方式在系统中传播,而不是以单个反向传播标签的形式,并且系统仍然具有扩展性。原理上,这就是通用的视觉预测模型——没有任何变形,只是以一种新的方式安排了联想记忆(associative memories)。

该模型的主要目标是进行预测。如果构建输入信号的内部模型,这个系统仍然可以胜任。由于其内部的循环连接,该系统可以扩展为非常复杂的模型。下面的动画显示了信息的流动过程:

好了,现在系统设计完成了,详细说明一下它到底能做什么,在这之前,关于该模型还有几个重要的东西需要强调一下:

PVM使用关联存储器单元进行数据的压缩,它可以通过反向传播(backprop)或其它别的方法来实现:玻尔兹曼机(Boltmann Machine)、脉冲网络(Spiking Network),等等。这些也给了系统在硬件方面巨大的灵活性。

系统是分布式的,并且完全避免了梯度消失(vanishing gradient)这一问题,因为训练信号是局部的,丰富而且足够强。因此不需要卷积和繁杂的正则化方法等等。

PVM可以应用于视觉方面,其它模式当然也能适用。事实上,你可以自由地将模式进行组合,让它们在不同的抽象层次上相互预测。

PVM中的反馈可以任意地布置。如果信号具有预测性质,那么它将被利用,否则将被忽略(这是可能发生的最坏的事情)。

PVM中的输入信号可以是单个图像(例如视频中的一帧)或者序列。实际上,我做过一些针对处理视频帧的有意义的实验。

如果输入信号的一小部分以一种可预测的方式(例如相机上有个像素坏掉了)被破坏了,它将在低层的处理过程中被预测,越往高层传播,这种影响就越小。在极端情况下,例如长期无效的像素,是可以通过偏执单元(常数)单独进行预测的,且高层可以完全忽略它们的存在,这点非常像人眼中的盲区。

信号误差作为系统的副产品基本上是都是异常的检测信号。在不同的规模下,可以获得不同层级的异常信息。这种信息在行为识别方面是一个十分有用的信号,涉及到显著性以及注意力机制的概念。

真的有用吗?我们用实验去证明!

大量的实验证明,PVM确实在基本预测任务中发挥了巨大的作用,但它还能做别的事情吗?

一方面,推荐系统会利用预测误差给用户提供他们想要的信息,但是这是一个长期的过程。

另一方面,我们决定增加一个有监督的视觉目标跟踪任务,并在上面测试PVM的实际性能。

我们往PVM中加入一些小东西:

我们使处理单元闭环(自己以前的状态成为上下文的一部分)。这种做法使PVM单元类似于简答的循环神经网络。当然也可以把LSTM加上去,但是我真的非常不喜欢LSTM,因为它们看上去非常的“不自然”。

在输入向量中,我们加入了几个“预先计算过的特征”,这些特征仅仅用于帮助简单的三层感知机找到相应的模式。

我们还添加了一个读出层,通过明确的监督训练(现在是带标签的数据,带有M的框),就可以训练出感兴趣目标的热图。与PVM系统中其他部分相同,该热图由所有单元以分布式方式生产,之后进行组合用来计算目标的边界。

热图的产生过程:

总而言之:它是起作用的!详细的信息可以参考我的长篇论文。

通常通过训练这个系统,我们可以将它用于稳定的视觉目标跟踪,其效果可以打败几种最先进的目标跟踪器。

第一行从左到右为:视觉输入信息、后续几层的内部压缩后的激活信号。

第二行:连续的预测信息。第一层的视觉预测,对于第一层激活的第二层预测等等。

第三行是误差信息(实际信息与预测之间的偏差)。

第四行是有监督对象的热图(我们这个实验是对“STOP”标志敏感)。

最后一列:各种跟踪的可视化信息。

以下是针对数据集中,其它跟踪目标的实例(注意,我们从不在训练集上对系统进行评估,因为这样训练出来的系统泛化性是很差的),红色框代表人为标注的真实地面目标,黄色框是PVM的返回。总而言之,它的效果非常好,特别是它在低分辨率(96*96)的视频上仍然起作用(虽然这个分辨率对于人类来说足够理解场景中的物品了)。

结论

我们都知道,上世纪80年代提出的深度卷积神经网络是基于60年代的神经学知识发展起来的,现在还异常火热。

PVM不同于卷积神经网络,它是基于全新的大脑皮质结构和功能的一种新的算法。PVM能避免许多机器学习都会遇到的问题:比如过度拟合和梯度消失问题。它也不用使用一些繁杂的技巧:比如卷积和正则化,它会把任务当成在线信号预测的任务。

虽然PVM还不能作为感知任何事物的黑盒(还没人知道这个黑盒是否存在),但是与各种感知应用的方法来比,它还是很有竞争力的,这里就不得不提深度学习的方法了,相比来说这是最大的挑战。PVM的不同之处在于,它是由直觉进行驱动的,它将使机器人在长期内真正起作用。

目前有关PVM的应用性实验都可以在Github上找到,enjoy!

参考文献:

[1]http://blog.piekniewski.info/2016/11/03/reactive-vs-predictive-ai/

[2]http://blog.piekniewski.info/2016/11/04/predictive-vision-in-a-nutshell/


http://chatgpt.dhexx.cn/article/NhIwk4tK.shtml

相关文章

麻雀搜索算法优化BP神经网络预测以及MATLAB代码实现

麻雀搜索算法SSA优化BP神经网络回归预测以及MATLAB代码实现 文章目录 麻雀搜索算法SSA优化BP神经网络回归预测以及MATLAB代码实现1. 麻雀搜索算法SSA原理1.1 算法灵感来源1.2 算法模型描述 2. SSA优化BP神经网络预测算法流程3. SSA优化BP回归预测的MATLAB实现步骤4. 运行结果与…

bp神经网络预测模型优点,bp神经网络缺点及克服

BP神经网络的核心问题是什么?其优缺点有哪些? 人工神经网络,是一种旨在模仿人脑结构及其功能的信息处理系统,就是使用人工神经网络方法实现模式识别.可处理一些环境信息十分复杂,背景知识不清楚,推理规则不明确的问题,神经网络方法允许样品有较大的缺损和畸变.神经网络的类型…

提高bp神经网络预测精度,bp神经网络收敛速度慢

1、如何提高bp神经网络的预测精度啊 跟你的预测对象有很大关系。 1. 根据你的预测对象的特性选取合适的输入层、输出层和隐层神经元数目。 2. 选择合适的神经网络训练函数。 3. 保证足够的训练样本数据,并且确保这个训练样本数据有足够的精度能够反映需要预测的对象…

(四)BP神经网络预测(上)

BP神经网络适用于机器人控制、组合优化、模式识别、图像信息处理,能够对非线性数据建立精确的模型,对其未来进行预测。其核心思想是:将已预处理好的数据放到神经网络的微分方程进行反复训练,通过大量的训练建立BP神经预测模型&…

基于遗传算法优化BP神经网络预测和分类MATLAB实现-附代码

基于遗传算法GA优化的BP神经网络预测和分类(含优化前对比) 文章目录 基于遗传算法GA优化的BP神经网络预测和分类(含优化前对比)1. BP神经网络预测原理简介2. 遗传算法GA优化BP神经网络原理3. GA-BP模型建立3.1 模型与数据介绍3.2 …

用matlab做bp神经网络预测,matlab人工神经网络预测

如何得到神经网络预测结果 20 。 如果你用9——11年的数据不经过预测12——19年的数据就想得到第20年的数据的做法是不合理的,神经网络的预测讲求时间序列的连续性,你可以在编写maltab程序的时候才用递归的方法调用神经网络工具箱,加上对预…

提高bp神经网络预测精度,bp神经网络数据预处理

bp神经网络对输入数据和输出数据有什么要求 p神经网络的输入数据越多越好,输出数据需要反映网络的联想记忆和预测能力。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。 它的学习规则是使用最速下降法&…

bp神经网络预测模型优点,bp神经网络相关性分析

BP神经网络的可行性分析 神经网络的是我的毕业论文的一部分4.人工神经网络人的思维有逻辑性和直观性两种不同的基本方式。 逻辑性的思维是指根据逻辑规则进行推理的过程;它先将信息化成概念,并用符号表示,然后,根据符…

bp神经网络预测未来数据,bp神经网络数据预处理

如何建立bp神经网络预测 模型 建立BP神经网络预测 模型,可按下列步骤进行:1、提供原始数据2、训练数据预测数据提取及归一化3、BP网络训练4、BP网络预测5、结果分析现用一个实际的例子,来预测2015年和2016年某地区的人口数。 已知2009年——…

bp神经网络数据预测实例,bp神经网络预测数据

BP神经网络预测,预测结果与样本数据的理解。 输入节点数是3,说明输入向量的行数m3,你给的样本只有1行,是不是不全?输出节点只有一个,说明每3个输入数据对应一个预测的输出数据。其实样本数量很少&#xff…

bp神经网络预测模型原理,BP神经网络预测模型

深度学习与神经网络有什么区别 深度学习与神经网络关系2017-01-10最近开始学习深度学习,基本上都是zouxy09博主的文章,写的蛮好,很全面,也会根据自己的思路,做下删减,细化。 五、DeepLearning的基本思想假…

bp神经网络预测模型python,bp神经网络预测模型

如何建立bp神经网络预测 模型 。 建立BP神经网络预测模型,可按下列步骤进行:1、提供原始数据2、训练数据预测数据提取及归一化3、BP网络训练4、BP网络预测5、结果分析现用一个实际的例子,来预测2015年和2016年某地区的人口数。 已知2009年…

BP神经网络预测

BP神经网络预测 1.输入向量与输出向量 我们将前14组国内男子跳高运动员各项素质指标作为输入,即(30m行进跑,立定三级跳远,助跑摸高,助跑4-6步跳高,负重深蹲杠铃,杠铃半蹲系数,100m&…

BP神经网络预测模型

一、BP神经网络简单介绍 BP神经网络是一种人工神经网络,其主旨是一种进行分布式并行信息处理的数学模型。 其内部包含一个或多个隐含层。 1、基本概念 感知器 代表BP神经网络中的单个节点。 其包含:输入项、权重、偏置、激活函数、输出。 下图可以看…

BP神经网络如何用历史数据预测未来数据

本文主要为了解决如何用BP神经网络由历史的目标数据与因素数据去预测未来的目标数据。Bp神经网络的具体算法步骤与代码在网络上已经有很多大佬写过了,本文提供了将其应用于预测的方法。(附简单直接可使用代码) 开始我也在思考,简答…

EXCEL生成脚本

Execel 业务导入 1、填写数据 2、根据包的存储过程,生成脚本 3、输出脚本

用Python如何开发Excel宏脚本?新手必学

今天介绍一个叫 xlpython 的库,通过它我们可以用 Python 来开发 Excel 的宏脚本,真正实现在 Excel 中调用 Python。 基本环境 操作系统:Windows 10 x64 Office:2016 安装Python 1.下载Python安装包 登录[https://www.python…

大新闻!微软正考虑添加 Python 为官方的 Excel 脚本语言

(点击上方蓝字,快速关注我们) 来源: 开源中国 www.oschina.net/news/91595/python-as-an-official-scripting-language-to-excel 据外媒报道,微软正考虑添加 Python 为官方的一种 Excel 脚本语言,如果获得批准,Excel 用…

Excel里写VB脚本自定义函数

1点击开发者工具,选择Visual Basic 2选择插入模块 3如图写入如下脚本 str为需要匹配的字符串,exist表示存在的符号,uexist表示不存在的符号,SearchString合法字符集集合 函数功能:遍历str中每个字符,如果有任一字符存在于SearchString中,则显…

Excel 数据转化为Sql脚本

在实际项目开发中,有时会遇到客户让我们把大量Excel数据导入数据库的情况。这时我们就可以通过将Excel数据转化为sql脚本来批量导入数据库。 步骤一:在数据前插入一列单元格,用来拼写sql语句。 "insert into t_order (id,name,kg,v) v…