⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 svcm_test.m

📁 svm_increasement Matlab Program
💻 M
字号:
function [ypred,indw] = svcm_test(xtest,ytest,xtrain,ytrain,atrain,btrain);% function [ypred,indw] = svcm_test(xtest,ytest,xtrain,ytrain,atrain,btrain);%%	support vector classification machine%	test set cross-validation%	soft margin%	uses "kernel.m"%%	xtrain: (Ltrain,N) with Ltrain: number of points; N: dimension%	ytrain: (Ltrain,1) containing class labels (-1 or +1)%	xtest:  (Ltest,N) with Ltest: number of points; N: dimension%	ytest:  (Ltest,1) containing class labels (-1 or +1)%	atrain: alpha coefficients (from svcm_train on xtrain and ytrain)%	btrain: offest coefficient (from svcm_train on xtrain and ytrain)%%	ypred:  predicted y; (Ltest,1) containing class labels (-1 or +1)%	indw:   indices of wrongly classified test points[Lxtrain,Nxtrain] = size(xtrain);[Lytrain,Nytrain] = size(ytrain);[Lxtest,Nxtest] = size(xtest);[Lytest,Nytest] = size(ytest);if Nxtrain~=Nxtest    fprintf('svcm_test error: xtrain and xtest different number of dimensions (%g/%g)\n',...	 Nxtrain, Nxtest);    returnelseif Lytrain~=Lxtrain    fprintf('svcm_test error: xtrain and ytrain different number of data points (%g/%g)\n',...	 Lxtrain, Lytrain);    returnelseif Lytest~=Lxtest    fprintf('svcm_test error: xtest and ytest different number of data points (%g/%g)\n',...	 Lxtest, Lytest);    returnelseif Nytrain~=1    fprintf('svcm_test error: ytrain not a single variable (%g)\n', Nytrain);    returnelseif Nytest~=1    fprintf('svcm_test error: ytest not a single variable (%g)\n', Nytest);    returnelseif any(ytrain~=-1&ytrain~=1)    fprintf('svcm_test error: ytrain takes values different from {-1,+1}\n');    returnelseif any(ytest~=-1&ytest~=1)    fprintf('svcm_test error: ytest takes values different from {-1,+1}\n');    returnendfprintf('Support vector soft-margin classifier\n')fprintf('%4g test points\n', Lxtest)fprintf('%4g dimensions\n', Nxtest)ac = atrain(atrain>0);xc = xtrain(atrain>0,:);yc = ytrain(atrain>0);ypred = 2*(kernel(xtest,xc)*(ac.*yc)+btrain>0)-1;	% +/- 1indw = find(ypred~=ytest);nw = length(indw);fprintf('%4g test points incorrectly classified (%3.1f%%)\n\n', nw, nw/Lxtest*100)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -