資源簡介
本次實驗為使用LS-SVM預測,注意使用的為最小二乘方法,謝謝大家使用!另:本次實驗為回歸預測

代碼片段和文件信息
function?ypred?=?ls_svm(xXtypargamakernelType)
%本文使用LS-SVM方法使用的為最小二乘直接求解
%需要指出本次實驗直接構建的
%[01‘]????[b]???????=[0]?????
%[1核矩陣]?[alpha]???=[y]
%將直接開始進行程序x為訓練集,X為預測集,y為訓練label
%by?lihao
%CDUT
[nm]?=?size(x);
y?=?[0;y];
I?=?ones(n1);
%進行核矩陣構建徑向基核函數
omiga?=?zeros(nn);
switch?kernelType
????%rbf里面par(1)為sigmapar(2)為gama
????%Poly里面par(2)階數
????%此中核函數有RBFPOLYTANH
????case?‘rbf‘
????????for?i?=?1:n
????????????xi?=?x(i:);
????????????deltaX?=?(x?-?repmat(xin1)).^2;
????????????omiga(i:)?=?exp(-sum(deltaX2)/(par(1)^2));
????????end
????case?‘Poly‘
????????omiga?=?(x?*?x‘?+?par(1)).^par(2);
????case?‘tanh‘
????????omiga?=?tanh(par(1).*x*x‘+par(2));
end
%構建矩陣A
A?=?(omiga?+?(1/gama)*eye(n));
A?=?[IA];
B?=?[0I‘];
A?=?[B;A];
%求b和alpha參數
Z?=?A^-1;
b_alpha?=?Z?*?y;
b?=?b_alpha(1:);
alpha?=?b_alpha(2:end:);
%開始預測
[zq]=size(Xt);
ypred?=?zeros(z1);
omigal?=?zeros(nz);
switch?kernelType
????%rbf里面par(1)為sigmapar(2)為gama
????%Poly里面par(2)階數
????%此中核函數有RBFPOLYTRUCATED?L1TANH
????%rbf為L2范數,trucated?l1為L1范數
????case?‘rbf‘
????????for?i?=?1:n
????????????xi?=?x(i:);
????????????deltaX?=?(Xt?-?repmat(xiz1)).^2;
????????????omigal(i:)?=?exp(-sum(deltaX2)/(par(1)^2));
????????end
????case?‘Poly‘
????????omigal?=?(x?*?Xt‘?+?par(1)).^par(2);
????case?‘tanh‘
????????omigal?=?tanh(par(1).*x*x‘+par(2));
end
ypred?=?omigal‘?*?alpha?+?b;
end
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????1543??2017-11-30?11:45??ls_svm.m
- 上一篇:《爬蟲入門到精通課程》視頻課件.zip
- 下一篇:JTable詳細使用demo
評論
共有 條評論