亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ssvm.m

?? 支持向量機一個很好的
?? M
字號:
function [w, gamma, trainCorr, testCorr, cpu_time, nu] = ssvm(C,d,k,nu,output,step_size,tol,maxIter,w0,gamma0)
% version 1.1
% last revision: 01/24/03
%=============================================================================
%Usage: [w gamma trainCorr testCorr nu] = 
%            ssvm (C,d,k,nu,output,step_size,tol,maxIter,w0,gamma0)
%
%
%A and d are both required, everything else has a default
%An example: [w gamma train test nu] = ssvm(A, d, 10);
%
%==============================================================================
%Input parameters:
%
%	A: 	Represent data points (mxn)                        
%	d: 	d is a m dimensional vector of 1's or -1's         
%			containing the corresponding labels for            
%			each data point in A.
%	k: 	way to divide the data set into test and training set
%		if k = 0: simply run the algorithm without any correctness
%							calculation
%	        if k = 1: run the algorithm and calculate correctness on 
%							the whole data set
%		if k = any value less than the # of rows in the data set:
%		       divide up the data set into test and training
%		       using k-fold method
%		if k = # of rows in the data set:
%					use the 'leave 1' method
%						
%	output:	0 - no output, 1 - produce output, default is 0
%	nu:		weighted parameter
%                       -1 - easy estimation
%                       0  - hard estimation
%                       any other value - used as nu by the algorithm
%                       default - 0
%	[w0; gamma0]: 	Initial point
%	step_size:	1 indicates Armijo stepsize, 0 indicates Newton stepsize
%
%==============================================================================
%Output parameters:                                                    
%
%	w:		the normal vector of the classifier                  
%	gamma:		the threshold                                  
%	trainCorr:	training set correctness
%	testCorr:	test set correctness
%	cpu_time:	time elapsed
%       nu:             estimated value (or specified value) of nu
%==============================================================================
%Technical Notes:                                                     
%
%    1. In order to handle a massive dataset this code       
%       takes the advantage of sparsity of the Hessian        
%       matrix.                                              
%                                                            
%    2. We used the limit values of the sigmoid function      
%       and p-function as the smoothing parameter \alpha     
%       goes to infinity when we computer the Hessian        
%       matrix and the gradient of objective function.       
%                                                            
%    3. Decrease nu when the classifier is overfitting       
%       the training data                                     
%                                                            

if nargin<10
gamma0=0;
end
if nargin<9
s=size(C,2);
w0=zeros(s,1);
end
if nargin<8
maxIter=1000;
end
if nargin<7
tol=10e-8;
end
if nargin<6
step_size=1;
end
if nargin<5
output = 0;
end

if ((nargin<4)|(nu==0))
     nu = EstNuLong(C,d);  % default is hard estimation
elseif nu==-1  % easy estimation
  nu = EstNuShort(C,d);
end

if nargin<3
k = 0; 
end

r=randperm(size(d,1));d=d(r,:);C=C(r,:);    % random permutation  

tic;

%move one point in A a little if perfectly balanced
Cback=C;dback=d;   %  backup C and d
[sm sn]=size(C);
ma=C(find(d==1),:); mb=C(find(d==-1),:);
[s1 s2]=size(ma);
c1=sum(ma)/s1;
[s1 s2]=size(mb);
c2=sum(mb)/s1;
if c1==c2
   nu = 1;  % use 1 for perfectly balanced situation
   C(3,:)=C(3,:)+.001*norm(C(3,:)-c1,inf)*ones(1,sn);

end

trainCorr = 0;
testCorr = 0;


   % if k=0 no correctness is calculated, just run the algorithm
if k==0
  [w, gamma, iter] = core(C,d,nu,w0,gamma0,step_size,tol,maxIter,output);
  cpu_time = toc;
  if output==1
  fprintf(1,'\nNumber of Iterations: %d',iter);
   fprintf(1,'\nElapse time: %10.2f\n',cpu_time);
  end
  return
end

%if k==1 only training set correctness is calculated  
if k==1
  [w, gamma, iter] = core(C,d,nu,w0,gamma0,step_size,tol,maxIter,output);
  trainCorr = correctness(C,d,w,gamma);
  cpu_time = toc;
  if output == 1
    fprintf(1,'\nTraining set correctness: %3.2f%% \n',trainCorr);
fprintf(1,'\nNumber of Iterations: %d',iter);
    fprintf(1,'\nElapse time: %10.2f\n',cpu_time);
  end
  return
end

    accuIter = 0;
indx = [0:k];
indx = floor(sm*indx/k);    %last row numbers for all 'segments'
% split trainining set from test set
for i = 1:k
 Ctest = []; dtest = [];Ctrain = []; dtrain = [];

Ctest = C((indx(i)+1:indx(i+1)),:);
dtest = d(indx(i)+1:indx(i+1));

