BP神经网络模型,如果要预测数据,是每一个数据都迭代N次吗?

比如,以下例子:
某地区20年公路运量数据
年份 人口数量 机动车数量 公路面积 公路客运量 公路货运量
1990 20.55 0.6 0.09 5126 1237
1991 22.44 0.75 0.11 6217 1379
1992 25.37 0.85 0.11 7730 1385
1993 27.13 0.90 0.14 9145 1399
1994 29.45 1.05 0.20 10460 1663
1995 30.1 1.35 0.23 11387 1714
1996 30.96 1.45 0.23 12353 1834
1997 34.06 1.60 0.32 15750 4322
1998 36.42 1.70 0.32 18304 8132
1999 38.09 1.85 0.34 19836 8936
2000 39.13 2.15 0.36 21024 11099
2001 39.99 2.20 0.36 19490 11203
2002 41.93 2.25 0.38 20433 10524
2003 44.59 2.35 0.49 22598 11115

2004 47.30 2.50 0.56 ? ?
2005 52.89 2.60 0.59 ? ?
题目的要求要我们预测2004和2005两年的公路客运量与公路货运量。

首先,我现在已经清楚了BP神经网络的原理,包括正向传播反向传播激励函数等等,我自己也编写了一套BP神经网络的运算程序。现在我只想搞清楚一个简单的问题,对于这个实例,具体的运算步骤,是否是将人口数量、机动车数量以及公路面积作为3个输入层节点,隐藏层节点数就自己定了,输出层节点是公路客运量和公路货运量2个节点。那么我如果设置学习迭代次数为1000次。步骤是否是:对1990年的数据进行迭代1000次的学习,然后再对1991年的数据进行迭代1000次学习,对1991年初始权重值和偏值为1990年迭代1000次后最终更新的各节点的权重值和偏值,然后依次往下,即每年都会迭代1000次学习。
各位一定看懂我的问题,不要答非所问

caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 如果问题得到解决,请采纳,谢谢
11 个月之前 回复

1个回答

具体要看你的程序,如果你不使用batch,那么通常的做法是把当前的权重在所有数据之上跑一次(正向传播),然后算出梯度,根据梯度修正每个隐层的权重(反向传播),这个整个的过程算一个迭代。
你说的每年的数据做一个迭代,实际上算迁移学习了,一些情况下,比如又要不断学习,又要部署,那么其实就是用你的类似的思路去计算。

studentstep
studentstep 回复贵阳挖掘机马善福,自备车辆专业挖游泳池: 赞,问这个问题的哥们估计对神经网络一无所知吧,每个节点本来就是输入各年的数据,而他这里是每一种输入一年的数据不过拟合才怪呢
10 个月之前 回复
showbo
支付宝加好友偷能量挖 回复qq_41660047: 回答很详细,可以采纳了,楼主有什么不会的可以继续提问~
一年多之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 我不知道你是举例还是什么,你一年就1条数据?这么点数据根本不能用神经网络,别说迭代1000次,迭代10次就过拟合了
一年多之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复qq_41660047: 所有的数据都正向传播,实际上一个数据一个数据也不可行。否则你怎么并行?
一年多之前 回复
qq_41660047
qq_41660047 我想问下,这是我个人的想法,我想咨询下如果常规或者大部分人的算法,难道不是每年进行N次迭代学习吗?你说的当前权重在所有的数据上跑一次指的是,一次正向传播实际是跑所有年份的数据才算一次正向传播,而不是只跑一年的数据算一次正向传播是吗?
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
BP神经网络预测效果不好是什么原因?

