A. matlab2012a BP神經網路函數擬合
newff函數出錯,但是該函數的用法沒錯。你說你換了電腦,可能你現在用的電腦上的matlab版本太老,沒有神經網路工具箱。安裝高版本Matlab應該就能解決。
newff函數的格式為:
net=newff(PR,[S1 S2 ...SN],{TF1 TF2...TFN},BTF,BLF,PF),函數newff建立一個可訓練的前饋網路。輸入參數說明:
PR:Rx2的矩陣以定義R個輸入向量的最小值和最大值;
Si:第i層神經元個數;
TFi:第i層的傳遞函數,默認函數為tansig函數;
BTF:訓練函數,默認函數為trainlm函數;
BLF:權值/閾值學習函數,默認函數為learngdm函數;
PF:性能函數,默認函數為mse函數。
B. matlab神經網路工具箱問題
線性神經網路的構建:
net=newlin(PR,S,ID,LR)
PR--Rx2階矩陣,R個輸入元素的最小最大矩陣
S---輸出層神經元個數
ID--輸入延遲向量,默認值為[0]
IR--學習率,默認值為0.01
net = newlin([-1 1;-1 1],1); 表示設計的是一個雙輸入單輸出線性神經網路
P = [1 2 2 3; 2 1 3 1];表示輸入樣本有四個,每一列就是一個輸入樣本
又比如假設我們期望的輸出為 T=[1 2 3 4],則一個簡單的神經網路如下:
>>net = newlin([-1 1;-1 1],1);%創建初始網路
P=[1 2 2 3; 2 1 3 1]%輸入
T=[1 2 3 4]%期望的輸出
net=newlind(P,T);%用輸入和期望訓練網路
Y=sim(net,P)%模擬,可以看到模擬結果Y和期望輸出T的接近程度
P =
1 2 2 3
2 1 3 1
T =
1 2 3 4
Y =
0.8889 2.1667 3.0556 3.8889
樓主可以從《matlab神經網路與應用(第二版)》董長虹 開始入門神經網路的matlab實現
參考資料:《matlab神經網路與應用(第二版)》
C. 在matlab『nftool』神經網路擬合工具箱界面,網路訓練運行結果出現此種情況是哪裡出現了問題啊。。。
那種情況啊,貼個圖看看
D. matlab多元擬合,有4個自變數
不算解答,給個建議,因為這類問題本身無解。
先看看每個單一變數和y的關系圖:plot(x(:,i),y)看看什麼圖形
觀察圖形然後做適當的變數變換後進行多元線性回歸
線性回歸本質上是找出大體的關系
E. matlab怎麼打開神經網路工具箱
1單擊Apps,在搜索框中輸入neu,下方出現了所有神經網路工具箱。neural net fitting 是我們要使回用的神答經網路擬合工具箱。
2
在下界面中點擊next
3
單擊load example data set,得到我們需要的測試數據。
4
單擊import
5
單擊next
6
單擊next
7
數字「10」表示有10個隱含層。單擊next。
8
單擊train,開始訓練。
9
訓練過程跳出的小窗口。
10
訓練結果。其中MSE表示均方差,R 表示相關系數。單擊next。
11
這里可以調整神經網路,也可以再次訓練。單擊next。
12
在這里,可以保存結果。如果不需要,直接finish。
F. matlab中,關於多元函數的擬合matlab程序如何書寫(4自變數1因變數)
題主的(4自變數1因變數)多元函數的擬合matlab程序。可以用nlinfit非線性回歸函數來做(也可以用lsqcurvefit函數)。實現代碼:
x1=[0.55 0.65 0.65 0.65 0.65 0.55 0.55 0.55 0.65]';
x2=[1.6 1.6 1.4 1.6 1.4 1.4 1.6 1.4 1.4]';
x3=[20 20 20 10 10 20 20 20 20]';
x4=[10 10 10 10 10 10 12 12 12]';
Y=[1.848 3.145 3.337 3.022 3.188 1.97 1.63 1.621 2.534]';
X=[x1 x2 x3 x4];
n=length(x1);
a0=rand(1,5);
func=@(a,X)(a(1)+a(2)*X(:,1)+a(3)*X(:,2)+a(4)*X(:,3)+a(5)*X(:,4));
[a,r,J] = nlinfit(X,Y,func,a0);a
Y1=func(a,X);
[Y Y1]
運行上述代碼,可以得到
a1= -1.52778571412534;a2=11.4823809522886;a3= -0.359047619087202;a4=0.00441190476147387;a5=-0.23363095238449
多元函數表達式,y=a1+a2*x1+a3*x2+a4*x3+a5*x4
nlinfit與lsqcurvefit兩者區別並不太大,前者用回歸的方法來求解,而後者用最小二乘法來求解,兩者都可以用於非線性函數和線性函數。
G. MATLAB中NETLAB工具箱如何實現預測多元數據是否需要用到其他的工具箱
數據准備:
我們以一組多項式數據為例,進行示例,假如多項式是y=4x^3+3x^2+2產生的數據,x取0到3之間間隔為0.3的數。具體數據如下:
調用工具箱:
關於如何調用工具箱我在其他經驗中有詳細的介紹,有興趣的可以查看。
這里我們用命令cftool進行調用擬合工具箱,在MATLAB主窗口中輸入 cftool 回車
可以看到如下擬合工具箱界面
擬合操作步驟:
首先我們將要擬合的數據選入到工具箱中,如下圖,在紅圈處,點擊向下三角,分別將要擬合的x y 選入,然後點擊右側的最上方的下三角,然後選擇polynomial( 多項式),下面的degree是階數,也就是x的最高次數,選擇不同的degree,在圖的左下角是擬合的結果,包括擬合的系數以及方差相關系數等,右側是數據點,以擬合曲線。
結果分析:
我們擬合的時候,一般情況下不知道要擬合的多項式是幾階的,我們一般調節degree都是從1逐漸增大,只要精度符合要求,就可以了,並不是精度越高越高。
擬合結果說明:
Linear model Poly3:
f(x) = p1*x^3 + p2*x^2 + p3*x + p4
Coefficients (with 95% confidence bounds):
p1 = 4 (4, 4)
p2 = 3 (3, 3)
p3 = 4.593e-15 (-3.266e-14, 4.185e-14)
p4 = 2 (2, 2)
Goodness of fit:
SSE: 2.386e-28
R-square: 1
Adjusted R-square: 1
RMSE: 5.839e-15
從以上可以看到最終擬合的y關於x的函數為:
f(x)=4*x^3+3*x^2+4.593e-15*x+2
我們可以看到一次項的系數為4.593e-15,實際上就是4.593*10^(-15),這個數量級完全可以認為是0,所以擬合的結果我們認為是:
f(x)=4*x^3+3*x^2+2
這里的方差SSE數量級為10的負28次方,相關系數 R-square=1,說明擬合的結果很好。
H. matlab神經網路工具箱分別怎麼用
1單擊Apps,在搜索框中輸入neu,下方出現了所有神經網路工具箱。neural net fitting 是我們要使用的神經網路擬合工具箱。 2 在下界面中點擊next 3 單擊load example data set,得到我們需要的測試數據。
I. 神經網路工具箱與編程實現哪個更好
首先說一下神經網路工具箱,在我剛剛接觸神經網路的時候,我就利用工具箱去解決問題,這讓我從直觀上對神經網路有了了解,大概清楚了神經網路的應用范圍以及它是如何解決實際問題的。
工具箱的優勢在於我們不用了解其內部的具體實現,更關注於模型的建立與問題的分析,也就是說,如果拋開演算法的錯誤,那麼用工具箱來解決實際問題會讓我們能把更多的精力放在實際問題的模型建立上,而不是繁瑣的演算法實現以及分析上。
其次談談編程實現神經網路,由於個人能力有限,所以只是簡單的編程實現過一些基本神經演算法,總的體會就是編程的過程讓我對演算法有了更透徹的理解,可以更深入的分析其內部運行機制,也同樣可以實現一下自己的想法,構建自己的神經網路演算法。
以上是我對兩個方法的簡單理解。那究竟哪個方法更好些呢?我個人的看法是要看使用者的目的是怎樣的。
如果使用者的目的在於解決實際問題,利用神經網路的函數逼近與擬合功能實現自己對實際問題的分析與模型求解,那我的建議就是利用神經網路工具箱,學過編程語言的人都知道,無論用什麼編程語言將一個現有的演算法編程實現達到可用的結果這一過程都是及其繁瑣與復雜的,就拿簡單的經典BP神經網路演算法來說,演算法本身的實現其實並不難,可根據不同人的能力,編出來的程序的運行效率是大不相同的,而且如果有心人看過matlab的工具箱的源碼的話,應該能發現,裡面採用的方法並不完全是純粹的BP經典演算法,一個演算法從理論到實現還要依賴與其他演算法的輔助,計算機在計算的時候難免出現的舍入誤差,保證權值的時刻改變,這都是編程人員需要考慮的問題,可能還有很多的問題
這樣的話,如果自己單人編程去實現神經網路來解決實際問題的話,整體效率就沒有使用工具箱更好。
如果使用者的目的在於分析演算法,構造新的網路的話那當然首推自己編程實現。個人的感覺就是,如果真的是自己完全編程實現的話,對演算法會有很深入的理解,在編程的調試過程中,也會領悟到很多自己從前從來沒有考慮過的問題,像權值的初始的隨機選取應該怎麼樣,將訓練樣本按什麼順序輸入等,這都是編程實現所要考慮的問題,不同的方法得到的結果會有很大的差距。
J. matlab 神經網路工具箱可以擬合帶虛數變數嗎
方法/步驟
1
單擊Apps,在搜索框中輸入neu,下方出現了所有神經網路工具箱。neural net fitting 是我們要使用的神經網路擬合工具箱。
2
在如下界面中點擊next
單擊load example data set,得到我們需要的測試數據。
單擊import
單擊next
單擊next
數字「10」表示有10個隱含層。單擊next。
單擊train,開始訓練。
訓練過程跳出的小窗口。
訓練結果。其中MSE表示均方差,R 表示相關系數。單擊next。
這里可以調整神經網路,也可以再次訓練。單擊next。
在這里,可以保存結果。如果不需要,直接finish。