Ctrain = C(1:indx(i),:);
Ctrain = [Ctrain;C(indx(i+1)+1:sm,:)];
dtrain = [d(1:indx(i));d(indx(i+1)+1:sm,:)];

 [w, gamma, iter] = core(Ctrain,dtrain,nu,w0,gamma0,step_size,tol,maxIter,output);
tmpTrainCorr = correctness(Ctrain,dtrain,w,gamma);
tmpTestCorr = correctness(Ctest,dtest,w,gamma);

 if output==1
   fprintf(1,'________________________________________________\n');
fprintf(1,'Fold %d\n',i);
fprintf(1,'Training set correctness: %3.2f%%\n',tmpTrainCorr);
fprintf(1,'Testing set correctness: %3.2f%%\n',tmpTestCorr);    
fprintf(1,'Number of iterations: %d\n',iter);
fprintf(1,'Elapse time: %10.2f\n',toc);
end

trainCorr = trainCorr + tmpTrainCorr;
testCorr = testCorr + tmpTestCorr;
accuIter = accuIter + iter; % accumulative iterations

end % end of for (looping through test sets)

trainCorr = trainCorr/k;
testCorr = testCorr/k;
cpu_time=toc/k;

if output == 1
fprintf(1,'==============================================');
  fprintf(1,'\nTraining set correctness: %3.2f%%',trainCorr);
  fprintf(1,'\nTesting set correctness: %3.2f%%',testCorr);
fprintf(1,'\nAverage number of iterations: %d',accuIter/k);
fprintf(1,'\nAverage cpu_time: %10.2f\n',cpu_time);
end

%%%%%%%%%%%%%%%%%%%%% Core SSVM function %%%%%%%%%%%%%%%%%%%%%%%%%%%

function [w, gamma, iteration] = core(C,d,nu,w0,gamma0,step_size,tol,maxIter,output)

%separating the classes
iteration=0;
[ma, n] = size(C(find(d==1),:)); mb = size(C(find(d==-1),:),1);
C=[C(find(d==1),:);-C(find(d==-1),:)]; % equals "DA" in SSVM paper
d = [ones(ma,1); -ones(mb,1)]; % equal "De" is the paper