BP神经网络的预测结果的回归效果很好,但是预测误差很大,是什么原因呢? 我以为是过拟合,但是采取正则化之类的一些方法之后,并没有改善多少。 但是BP神经网络的输入数据和输出数据相关性很低(低于0.2,甚至负相关),会不会是这个原因呢? 原始数据样表如图:这里是用T、PH、DO、EC作为输入数据,预测Imn。 ![图片说明](https://img-ask.csdn.net/upload/201912/10/1575989411_839837.jpeg) 预测效果如下图,预测的MAPE=0.27,多次训练大多是0.3左右,这是不是BP神经网络训练得到的最好的结果呢?是不是需要换模型? 这种数据之间相关性很低的该怎么预测? ![图片说明](https://img-ask.csdn.net/upload/201912/10/1575989215_333538.png) ![图片说明](https://img-ask.csdn.net/upload/201912/10/1575989227_329592.png)

Python作业 机器学习 用bp神经网络建立预测模型的问题

如题,选择最佳的特征组合,建立bp神经网络模型,并用10折交叉验证评价模型 原数据集data,excel文件,前几行如下,46列,44行,第一列为分类标签(N和P),其余为特征,已经做过归一化等预处理 ![图片说明](https://img-ask.csdn.net/upload/202006/21/1592716100_989103.jpg) 我自己做了一个随机森林的特征选择,选了得分较高的前五个特征,生成新数据集data2,前几行如下 ![图片说明](https://img-ask.csdn.net/upload/202006/21/1592716121_585226.jpg) 然后原本的要求是寻找最佳的模型,这里我选了bp算法,但我不太会写,就先用mlp做了一个极简的模型,结果准确率太低了。。。 ![图片说明](https://img-ask.csdn.net/upload/202006/21/1592716155_102950.jpg) 菜鸟求教代码,用bp算法,分训练集和测试集,10折交叉验证,优化模型提高准确率,老师给的准确率在90%以上,我不太清楚,是我特征选择选的不好,还是神经网络的模型不适合这个数据集,准确率就比较低?所以应该选哪个模型呢?

BP神经网络对股票未来进行预测的Python代码

如何用BP神经网络通过已获取的股票的开盘价收盘价最高最低价的数据对未来未获取数据的股票进行之后的预测,激活函数用sigmod即可。总而言之,就是用现在预测未来。求Python代码

bp神经网络实现价格预测

BP神经网络基于spark实现,要求三个输入:商品历史价格,商品替代品历史价格,居民消费水平,一个输出商品预测价格,实现价格预测

BP神经网络拟合效果不好,怎么解决?附源程序

主函数,需调用fx2函数 %fun为进行拟合的非线性函数 %node为隐含层的节点数 %k为最大迭代次数,缺省时,默认为100 %eps为目标值,缺省时,默认为0.0001 %随机产生2000组输入数据x、输出数据y input=10*rand(1,2000)-5; output=zeros(1,2000); for i=1:2000 output(i)=fsin(input(i)); end %随机选择1000组训练数据和1000组预测数据 input_train=input(1:1000)'; output_train=output(1:1000)'; input_test=input(1001:2000)'; output_test=output(1001:2000)'; %训练数据归一化 [inputn,mininput,maxinput]=premnmx(input_train); [outputn,minoutput,maxoutput]=premnmx(output_train); %构建BP神经网络 net=newff([-5 5;-5 5],[5,1],{'tansig' 'purelin'}, 'trainlm' ); %配置网络参数(迭代次数、学习率、目标) net.trainParam.epochs=3; net.trainParam.lr=0.1; net.trainParam.goal=eps; %BP神经网络训练 net=train(net,inputn',outputn'); %预测数据归一化 inputn_test=tramnmx(input_test,mininput,maxinput); %BP神经网络预测输出 an=sim(net,inputn_test'); %输出结果反归一化 BPoutput=postmnmx (an,minoutput,maxoutput); %计算误差 error=BPoutput-output_test'; %网络预测结果图像 figure(1) plot(BPoutput,':og') hold on plot(output_test,'-*'); legend('预测输出','期望输出') title('BP网络预测输出','fontsize',12) ylabel('函数输出','fontsize',12) xlabel('样本','fontsize',12) %网络预测误差图像 figure(2) plot(error,'-*') title('BP网络预测误差','fontsize',12) ylabel('误差','fontsize',12) xlabel('样本','fontsize',12) fx2函数: function y=fx2(x) y=x(1)^2+x(2)^2;

用keras搭建BP神经网络对数据集进行回归预测,效果和同学的相比很差,麻烦大神指点。新手小白。。。

数据集是csv文件,一共十三列,十几万行,第十三列是要预测的值。 试过很多种方法(都是百度的),包括更改网络层数、 节点数,学习率……,效果都没什么提升 不知道问题出在哪里,请大神指点。 import numpy as np import keras as ks from keras.models import Sequential from sklearn import preprocessing from sklearn.model_selection import train_test_split from keras.layers import Dense, Activation,Dropout x_yuan = np.loadtxt(open("shaixuandata.csv","rb"),\ usecols=(range(12)),delimiter=",",skiprows=1) x = preprocessing.scale(x_yuan) y = np.loadtxt(open("shaixuandata.csv","rb"),\ usecols=(12),delimiter=",",skiprows=1) x_train, x_test, y_train, y_test = train_test_split(\ x, y, test_size=0.25, random_state=43) model = Sequential() model.add(Dense(units=30, input_dim=12)) model.add(Activation('relu')) model.add(Dropout(0.1)) model.add(Dense(units=1)) model.add(Activation('linear')) ks.callbacks.ReduceLROnPlateau(monitor='val_loss', factor=0.1, \ patience=10, verbose=0, mode='auto', epsilon=0.0001, cooldown=0, min_lr=0) sgd = ks.optimizers.SGD(lr=0.001, clipnorm=1.,decay=1e-6, momentum=0.9) model.compile(optimizer='sgd', loss='mae', metrics=['mae']) model.fit(x_train, y_train, batch_size=30, epochs=3, callbacks=None, \ validation_data=(x_test,y_test), shuffle=True, class_weight=None, \ sample_weight=None, initial_epoch=0) predict = model.predict(x_test) sum = 0 for i in range(len(y_test)): sum = sum+(y_test[i]-predict[i])**2 mse = sum/len(y_test) print(mse) ![训练的结果是这样的,老实说训练结果太差](https://img-ask.csdn.net/upload/201806/27/1530098555_142017.png)

bp神经网络使用的数据集应该怎么去处理啊,谢谢大家

我做的是关于PM2.5浓度预测的神经网络 现在有每天每个小时的各污染物质含量 应该把什么当作输入什么当作输出以及如何整理这个数据集呢? ![图片说明](https://img-ask.csdn.net/upload/201904/15/1555302069_911775.png)

有没有可以用来验证BP神经网络准确性的数据

我自己写成了一套BP神经网络的代码,现在想验证该套程序是否运算准确,有没有人能提供一套训练数据,以及结果数据,我来

需要bp网络预测彩票的数据结果,会的请联系我,很急,具体的请私聊我

会用java,matlab,c等来编码实现神经网络预测,我需要预测彩票的数据结果。会的请尽快回复我,就是帮我做一下数据预测,三层bp神经网络预测彩票数据,我需要这个结果

bp网络预测彩票,matlab输入确定的,那输出量是什么啊?求解答

用matlab进行bp网络数据预测,预测彩票,输入的是50期的数据,那输出量是什么啊,

遗传算法优化BP神经网络

主函数:需调用函数fx2、evaluate和errorBP clc clear %随机产生200组输入数据x、输出数据y input=10*rand(2,200)-5; output=zeros(1,200); for i=1:200 output(i)=fx2(input(:,i)); end %设置网络节点数 inputnum=2; hiddennum=5; outputnum=1; %随机选择100组训练数据和100组预测数据 input_train=input(:,1:100)'; output_train=output(1:100)'; input_test=input(:,101:200)'; output_test=output(101:200)'; %训练数据归一化 [inputn,mininput,maxinput]=premnmx(input_train); [outputn,minoutput,maxoutput]=premnmx(output_train); %构建BP神经网络 net=newff([-5 5;-5 5],[5,1],{'tansig' 'purelin'}, 'trainlm' ); %模拟退火算法参数初始化 Tmax=50; %初温 L=100; %最大退火次数 Tmin=0.01; %终止温度 %BP神经网络算法优化权值和阈值 numsum=inputnum*hiddennum+hiddennum+hiddennum*outputnum+outputnum; %权值和阈值总数 net=train(net,inputn',outputn'); %将BP神经网络优化后权值和阈值赋给模拟退火算法的初始解 s1=reshape(net.iw{1,1},1,inputnum*hiddennum); s2=reshape(net.b{1},1,hiddennum); s3=reshape(net.lw{2,1},1,hiddennum*outputnum); s4=reshape(net.b{2},1,outputnum); s=[s1,s2,s3,s4]; %模拟退火算法优化权值和阈值 t=Tmax; while t>Tmin k=1; for i=1:numsum sx(i)=s(i)+(0.2*rand-0.1)*errorBP; %产生新解 end c=evaluate(sx,inputnum,hiddennum,outputnum,net,inputn,outputn,minoutput,maxoutput)-evaluate(s,inputnum,hiddennum,outputnum,net,inputn,outputn,minoutput,maxoutput); %计算增量 if c<0 s=sx; t=t*0.95; %!!!!!! elseif rand<exp(-c/t) s=sx; t=t*0.99; else t=t*1.01; end % if t<=Tmin break; end k=k+1; end %将最优结果赋值给BP神经网络的权值和阈值 w1=s(1:inputnum*hiddennum); v1=s(inputnum*hiddennum+1:inputnum*hiddennum+hiddennum); w2=s(inputnum*hiddennum+hiddennum+1:inputnum*hiddennum+hiddennum+hiddennum*outputnum); v2=s(inputnum*hiddennum+hiddennum+hiddennum*outputnum+1:inputnum*hiddennum+hiddennum+hiddennum*outputnum+outputnum); %网络权值和阈值赋值 net.iw{1,1}=reshape(w1,hiddennum,inputnum); net.lw{2,1}=reshape(w2,outputnum,hiddennum); net.b{1}=reshape(v1,hiddennum,1); net.b{2}=v2; %配置网络参数(迭代次数、学习率、目标) net.trainParam.epochs=100; net.trainParam.lr=0.1; net.trainParam.goal=0.00001; %BP神经网络训练 net=train(net,inputn',outputn'); %预测数据归一化 inputn_test=tramnmx(input_test,mininput,maxinput); %BP神经网络预测输出 an=sim(net,inputn_test'); %输出结果反归一化 BPoutput=postmnmx (an,minoutput,maxoutput); %计算误差 error=BPoutput-output_test'; %网络预测结果图像 figure(1) plot(BPoutput,':og') hold on plot(output_test,'-*'); legend('预测输出','期望输出') title('BP网络预测输出','fontsize',12) ylabel('函数输出','fontsize',12) xlabel('样本','fontsize',12) %网络预测误差图像 figure(2) plot(error,'-*') title('BP网络预测误差','fontsize',12) ylabel('误差','fontsize',12) xlabel('样本','fontsize',12) 拟合函数fx2 function y=fx2(x) y=x(1)^2+x(2)^2; 调用的适应度值函数evaluate function error=evaluate(s,inputnum,hiddennum,outputnum,net,inputn,outputn,minoutput,maxoutput) %%该函数用于计算模拟退火算法适应度值evaluate %s:权值、阈值的个体 %inputnum:输入层节点数 %hiddennum:隐含层节点数 %outputnum:输出层节点数 %net:网络 %inputn:训练输入数据 %outputn:训练输出数据 % % %BP神经网络初始权值和阈值 w1=s(1:inputnum*hiddennum); v1=s(inputnum*hiddennum+1:inputnum*hiddennum+hiddennum); w2=s(inputnum*hiddennum+hiddennum+1:inputnum*hiddennum+hiddennum+hiddennum*outputnum); v2=s(inputnum*hiddennum+hiddennum+hiddennum*outputnum+1:inputnum*hiddennum+hiddennum+hiddennum*outputnum+outputnum); %网络权值和阈值赋值 net.iw{1,1}=reshape(w1,hiddennum,inputnum); net.lw{2,1}=reshape(w2,outputnum,hiddennum); net.b{1}=reshape(v1,hiddennum,1); net.b{2}=v2; %构建BP神经网络 net=newff([-5 5;-5 5],[5,1],{'tansig' 'purelin'}, 'trainlm' ); net.trainParam.epochs=20; net.trainParam.lr=0.1; net.trainParam.goal=0.00001; net.trainParam.show=100; net.trainParam.showWindow=0; %BP神经网络训练 net=train(net,inputn',outputn'); %BP神经网络预测 an=sim(net,inputn'); %输出结果反归一化 BPoutput=postmnmx (an,minoutput,maxoutput); %预测误差和作为个体适应度值 error=sum(abs(an-BPoutput)); 调用的误差函数errorBP function error=errorBP %%用于计算模拟退火算法产生新解时所需的BP神经网络的误差 %随机产生200组输入数据x、输出数据y input=10*rand(2,200)-5; output=zeros(1,200); for i=1:200 output(i)=fx2(input(:,i)); end %随机选择100组训练数据和100组预测数据 input_train=input(:,1:100)'; output_train=output(1:100)'; input_test=input(:,101:200)'; output_test=output(101:200)'; %训练数据归一化 [inputn,mininput,maxinput]=premnmx(input_train); [outputn,minoutput,maxoutput]=premnmx(output_train); %构建BP神经网络 net=newff([-5 5;-5 5],[5,1],{'tansig' 'purelin'}, 'trainlm' ); %配置网络参数(迭代次数、学习率、目标) net.trainParam.epochs=100; net.trainParam.lr=0.1; net.trainParam.goal=0.00001; %BP神经网络训练 net=train(net,inputn',outputn'); %预测数据归一化 inputn_test=tramnmx(input_test,mininput,maxinput); %BP神经网络预测输出 an=sim(net,inputn_test'); %输出结果反归一化 BPoutput=postmnmx (an,minoutput,maxoutput); %计算误差 error=sum(abs(BPoutput-output_test'))/100;

用nnstart训练好的神经网络来预测数据(鸢尾花数据)结果为什么和神经网络内输出的内容形式不一样?

我用nnstart训练了一个BP神经网络,用其自带的MATLAB Function将这个神经网络保存, 然后在指令里调用,用来做150组鸢尾花数据集里面其中一组数据的预测。 我训练的时候是用的[0 1 0 ]这种格式定义的分类也就是输出的: ![图片说明](https://img-ask.csdn.net/upload/201909/01/1567309766_356407.png) ![图片说明](https://img-ask.csdn.net/upload/201909/01/1567309048_619273.png) 保存为myneural network ![图片说明](https://img-ask.csdn.net/upload/201909/01/1567309197_264326.png) 然后我输入一组鸢尾花的数据进行预测 ![图片说明](https://img-ask.csdn.net/upload/201909/01/1567309346_231580.png) 然后得到一个[0 0.7 0.2]的预测结果,和神经网络的输入维度倒是一样,但是不是[0 1 0]的这种格式,为什么啊? 第一次接触这个很多东西网上查不到,请各位神仙指点一下。

bp神经网络的参数问题

都说bp神经网络有45个参数,这45个参数到底是什么,我是一个新手,在此求教,谢谢各位大神了!

如何将MFCC做为BP神经网络的数据

matlab中我们如何讲n*36 的MFCC系数做为BP神经网络的输入数据,因为单个数据应该以一行36个特征做为输入数据,那我在进行mfcc运算时得到的是n乘36的矩阵。求解如何解决这样的问题

MATLAB怎么实现bp神经网络仿真

如图所示,数据即有文字,又有数值,最后一列为输出,前面为输入,怎么实现bp神经网络仿真]![图片说明](https://img-ask.csdn.net/upload/201809/17/1537183744_466736.png)

bp神经网络不能正常分类

``` import numpy as np import sklearn from sklearn import datasets from matplotlib import pyplot as plt class Config: eta=0.003#学习率 input_dim=2#输入层神经元个数,即样本的特征数,这里是横纵坐标 hidden_dim=3#隐层神经元个数 output_dim=2#输出层神经元个数,分别代表P(y=0)与P(y=1),取较大者为数据点的分类 N=200#训练集样本数 def generate_data(): np.random.seed(0) X,Y=sklearn.datasets.make_moons(Config.N,noise=0.20)#大小为N的二分类非线性可分数据集 return X,Y def softmax(z):#输出层softmax函数,输出为yhat。为了数值稳定防止溢出,进行平移。 z-=np.max(z) return np.exp(z)/np.sum(np.exp(z)) def predict(x,model): ''' 得到预测输出 ''' p=np.dot(x,model['v'])+model['b']#隐层输入 a=np.tanh(p)#隐层输出 z=np.dot(a,model['w'])+model['c']#输出层输入 yhat=softmax(z)#输出层输出(概率) return np.argmax(yhat,axis=1),yhat#选概率大的作为分类 def CrossEntropyLoss(y,yhat):#单个样本交叉熵损失函数 return -np.sum(y*np.log(yhat)) def totalLoss(X,Y,model):#训练集总损失 Loss=0.0 for i in range(len(X)): ypred,yhat=predict(X[i],model) Loss+=CrossEntropyLoss(Y[i],yhat) return Loss/len(X) def build_model(X,Y,iters): ''' 在[0,1)区间内随机初始化连接权重与阈值 ''' v=np.random.random((Config.input_dim,Config.hidden_dim))#输入层到隐层的连接权重 w=np.random.random((Config.hidden_dim,Config.output_dim))#隐层到输出层的连接权重 b=np.random.random((1,Config.hidden_dim))#隐层的阈值 c=np.random.random((1,Config.output_dim))#输出层的阈值 model={} for t in range(iters): for i in range(len(X)):#一个训练样本就更新一次参数 #forward propagation p=np.dot(X[i],v)+b#隐层输入 a=np.tanh(p)#隐层输出 z=np.dot(a,w)+c#输出层输入 yhat=softmax(z)#输出层输出(概率) #back propagation g=yhat-Y[i]#输出层梯度 w+=-Config.eta*np.dot(a.transpose(),g)#更新隐层到输出层的连接权重 c+=-Config.eta*g#更新输出层的阈值 h=np.dot(g,w.transpose())*(1-np.power(a,2))#隐层梯度 v+=-Config.eta*np.dot(np.array([X[i]]).transpose(),h)#更新输入层到隐层的连接权重 b+=-Config.eta*h#更新隐层的阈值 model={'v': v, 'w': w, 'b': b, 'c': c} if(t%100==0): print "after",t,"iteration:",totalLoss(X,Y,model) return model def plot_decision_boundary(pred_func,X,Y): #设置最小最大值, 加上一点外边界 x_min,x_max=X[:,0].min()-.5,X[:,0].max()+.5 y_min,y_max=X[:,1].min()-.5,X[:,1].max()+.5 h=0.01 # 根据最小最大值和一个网格距离生成整个网格 xx,yy=np.meshgrid(np.arange(x_min,x_max,h),np.arange(y_min,y_max,h)) # 对整个网格预测边界值 Z,Yhat=pred_func(np.c_[xx.ravel(),yy.ravel()]) Z=Z.reshape(xx.shape) # 绘制边界和数据集的点 plt.contourf(xx,yy,Z,cmap=plt.cm.Spectral) plt.scatter(X[:,0],X[:,1],c=Y,cmap=plt.cm.Spectral) def NN(): X,Y=generate_data()#产生数据集 model=build_model(X,Y,1500)#建立神经网络模型,iters为迭代次数 plot_decision_boundary(lambda x: predict(x,model),X,Y) plt.title("Decision Boundary for hidden layer size %d" %Config.hidden_dim) plt.show() if __name__ == "__main__": NN() ``` 求解!!

BP神经网络,分六类的话用什么激活函数比较好

请问如果用BP神经网络,将数据分六类的话用什么激活函数比较好?

为什呢matlab建立BP神经网络正确率很低?

![图片说明](https://img-ask.csdn.net/upload/201912/26/1577352928_112062.jpg) 上图: 1.蓝色部分表示一类数据,红色部分表示二类数据 2.数据都只有一个特征向量为y轴的值 3.x轴为数据在训练集中的下标 问题: 本来应该是很简单的,利用一个特征向量(y轴的值)作为分类依据,将红色数据和蓝色数据分开。 然而,利用matlab建立BP神经网络,训练结果有时候非常好,测试正确率能达到98以上,有时候正确率只有20~30。 ``` %训练样本 train_sample=[trainECG']; %21*25 %测试样本 test_sample=[testECG']; %输出类别,建立HotCode t1=[trainLabel']; t2=[testLabel']; train_result = ind2vec(t1); test_result = ind2vec(t2); net = newff(train_sample,train_result,4,{ 'tansig' 'purelin' } ,'traingdx'); net.trainParam.show=50; % 显示训练迭代过程 net.trainParam.epochs=15000; % 最大训练磁数 net.trainParam.goal=0.001; % 要求训练精度 net.trainParam.lr=0.02; % 学习率 net=init(net); %网络初始化 [net,tr]=train(net,train_sample,train_result); % 网络训练 result_sim=sim(net,test_sample); % 利用得到的神经网络仿真 result_sim_ind=vec2ind(result_sim); correct=0; for i=1:length(result_sim_ind) if result_sim_ind(i)==t2(i); correct=correct+1; end end disp('正确率:'); correct / length(result_sim_ind) ```

简单BP神经网络训练鸢尾花

大佬们,请问result为什么大于0.8就是1,小于0.2是0,其他值则为0.5啊? ``` import pandas as pd import matplotlib.pyplot as plt import numpy as np import tensorflow as tf iris = pd.read_csv("Iris.txt",names=['a','b','c','d','class']) iris['class'][iris['class']=="Iris-setosa"] = 0 iris['class'][iris['class']=="Iris-versicolor"] = 0.5 iris['class'][iris['class']=="Iris-virginica"] = 1 iris_class1 = iris[iris["class"]==0] iris_class2 = iris[iris["class"]==0.5] iris_class3 = iris[iris["class"]==1] temp = np.array(iris) train_data = np.delete(temp,range(len(temp))[::3],axis=0) test_data = temp[::3,:] """ 添加神经网络层的函数 inputs -- 输入内容 in_size -- 输入尺寸 out_size -- 输出尺寸 activation_function --- 激励函数,可以不用输入 """ def add_layer(inputs,in_size,out_size,activation_function=None): W = tf.Variable(tf.zeros([in_size,out_size])+0.01) #定义,in_size行,out_size列的矩阵,随机矩阵,全为0效果不佳 b = tf.Variable(tf.zeros([1,out_size])+0.01) #不建议为0 Wx_plus_b = tf.matmul(inputs,W) + b # WX + b if activation_function is None: #如果有激励函数就激励,否则直接输出 output = Wx_plus_b else: output = activation_function(Wx_plus_b) return output X = tf.placeholder(tf.float32,[None,4]) Y = tf.placeholder(tf.float32,[None,1]) output1 = add_layer(X,4,8,activation_function = tf.nn.sigmoid) output2 = add_layer(output1,8,3,activation_function = tf.nn.sigmoid) temp_y = add_layer(output2,3,1,activation_function = tf.nn.sigmoid) #先求平方,再求和,在求平均 loss = tf.reduce_mean(tf.reduce_sum(tf.square(Y-temp_y),reduction_indices=[1])) #通过优化器,以0.001的学习率,减小误差loss train_step = tf.train.AdamOptimizer(0.001).minimize(loss) #拆分训练集数据集,分为输入和输出 train_x = train_data[:,:4] train_y = train_data[:,-1:] sess = tf.Session() sess.run(tf.global_variables_initializer()) save_process = [] for i in range(90000):#训练90000次 sess.run(train_step,feed_dict={X:train_x,Y:train_y}) if i%300 == 0:#每300次记录损失值(偏差值) save_process.append(sess.run(loss,feed_dict={X:train_x,Y:train_y})) #第前两个数据比较大,踢掉 # save_process = np.delete(save_process,[0,1]) # plt.plot(range(len(save_process)),save_process) def compare_numpy(a,b,is_num=False): """比较两个维度相同的数组,返回相同数字个数/相似度""" num = 0 for i in range(len(a)): if a[i]==b[i]: num+=1 return num if is_num else num/len(a) test_x = test_data[:,:4] test_y = test_data[:,-1:] result = sess.run(temp_y,feed_dict={X:test_x}) result[result > 0.8] = 1 result[result < 0.2] = 0 result[(result < 0.8) & ( result > 0.2)] = 0.5 print("总数:",len(test_data)," 准确个数:",compare_numpy(result,test_y,True)," 精确度:",compare_numpy(result,test_y)) ```

YOLOv3目标检测实战:训练自己的数据集

YOLOv3目标检测实战:训练自己的数据集

150讲轻松搞定Python网络爬虫

150讲轻松搞定Python网络爬虫

实用主义学Python(小白也容易上手的Python实用案例)

实用主义学Python(小白也容易上手的Python实用案例)

我说我不会算法,阿里把我挂了。

不说了,字节跳动也反手把我挂了。

立方体线框模型透视投影 (计算机图形学实验)

计算机图形学实验 立方体线框模型透视投影 的可执行文件,亲测可运行,若需报告可以联系我,期待和各位交流

2019 AI开发者大会

2019 AI开发者大会

组成原理课程设计(实现机器数的真值还原等功能)

实现机器数的真值还原(定点小数)、定点小数的单符号位补码加减运算、定点小数的补码乘法运算和浮点数的加减运算。

C/C++跨平台研发从基础到高阶实战系列套餐

一 专题从基础的C语言核心到c++ 和stl完成基础强化; 二 再到数据结构,设计模式完成专业计算机技能强化; 三 通过跨平台网络编程,linux编程,qt界面编程,mfc编程,windows编程,c++与lua联合编程来完成应用强化 四 最后通过基于ffmpeg的音视频播放器,直播推流,屏幕录像,

MFC一站式终极全套课程包

该套餐共包含从C小白到C++到MFC的全部课程,整套学下来绝对成为一名C++大牛!!!

软件测试2小时入门

软件测试2小时入门

三个项目玩转深度学习(附1G源码)

三个项目玩转深度学习(附1G源码)

计算机图形学-球的光照模型课程设计

计算机图形学-球的光照模型,有代码完美运行,有课程设计书

Linux常用命令大全(非常全!!!)

Linux常用命令大全(非常全!!!) 最近都在和Linux打交道,感觉还不错。我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因,比较短小但却功能强大。我将我了解到的命令列举一下,仅供大家参考: 系统信息 arch 显示机器的处理器架构 uname -m 显示机器的处理器架构 uname -r 显示正在使用的内核版本 d...

因为看了这些书,我大二就拿了华为Offer

四年了,四年,你知道大学这四年我怎么过的么?

深度学习原理+项目实战+算法详解+主流框架(套餐)

深度学习系列课程从深度学习基础知识点开始讲解一步步进入神经网络的世界再到卷积和递归神经网络,详解各大经典网络架构。实战部分选择当下最火爆深度学习框架PyTorch与Tensorflow/Keras,全程实战演示框架核心使用与建模方法。项目实战部分选择计算机视觉与自然语言处理领域经典项目,从零开始详解算法原理,debug模式逐行代码解读。适合准备就业和转行的同学们加入学习! 建议按照下列课程顺序来进行学习 (1)掌握深度学习必备经典网络架构 (2)深度框架实战方法 (3)计算机视觉与自然语言处理项目实战。(按照课程排列顺序即可)

fakeLocation13.5.1.zip

fakeLocation13.5.1 虚拟定位 ios13.5.1的最新驱动下载,iPhone/iPad免越狱虚拟定位工具Location-cleaned驱动已更新

UnityLicence

UnityLicence

Python可以这样学(第一季:Python内功修炼)

Python可以这样学(第一季:Python内功修炼)

Python+OpenCV计算机视觉

Python+OpenCV计算机视觉

土豆浏览器

土豆浏览器可以用来看各种搞笑、电影、电视剧视频

【数据结构与算法综合实验】欢乐连连看(C++ & MFC)案例

这是武汉理工大学计算机学院数据结构与算法综合实验课程的第三次项目:欢乐连连看(C++ & MFC)迭代开发代码。运行环境:VS2017。已经实现功能:开始游戏、消子、判断胜负、提示、重排、计时、帮助。

php+mysql学生成绩管理系统

学生成绩管理系统,分三个模块:学生,教师和管理员。 管理员模块:负责学生、老师信息的增删改;发布课程信息的增删改,以便让学生选课;审核老师提交的学生成绩并且打印成绩存档;按照课号查询每个课号的学生成绩

多功能数字钟.zip

利用数字电子计数知识设计并制作的数字电子钟(含multisim仿真),该数字钟具有显示星期、24小时制时间、闹铃、整点报时、时间校准功能

推荐24个国外黄色网站欣赏

在中国清朝,明黄色的衣服只有皇子才有资格穿,慢慢的黄色在中国就成了高贵的颜色。在人们的色彩印象中,黄色也表现为暂停。所以当你的网页设计采用黄色的时候,会让人们在你的网页前停留。 黄色,就像橙色和红色,黄色也是一个暖色。它有大自然、阳光、春天的涵义,而且通常被认为是一个快乐和有希望的色彩。黄色是所有色相中最能发光的颜色,给人轻快,透明,辉煌,充满希望的色彩印象。 黄色是一个高可见的色...

u-boot-2015.07.tar.bz2

uboot-2015-07最新代码,喜欢的朋友请拿去

一学即懂的计算机视觉(第一季)

一学即懂的计算机视觉(第一季)

学生成绩管理系统(PHP + MYSQL)

做的是数据库课程设计,使用的php + MySQL,本来是黄金搭配也就没啥说的,推荐使用wamp服务器,里面有详细的使用说明,带有界面的啊!呵呵 不行的话,可以给我留言!

Windows版YOLOv4目标检测实战:训练自己的数据集

Windows版YOLOv4目标检测实战:训练自己的数据集

C++语言基础视频教程

C++语言基础视频教程

玩转Python-Python3基础入门

玩转Python-Python3基础入门

相关热词 c# dbml文件 修改 c#遍历tree c# 能够控制单片机 c#对象写入数据库 c# 添加activex c#2005 json c# 数据库在云端 c# 字符串移位加密 c#禁用滚轮 c#实体类list去重复
立即提问