資源簡介
基于支持向量機的故障診斷,代碼中有一些注釋,可以根據里面的注釋修改,會測的最佳正確率,以及預測樣本和測試樣本的誤差,真實可信
代碼片段和文件信息
function?[r_Ydr_errr_Ys]?=?SVM(traindatagoaldataperiod)
%?使用循環語句對每一種參數組合都進行回歸找出最優結果
%?r_Yd?最優的回歸結果
%?r_err?最優回歸的樣本誤差
%?r_Ys?預測結果
%?------------------------------------------------------------%
%?Training?Samples?構造訓練樣本
%?clear;
%?data=load(‘testData.txt‘);
n=length(traindata);?????%?樣本數量
X=traindata(1:n-period:);
X=X.‘;???????????????????%?訓練樣本d×n的矩陣n為樣本個數d為樣本維數
Y=goaldata(period+1:n:);
Y=Y.‘;???????????????????%?訓練目標1×n的矩陣n為樣本個數值為期望輸出
Xs=traindata(n-period+1:n:);
Xs=Xs.‘;?????????????????%?預測的自變量d×1的矩陣d為樣本維數
%?------------------------------------------------------------%
%初始化一個較大的樣本誤差
r_err=1e10;
%?------------------------------------------------------------%
%尋找適合的懲罰系數,不敏感損失函數的參數以及核函數
for?c=0:2
??for?e=0:2
??????for?ty=1:?4???????????%確定核函數類型
???????????%?------------------------------------------------------------%
???????????%?ker??核參數(結構體變量)
???????????%?the?following?fields:
???????????%???type???-?linear?:??k(xy)?=?x‘*y
???????????%????????????poly???:??k(xy)?=?(x‘*y+c)^d
???????????%????????????gauss??:??k(xy)?=?exp(-0.5*(norm(x-y)/s)^2)
???????????%????????????tanh???:??k(xy)?=?tanh(g*x‘*y+c)
???????????%???degree?-?Degree?d?of?polynomial?kernel?(positive?scalar).
???????????%???offset?-?Offset?c?of?polynomial?and?tanh?kernel?(scalar?negative?for?tanh).
???????????%???width??-?Width?s?of?Gauss?kernel?(positive?scalar).
???????????%???gamma??-?Slope?g
評論
共有 條評論