⑴ 請問哪裡有比較好的Matlab SVM支持向量機的教學視頻
請問你用的是台大林智仁教授的SVM工具箱么? 如果是的話,這里有一個不錯的版視頻:《神經網路libsvm-mat-加強工具權箱介紹》
視頻所講內容:
附錄:libsvm-mat-加強工具箱 介紹
內容簡介:
1 libsvm-mat工具箱介紹
2 libsvm-mat工具箱的安裝
3 libsvm-mat工具箱的基本函數介紹
4 libsvm-mat-加強工具箱介紹
5 libsvm-mat-加強工具箱輔助函數插件詳細介紹與使用
6 一些關於MATLAB使用的小技巧(快捷鍵等)介紹
在1-5中會有穿插介紹,6中進行總結
⑵ 如何在MATLAB中添加SVM函數工具箱
1、將下載的svm工具箱添加至matlab安裝目錄下
1、單獨下載的工具箱
2、把新的工具箱拷貝到某個目錄(我的是D:\soft\matlab2011b\toolbox)。
注意:你要是添加的很多個m文件,那就把這些m文件直接拷到再下一層你想要的工具箱的文件夾里
例如,我要添加的是支持向量機工具箱,在剛才的文件夾下我已經有svm(支持向量機工具箱)文件夾了,但有的m文件還沒有,我就把新的m文件統統拷到D:\soft\matlab2011b\toolbox \svm目錄下了。如果你連某工具箱(你打算添加的)的文件夾都沒有,那就把文件夾和文件一起拷到D:\soft\matlab2011b\toolbox 下。
先把工具箱保存到MATLAB安裝目錄的根目錄下面,然後運行matlab---->file---->set path---->add folder 然後把你的工具箱文件夾添加進去就可以了
3、在matlab的菜單file下面的set path把它( D:\soft\matlab2011b\toolbox \svm )加上。
4、 把路徑加進去後在file→Preferences→General的Toolbox Path Caching里點擊update Toolbox Path Cache更新一下。
⑶ 如何把數據輸入進支持向量機Matlab工具箱1.0 - Epsilon-SVR, Epsilon回歸演算法中
沒想到,我也要做這方面的工作,這段時間,一起研究下。。
⑷ matlab中如何繪制支持向量機的分類超平面 使用哪個函數
Hyperplane(超平面)超過3維的,本來就沒法畫啊。
如果是三維或是二維,那還是可以畫版的。三維可以用surf函數畫平面權,二維的可以用plot函數直線。
% draw plane: Ax+By+Cz+D=0
A=2; B=4; C=-3; D=4;
[xx,yy]=meshgrid(-5:1:5,-5:1:5);
zz=(-D-A*xx-B*yy)/C;
figure; surf(xx,yy,zz); shading interp;
% draw line: Ax+By+C=0
A=2; B=4; C=-3;
x=-5:1:5;
y=(-C-A*x)/B;
figure; plot(x,y);
⑸ 支持向量機的matlab程序現在有幾種,哪幾種
LSSVM .lisvm spider svmlight SVMKM 陸震波的svm ,stevegun的svm, matlab自帶的svm等等等,太多了
⑹ 可以使用的支持向量機(SVM)MATLAB程序,最好是和粒子群演算法(PSO)或者遺傳演算法(GA)耦聯的程序,謝謝
拉格朗日
function y=lagrange(x0,y0,x)
n=length(x0);m=length(x);
for i=1:m
z=x(i);
s=0.0;
for k=1:n
p=1.0;
for j=1:n
if j~=k
p=p*(z-x0(j))/(x0(k)-x0(j));
end
end
s=p*y0(k)+s;
end
y(i)=s;
end
SOR迭代法的Matlab程序
function [x]=SOR_iterative(A,b)
% 用SOR迭代求解線性方程組,矩陣A是方陣
x0=zeros(1,length(b)); % 賦初值
tol=10^(-2); % 給定誤差界
N=1000; % 給定最大迭代次數
[n,n]=size(A); % 確定矩陣A的階
w=1; % 給定鬆弛因子
k=1;
% 迭代過程
while k=N
x(1)=(b(1)-A(1,2:n)*x0(2:n)')/A(1,1);
for i=2:n
x(i)=(1-w)*x0(i)+w*(b(i)-A(i,1:i-1)*x(1:i-1)'-A(i,i+1:n)*x0(i+1:n)')/A(i,i);
end
if max(abs(x-x0))=tol
fid = fopen('SOR_iter_result.txt', 'wt');
fprintf(fid,'\n********用SOR迭代求解線性方程組的輸出結果********\n\n');
fprintf(fid,'迭代次數: %d次\n\n',k);
fprintf(fid,'x的值\n\n');
fprintf(fid, '%12.8f \n', x);
break;
end
k=k+1;
x0=x;
end
if k==N+1
fid = fopen('SOR_iter_result.txt', 'wt');
fprintf(fid,'\n********用SOR迭代求解線性方程組的輸出結果********\n\n');
fprintf(fid,'迭代次數: %d次\n\n',k);
fprintf(fid,'超過最大迭代次數,求解失敗!');
fclose(fid);
end
Matlab中龍格-庫塔(Runge-Kutta)方法原理及實現龍格-庫塔(Runge-Kutta)方法是一種在工程上應用廣泛的高精度單步演算法。由於此演算法精度高,採取措施對誤差進行抑制,所以其實現原理也較復雜。該演算法是構建在數學支持的基礎之上的。龍格庫塔方法的理論基礎來源於泰勒公式和使用斜率近似表達微分,它在積分區間多預計算出幾個點的斜率,然後進行加權平均,用做下一點的依據,從而構造出了精度更高的數值積分計算方法。如果預先求兩個點的斜率就是二階龍格庫塔法,如果預先取四個點就是四階龍格庫塔法。一階常微分方程可以寫作:y'=f(x,y),使用差分概念。
(Yn+1-Yn)/h= f(Xn,Yn)推出(近似等於,極限為Yn')
Yn+1=Yn+h*f(Xn,Yn)
另外根據微分中值定理,存在0t1,使得
Yn+1=Yn+h*f(Xn+th,Y(Xn+th))
這里K=f(Xn+th,Y(Xn+th))稱為平均斜率,龍格庫塔方法就是求得K的一種演算法。
利用這樣的原理,經過復雜的數學推導(過於繁瑣省略),可以得出截斷誤差為O(h^5)的四階龍格庫塔公式:
K1=f(Xn,Yn);
K2=f(Xn+h/2,Yn+(h/2)*K1);
K3=f(Xn+h/2,Yn+(h/2)*K2);
K4=f(Xn+h,Yn+h*K3);
Yn+1=Yn+h*(K1+2K2+2K3+K4)*(1/6);
所以,為了更好更准確地把握時間關系,應自己在理解龍格庫塔原理的基礎上,編寫定步長的龍格庫塔函數,經過學習其原理,已經完成了一維的龍格庫塔函數。
仔細思考之後,發現其實如果是需要解多個微分方程組,可以想像成多個微分方程並行進行求解,時間,步長都是共同的,首先把預定的初始值給每個微分方程的第一步,然後每走一步,對多個微分方程共同求解。想通之後發現,整個過程其實很直觀,只是不停的逼近計算罷了。編寫的定步長的龍格庫塔計算函數:
function [x,y]=runge_kutta1(ufunc,y0,h,a,b)%參數表順序依次是微分方程組的函數名稱,初始值向量,步長,時間起點,時間終點(參數形式參考了ode45函數)
n=floor((b-a)/h);%求步數
x(1)=a;%時間起點
y(:,1)=y0;%賦初值,可以是向量,但是要注意維數
for ii=1:n
x(ii+1)=x(ii)+h;
k1=ufunc(x(ii),y(:,ii));
k2=ufunc(x(ii)+h/2,y(:,ii)+h*k1/2);
k3=ufunc(x(ii)+h/2,y(:,ii)+h*k2/2);
k4=ufunc(x(ii)+h,y(:,ii)+h*k3);
y(:,ii+1)=y(:,ii)+h*(k1+2*k2+2*k3+k4)/6;
%按照龍格庫塔方法進行數值求解
end
調用的子函數以及其調用語句:
function dy=test_fun(x,y)
dy = zeros(3,1);%初始化列向量
dy(1) = y(2) * y(3);
dy(2) = -y(1) + y(3);
dy(3) = -0.51 * y(1) * y(2);
對該微分方程組用ode45和自編的龍格庫塔函數進行比較,調用如下:
[T,F] = ode45(@test_fun,[0 15],[1 1 3]);
subplot(121)
plot(T,F)%Matlab自帶的ode45函數效果
title('ode45函數效果')
[T1,F1]=runge_kutta1(@test_fun,[1 1 3],0.25,0,15);%測試時改變test_fun的函數維數,別忘記改變初始值的維數
subplot(122)
plot(T1,F1)%自編的龍格庫塔函數效果
title('自編的 龍格庫塔函數')
⑺ 人工智慧要做實驗了,題目是數字識別,用matlab實現svm演算法,就是支持向量機
這個Matlab裡面有啊。直接help svmtrain ,就可以看到。
⑻ 如何用BP模型和支持向量機模型在MATLAB中實現預測
如何用BP模型和支持來向量機模型源在MATLAB中實現預測
根據你的描述: BPNN可以用matlab里的神經網路工具箱,GUI的界面或者matlab源程序都可以 SVM推薦用Libsvm或Lssvm,網上都有下載額
⑼ matlab 支持向量機工具箱怎麼用
有的工具箱有用戶交互界面,可以直接在MATLAB的啟動菜單下進入;
有的沒有用戶界面,但是有相關的程序(或者說函數)供調用;即使有界面的工具箱,也是有相應的函數的。
可以從幫助(Help)中查詢MATLAB的工具箱的詳細使用方法。
幫助裡面對主題進行了分類,進入工具箱那一類即可
⑽ 粒子群演算法優化支持向量機參數的matlab演算法,小弟畢設做這個課題,非常感謝!
參照書籍 工程優化設計與Matlab實現 李萬祥主編 清華大學出版社2010.2月出版 有源程序 不過裡面的M文件沒有電子版 得自己輸 精通MATLAB最優化計算 這本書里也有