flag = 1;
H = zeros(ma+mb,1);
rv = zeros(ma+mb,1); e = ones(ma+mb,1);
while flag > tol & iteration< maxIter   %SZ
%tol 5flag is the optimality condition (smaller the better)
% put a counter to count iterations.
iteration=iteration+1;    %SZ
% Find a search direction!

  temp = C*w0 - gamma0*d; % D(Aw0 -e \gamma0)
  rv =  e -temp; % e - D(Aw0 - e \gamma0)
  % Compute the Hessian matrix              
  H = (e + sign(rv))/2;
  Ih= find(H ~= 0); ih = length(Ih); % We only consider the nonzero part
  Hs = H(Ih); T = speye(ih);
  SH = C(Ih,:)'*spdiags(Hs, 0, T);
  P = SH*C(Ih,:);  q = SH*d(Ih);
  clear SH;
  oneh = norm(Hs,1);
  Q = speye(n+1) +nu*[P,(-q); (-q'), oneh]; % Q is the Hessian matrix
  
  % Compute the gradient  
  prv = max(rv,0); % (e- D(Aw0 - e \gamma0))_+
  gradz = [(w0 - nu*C'*prv); gamma0+nu*d'*prv];
       
  if  gradz'*gradz > tol  % Check the First Order Opt. condition
      b =  - gradz;
      z = Q\b;  % z is the Newton direction

      % Compute the gap! (Only when you want to use the Armijo 's rule!)
  
      gap = z'*gradz;

      % Find the step size & Update to the new point !
       if step_size~=1
           w0 = w0+z(1:n);
           gamma0 = gamma0+z(n+1);
       else
           stepsize = armijo(C,d,w0,gamma0,nu,z, gap);
           w0 = w0 +stepsize*z(1:n);
           gamma0= gamma0 +stepsize*z(n+1);
       end   
      flag = z'*z;
  else
    flag = tol;     %SZ
  end;

% if output==1
%    if (((iteration/10)==floor(iteration/10))|(iteration==1))
%     fprintf(1,'__________________________________________________\n');
%     fprintf(1,'Iteration        Optimality         Elapse Time\n');
%    end
%     fprintf(1,'%d           %12.5f      %10.2f      \n',iteration,flag,toc);
% end


end;  %while


w = w0; gamma = gamma0;
return  % end of core function

%%%%%%%%%%%%%%%% correctness calculation %%%%%%%%%%%%%%%%

function corr = correctness(AA,dd,w,gamma)

p=sign(AA*w-gamma);
corr=length(find(p==dd))/size(AA,1)*100;
return

%%%%%%%%%%%%%Armijo stepsize function%%%%%%%%%%%%%%%%%%%%%%%

function stepsize = armijo(C,d,w,gamma,nu,zd, gap)

% Input
%   C = [A; -B]; equals "DA" in SSVM paper
%   d: equals "De" in SSVM paper (i.e. the diagonal of "D")
%   w, gamma: Current point
%   nu: weight parameter 
%   gap: defined in ssvm code
% Note:
%   You will need objf.m to evaluate the objective function value.
% 

temp =1; n = length(w);
obj1 =  objf(C,d, w,gamma,nu);
w2 = w+temp*zd(1:n); 
gamma2 = gamma +temp*zd(n+1);
obj2 = objf(C,d,w2,gamma2,nu);
diff = obj1 - obj2;
while diff  < -0.05*temp*gap

      temp = 0.5*temp;
      w2 = w+temp*zd(1:n); 
      gamma2 = gamma +temp*zd(n+1);
      obj2 = objf(C,d, w2,gamma2,nu);
      diff = obj1 - obj2;

end;
stepsize = temp;
return
%%%%%%%%%%%%%%%objf.m%%%%%%%%%%%%%%%%%%%%%%%%%%%
function value = objf(C,d,w,gamma,nu)
%
% Evaluate the function value
%

temp = abs(d)-(C*w - gamma*d);
v = max(temp,0);
value = 0.5*(nu*v'*v + w'*w + gamma^2);
return

%%%%%%%%%%%%%%EstNuLong%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% hard way to estimate nu if not specified by the user
function value = EstNuLong(C,d)

[m,n]=size(C);e=ones(m,1);
H=[C -e];
if m<201
H2=H;d2=d;
else
r=rand(m,1);
[s1,s2]=sort(r);
H2=H(s2(1:200),:);
d2=d(s2(1:200));
end

lamda=1;
[vu,u]=eig(H2*H2');u=diag(u);p=length(u);
yt=d2'*vu;
lamdaO=lamda+1;

cnt=0;
while (abs(lamdaO-lamda)>10e-4)&(cnt<100)
     cnt=cnt+1;
     nu1=0;pr=0;ee=0;waw=0;
     lamdaO=lamda;
     for i=1:p
     nu1= nu1 + lamda/(u(i)+lamda);
pr= pr + u(i)/(u(i)+lamda)^2;
ee= ee + u(i)*yt(i)^2/(u(i)+lamda)^3;
waw= waw + lamda^2*yt(i)^2/(u(i)+lamda)^2;
   end
lamda=nu1*ee/(pr*waw);
end

value = lamda;
if cnt==100
    value=1;
end    
return

%%%%%%%%%%%%%%%%%EstNuShort%%%%%%%%%%%%%%%%%%%%%%%

% easy way to estimate nu if not specified by the user
function value = EstNuShort(C,d)

value = 1/(sum(sum(C.^2))/size(C,2));
return


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
www激情久久| 国产aⅴ综合色| 亚洲国产精品精华液网站| 成人欧美一区二区三区1314| 久久九九全国免费| 久久蜜臀精品av| 国产网站一区二区| 国产女人18水真多18精品一级做| xf在线a精品一区二区视频网站| 精品国产一二三区| 欧美r级在线观看| 精品久久久三级丝袜| 欧美成人国产一区二区| 精品理论电影在线| 国产欧美日韩久久| 亚洲欧美偷拍另类a∨色屁股| 亚洲欧美电影一区二区| 亚洲国产日韩一级| 麻豆久久久久久| 国产精品一区久久久久| 成人精品一区二区三区四区| 色综合久久久久久久久久久| 欧美视频精品在线| 欧美一区二区三区视频免费| 精品久久久久av影院| 国产日韩欧美不卡在线| 综合激情网...| 午夜精品久久久久久久久久| 伦理电影国产精品| 懂色av一区二区夜夜嗨| 色8久久人人97超碰香蕉987| 777久久久精品| 国产情人综合久久777777| 亚洲欧美日韩国产一区二区三区| 天堂资源在线中文精品| 精品一区在线看| 成人激情电影免费在线观看| 欧美中文一区二区三区| 精品久久久久久最新网址| 中文字幕中文字幕中文字幕亚洲无线| 亚洲一区二区三区美女| 黄页视频在线91| 91成人网在线| 精品国产一区a| 亚洲激情六月丁香| 精品一区二区三区日韩| 色综合一区二区三区| 日韩精品中文字幕在线一区| 国产精品美女久久久久久久久 | 精品国产乱码久久| 国产精品久久三区| 免费成人在线视频观看| 99国产精品一区| 精品国免费一区二区三区| 亚洲欧美日韩综合aⅴ视频| 麻豆精品久久精品色综合| 色婷婷国产精品| 久久久久久久久久久久久女国产乱| 一区二区三区精品视频| 国产一区二区三区精品视频| 欧美三级一区二区| 国产精品全国免费观看高清 | av一区二区久久| 欧美一区二区在线不卡| 中文字幕中文字幕在线一区 | 欧美色图12p| 中文字幕的久久| 黄网站免费久久| 欧美精品久久一区| 亚洲视频资源在线| 国产福利视频一区二区三区| 欧美一区二区三区在线| 亚洲一卡二卡三卡四卡无卡久久| 国产精品一区二区x88av| 欧美一区二区三区视频免费| 亚洲一区二区三区四区五区黄| 成人黄色免费短视频| 久久―日本道色综合久久| 日韩黄色小视频| 欧美日韩电影一区| 亚洲在线成人精品| 99re66热这里只有精品3直播 | 中文字幕日韩精品一区| 韩国三级在线一区| 日韩女同互慰一区二区| 性做久久久久久免费观看欧美| 色女孩综合影院| 亚洲女同女同女同女同女同69| 国产精品2024| 久久综合色天天久久综合图片| 免费观看久久久4p| 欧美一级在线免费| 日韩va欧美va亚洲va久久| 欧美日韩小视频| 午夜视频一区二区三区| 欧美日韩一本到| 亚洲夂夂婷婷色拍ww47| 欧美亚洲日本一区| 性做久久久久久久免费看| 精品视频全国免费看| 亚洲电影中文字幕在线观看| 欧美三级一区二区| 天堂一区二区在线免费观看| 在线播放中文一区| 蜜臀精品久久久久久蜜臀| 日韩免费在线观看| 国产在线一区观看| 国产喂奶挤奶一区二区三区| 国产99精品国产| 日韩一区在线播放| 欧美在线免费观看视频| 亚洲国产精品一区二区久久| 欧美影视一区在线| 日本女优在线视频一区二区| 精品美女在线播放| 国产精品1024| 亚洲欧美日韩成人高清在线一区| 欧洲国内综合视频| 丝袜诱惑制服诱惑色一区在线观看 | 日韩av二区在线播放| 欧美一区二区视频在线观看2020| 蜜桃av一区二区三区电影| 久久综合久久综合亚洲| 国产99一区视频免费| 亚洲欧美日韩中文播放| 欧美日韩日本视频| 老司机精品视频在线| 国产欧美一区在线| 在线精品观看国产| 日本亚洲天堂网| 久久精品一区八戒影视| 99国产精品久久| 日韩 欧美一区二区三区| 337p日本欧洲亚洲大胆色噜噜| 国产aⅴ综合色| 亚洲在线视频免费观看| 精品日韩99亚洲| 成人不卡免费av| 亚洲www啪成人一区二区麻豆 | 日韩av不卡一区二区| 久久综合久色欧美综合狠狠| 91在线视频播放| 日本在线播放一区二区三区| 国产欧美一区视频| 欧美日韩一区二区在线观看视频| 久久99国内精品| 亚洲老妇xxxxxx| 亚洲精品一区二区三区蜜桃下载| 91婷婷韩国欧美一区二区| 香蕉久久夜色精品国产使用方法 | 欧美日韩黄色一区二区| 国产乱子伦一区二区三区国色天香| 亚洲欧美日韩国产另类专区| 日韩免费一区二区三区在线播放| 97se亚洲国产综合在线| 日本aⅴ精品一区二区三区 | 麻豆精品久久精品色综合| 中文字幕亚洲不卡| 精品久久久久久久久久久久包黑料| 色婷婷精品久久二区二区蜜臀av| 激情成人午夜视频| 亚洲成人免费在线观看| 国产精品视频九色porn| 日韩欧美色综合| 欧美性xxxxx极品少妇| 成人免费看视频| 久久狠狠亚洲综合| 亚洲成人自拍偷拍| 一区精品在线播放| 欧美精品一区二区三区在线播放| 色8久久精品久久久久久蜜| 国产成人福利片| 精品一区二区三区在线观看国产| 洋洋成人永久网站入口| 国产精品人人做人人爽人人添| 日韩精品中文字幕一区| 欧美日韩国产片| 一本一道久久a久久精品| 国产成人av电影在线| 日本欧美在线观看| 亚洲成人在线观看视频| 亚洲欧美日韩电影| 中文字幕中文乱码欧美一区二区| 精品sm在线观看| 制服丝袜亚洲色图| 欧美系列亚洲系列| 99re亚洲国产精品| 高清av一区二区| 国产一区二区久久| 久久99久久久久久久久久久| 天天色天天操综合| 亚洲国产一区二区在线播放| 亚洲色图另类专区| 自拍偷自拍亚洲精品播放| 国产欧美视频一区二区| 久久男人中文字幕资源站| 精品国产区一区| 欧美成人一区二区三区| 欧美一级高清大全免费观看| 欧美二区乱c少妇|