一个简单的用于预测的BP神经网络模型
一個簡單的用于預測的BP神經網絡模型
這是一個簡單的bp神經網絡模型,其中的數據是銑削實驗的數據,數量較少,但作為神經網絡的例子正好。讀者可以根據自己的需要將自己的數據換進去,其中,傳遞函數和學習函數都可以代換。隱層根據自己的需要進行調整,該模型可直接進行運行,對于學習BP神經網絡非常好。
%構建訓練樣本中的輸入向量
P1= [3.67 2.32 3.67 2.32 3.67 2.32 3.67 2.32 3.67 2.32 3.67 2.32 3.67 2.32 3.67;
0.178 0.28 0.28 0.178 0.178 0.28 0.28 0.178 0.178 0.28 0.28 0.178 0.178 0.28 0.28;
1 1 1 2.25 2.25 2.25 2.25 1 1 1 1 2.25 2.25 2.25 2.25;
0.12 0.12 0.12 0.12 0.12 0.12 0.12 0.28 0.28 0.28 0.28 0.28 0.28 0.28 0.28];
P2=[1.83 4.65 2.95 2.95 2.95 2.95 2.95 2.95;0.223 0.223 0.142 0.351 0.223 0.223 0.223 0.223;
1.5 1.5 1.5 1.5 0.67 3.37 1.5 1.5;0.18 0.18 0.18 0.18 0.18 0.18 0.08 0.4];
P3=[2.95 2.95 2.95 2.95 2.95 2.95;0.223 0.223 0.223 0.223 0.223 0.223;
1.5 1.5 1.5 1.5 1.5 1.5;0.18 0.18 0.18 0.18 0.18 0.18];
P=[P1 P2 P3];
%構建訓練樣本中的輸出向量
T=[1.45 2 1.3 2.1 1.4 2 1.45 3.05 2.2 3.1 2.7 3.5 2.45 2.4 1.75 3.3 1.05 2.1 2.5 2 2.2 1.45 2.6 1.6 1.6 2.2 1.85 2.3 2.7];
%數據歸一化處理,使用mapminmax歸一化函數
[Pn,PS]=mapminmax§;
[Tn,PS]=mapminmax(T);
%創建一個BP神經網絡,隱含層含有8個神經元,傳遞函數為tansig
%中間層一個神經元,傳遞函數為tansig,訓練函數為traingdx
net=newff(minmax(Pn),[100,150,1],{‘tansig’,‘tansig’,‘tansig’},‘traingdx’);
net.trainParam.epochs=5000;%訓練步數為5000
net.trainParam.goal=0.001;%目標誤差為0.001
net.trainParam.lr=0.001;%學習速率為0.001
net.trainParam.mc=0.9;%動量為0.9
%訓練一個BP神經網絡
net=train(net,Pn,Tn);
%輸入測試數據,并將其歸一化處理
P_test=[2.32;0.178;1;0.12];
Pt=mapminmax(‘apply’,P_test,PS);
Y=sim(net,Pt)
%將預測輸出做反歸一化處理
Yn=mapminmax(‘reverse’,Y,PS)
總結
以上是生活随笔為你收集整理的一个简单的用于预测的BP神经网络模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【读书笔记】《华为工作法》
- 下一篇: 创业计划书学习笔记二——创业计划书的目录