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

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

?? n_psvm.m

?? n類PSVm 算法程序
?? M
字號:
function [w,gamma, trainCorr, testCorr, cpu_time, nu, mu]=n_psvm(A,d,rr,k,nu,mu,output,bal);
% version 1.1
% last revision: 01/24/03
%==========================================================================================
% Usage:    [w,gamma,trainCorr, testCorr,cpu_time,nu, mu]=n_psvm(A,d,rr,k,nu,mu,output,bal)
%
% A and d are both required, everything else has a default
% An example: [w gamma train test time nu] = n_psvm(A,d,0.5,10);
%
% Input:
% A is a matrix containing m data in n dimensions each.
% d is a m dimensional vector of 1's or -1's containing
% the corresponding labels for each example in A.
% rr: reduce rate, default is 100% -> not reduced
% k is k-fold for correctness purpose
% nu - the weighting factor.
%                       -1 - easy estimation
%                       0  - hard estimation
%                       any other value - used as nu by the algorithm
%                       default - 0
%    mu:    mu in calculating kernel, 0 means take the default estimation
% output - indicates whether you want output
%
% If the input parameter bal is 1
% the algorithm weighs the classes depending on the
% number of points in each class and balance them. 
% It is useful when  the number of point in each class
% is very unbalanced.
%
% Output:
% w,gamma are the values defining the separating
% Hyperplane w'x-gamma=0 such that:
%
% w'x-gamma>0 => x belongs to A+
% w'x-gamma<0  => x belongs to A-
% w'x-gamma=0 => x can belongs to both classes
% nu - the estimated or specified value of nu
%
% For details refer to the paper:
% "Proximal Support Vector Machine Classifiers"
% available at: www.cs.wisc.edu/~gfung
% For questions or suggestions, please email:
% Glenn Fung, gfung@cs.wisc.edu
% Sept 2001.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

[m,n]=size(A);
r=randperm(size(d,1));d=d(r,:);A=A(r,:);    % random permutation

%move one point in A a little if perfectly balanced
AA=A;dd=d;
ma=A(find(d==1),:); mb=A(find(d==-1),:);
[s1 s2]=size(ma);
     c1=sum(ma)/s1;
[s1 s2]=size(mb);
     c2=sum(mb)/s1;
if (c1==c2)
     nu=1;
     A(3,:)=A(3,:)+0.01*norm(A(3,:)-c1,inf)*ones(1,n);
end

% default values for input parameters
if nargin<8
   bal=0;
end 

if nargin<7
   output=0;
end

if nargin<6
mu=EstMu(A,d);
end

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

if (nargin<4)
     k=0;
end

if (nargin<3)
rr=1;
end

[H,v]=HV(A,d,bal);  % calculate H and v

trainCorr = 0;
testCorr = 0;

if (nu==0)
  nu = EstNuLong(H,d,m);
elseif nu==-1  % easy estimation
  nu = EstNuShort(H,d);
end

% if k=0 no correctness is calculated, just run the algorithm
if k==0
  A = calcKer(A,rr,mu,output);
  [H,v]=HV(A,d,bal);  
  tic;
  [w, gamma] = core(H,v,nu);
  cpu_time = toc;
  fprintf(1,'\nElapsed time: %10.2f\n\n',cpu_time);
  return
end

%if k==1 only training set correctness is calculated
if k==1
[kA,Abar] = calcKer(A,rr,mu,output);
tic;
[H,v]=HV(kA,d,bal);
  [w, gamma] = core(H,v,nu);
  trainCorr = correctness(A,Abar,d,w,gamma,mu);
  cpu_time = toc;
  if output == 1
  fprintf(1,'\nTraining set correctness: %3.2f%% \n',trainCorr);
  fprintf(1,'\nElapse time: %10.2f\n',toc);
  end
  return
end

%% if k= folds

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

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

Ctrain = A(1:indx(i),:);
Ctrain = [Ctrain;A(indx(i+1)+1:m,:)];
dtrain = [d(1:indx(i));d(indx(i+1)+1:m,:)];

[kCtrain,Abar] = calcKer(Ctrain,rr,mu,output);
tic;
[H, v] = HV(kCtrain,dtrain,bal);
[w, gamma] = core(H,v,nu);
thisToc = toc;

tmpTrainCorr = correctness(Ctrain,Abar,dtrain,w,gamma,mu);
tmpTestCorr = correctness(Ctest,Abar,dtest,w,gamma,mu);

 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,'Elapse time: %10.2f\n',thisToc);
 end

 trainCorr = trainCorr + tmpTrainCorr;
testCorr = testCorr + tmpTestCorr;
cpu_time = cpu_time + thisToc;

 end % end of for (looping through test sets)

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

if output == 1
  fprintf(1,'___________________________________________________\n');
  fprintf(1,'\nAverage training set correctness: %3.2f%% \n',trainCorr);
  fprintf(1,'\nAverage testing set correctness: %3.2f%% \n',testCorr);
  fprintf(1,'\nAverage CPU time is: %3.2f \n',cpu_time);
end

return

%%%%%%%%%%%%%%%% core function to calcuate w and gamma %%%%%%%%
function [w, gamma]=core(H,v,nu)

     n=size(H,2);
v=(speye(n)/nu+H'*H)\v;
w=v(1:n-1);gamma=v(n);

return

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

function corr = correctness(Atest,Abar,dd,w,gamma,mu)

k = Rec_Kernel(Atest,Abar,mu);
p = sign(k*w - gamma);
corr=length(find(p==dd))/size(Atest,1)*100;
return

%%%%%%%%%%%%%       EstNuLong     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% use to estimate nu
function lamda=EstNuLong(H,d,m)

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

%%% function to calculate H and v %%%%%%%%%%%%%
function [H,v]=HV(A,d,bal);

[m,n]=size(A);e=ones(m,1);

if (bal==0)
     H=[A -e];
     v=(d'*H)';
else
     H=[A -e];
     mm=e;
     m1=find(d==-1);
     mm(m1)=(1/length(m1));
     m2=find(d==1);
     mm(m2)=(1/length(m2));
     mm=sqrt(mm);
     N=spdiags(mm,0,m,m);
     H=N*H;
    %keyboard
    v=(d'*N*H)';
end

 %%%%%%%%%%%%%%calcKer%%%%%%%%%%%%%%%%%%%%%%%
function [A,Abar] = calcKer(A,rr,mu,output)

  [sm sn]=size(A);
  % calculate kernel
  if output==1
  fprintf(1,'\nCalculating kernel . . .\n');
  end
  rrows = floor(rr*sm);  % reduced number of rows
  indx = rand(sm,1);
  [s1 s2]=sort(indx);
  Abar = A(s2(1:rrows),:)';
  A = Rec_Kernel(A,Abar,mu);
  return;

%%%%%%%%%%%%%%%%%%%%%%%EstMu%%%%%%%%%%%%%
function mu = EstMu(A,d)

Aplus = A(find(d==1),:); Aminus=A(find(d==-1),:);

AplusRow = size(Aplus,1);
AminusRow = size(Aminus,1);
x=(sum(Aplus,1)/AplusRow + sum(Aminus,1)/AminusRow);
mu = 1/(1 + x*x');
return;







?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品一区二区成人精品| 成人污视频在线观看| 国产亚洲污的网站| 欧美网站大全在线观看| 国产一区二区三区在线观看免费| 亚洲美女少妇撒尿| www成人在线观看| 欧美日韩国产综合一区二区| 国产1区2区3区精品美女| 日韩黄色免费网站| 亚洲猫色日本管| 国产三级精品三级在线专区| 欧美精品久久99| 色婷婷香蕉在线一区二区| 久久电影网电视剧免费观看| 亚洲午夜电影网| 亚洲天堂av一区| 中文一区在线播放| 精品久久久久久久久久久院品网| 欧美视频一区在线| 色婷婷亚洲婷婷| 色综合视频一区二区三区高清| 国产成人av一区| 国产综合久久久久久久久久久久| 午夜精品成人在线视频| 亚洲免费大片在线观看| 中文字幕在线观看不卡视频| 国产日韩欧美一区二区三区乱码 | 国产成人综合网站| 久久国产婷婷国产香蕉| 五月天精品一区二区三区| 亚洲图片欧美色图| 亚洲福利视频一区| 首页国产欧美日韩丝袜| 午夜国产精品一区| 五月天一区二区三区| 日韩一区欧美二区| 性欧美疯狂xxxxbbbb| 午夜天堂影视香蕉久久| 日韩激情一二三区| 日本少妇一区二区| 久久精品国产秦先生| 久久er99热精品一区二区| 久久精品国产亚洲a| 黑人巨大精品欧美黑白配亚洲| 久久精品99国产精品| 久久99国产精品麻豆| 国产精品综合网| av电影在线观看一区| 91原创在线视频| 在线观看视频欧美| 在线电影国产精品| 精品久久人人做人人爽| 337p日本欧洲亚洲大胆色噜噜| 国产亚洲欧美激情| 中文字幕+乱码+中文字幕一区| 亚洲欧洲性图库| 亚洲素人一区二区| 亚洲国产裸拍裸体视频在线观看乱了| 午夜影院在线观看欧美| 日韩av中文在线观看| 精品一区二区三区蜜桃| 国产91精品一区二区麻豆亚洲| 懂色av噜噜一区二区三区av | 日韩精品一区二区三区老鸭窝| 精品国产一区二区国模嫣然| 久久精品免视看| 亚洲品质自拍视频| 日韩av在线播放中文字幕| 国产真实乱对白精彩久久| zzijzzij亚洲日本少妇熟睡| 欧美视频中文字幕| 久久伊99综合婷婷久久伊| 自拍偷拍亚洲综合| 日韩 欧美一区二区三区| 国产在线观看一区二区| 972aa.com艺术欧美| 日韩区在线观看| 国产精品成人免费在线| 日韩国产欧美三级| 成人激情小说网站| 91精品在线一区二区| 国产欧美一区二区精品性色| 亚洲地区一二三色| 国产成人欧美日韩在线电影| 欧美色国产精品| 久久精品视频网| 亚洲国产精品久久艾草纯爱| 国产传媒一区在线| 91.成人天堂一区| 自拍av一区二区三区| 久久精品久久精品| 91国内精品野花午夜精品| 精品国精品自拍自在线| 一卡二卡欧美日韩| 国产成人免费高清| 在线综合视频播放| 一区二区三区四区av| 成人h动漫精品| 精品国产91九色蝌蚪| 亚洲成人三级小说| 99re免费视频精品全部| 久久奇米777| 日韩精品午夜视频| 一本到不卡精品视频在线观看| 久久久久久99精品| 蜜桃视频在线一区| 欧美日韩国产在线播放网站| 国产精品白丝在线| 国产精品88av| 26uuu久久综合| 麻豆精品在线看| 欧美高清视频一二三区| 亚洲免费电影在线| av一本久道久久综合久久鬼色| 久久久国产午夜精品| 免费看日韩精品| 欧美高清视频不卡网| 夜夜嗨av一区二区三区中文字幕 | 蜜臀久久久久久久| 欧美日韩视频一区二区| 一区二区三区丝袜| 日本道精品一区二区三区| 国产精品视频免费看| 国产盗摄精品一区二区三区在线 | 欧美精品在线视频| 亚洲午夜三级在线| 欧美日韩精品免费观看视频| 亚洲狠狠丁香婷婷综合久久久| av网站免费线看精品| 欧美激情一二三区| 国产传媒日韩欧美成人| 中文一区二区在线观看| 国产成人精品免费在线| 国产精品视频一二三区| eeuss鲁片一区二区三区在线观看| 久久久91精品国产一区二区精品| 国内精品国产成人国产三级粉色| 日韩欧美一二三| 国产一区二区三区免费看| 久久久久久久性| 福利一区二区在线| 中文字幕一区不卡| 色成年激情久久综合| 亚洲图片欧美视频| 欧美一区二区三区免费视频| 免播放器亚洲一区| 久久综合狠狠综合久久激情| 国产一区美女在线| 中文字幕精品一区二区精品绿巨人| 大胆亚洲人体视频| 亚洲另类春色校园小说| 欧美性大战久久久久久久蜜臀| 亚洲18色成人| www国产成人免费观看视频 深夜成人网| 国产伦理精品不卡| 国产精品系列在线| 日本道在线观看一区二区| 天堂午夜影视日韩欧美一区二区| 日韩视频一区在线观看| 国产精品2024| 亚洲精品写真福利| 欧美一区二区三区系列电影| 美女一区二区久久| 国产精品国产a| 欧美色图片你懂的| 国内精品写真在线观看| 亚洲天天做日日做天天谢日日欢| 欧美色倩网站大全免费| 激情文学综合插| 亚洲视频在线观看三级| 欧美老肥妇做.爰bbww| 国产乱色国产精品免费视频| 亚洲人成影院在线观看| 91精品婷婷国产综合久久| 粉嫩13p一区二区三区| 午夜天堂影视香蕉久久| 国产蜜臀av在线一区二区三区| 欧美在线免费观看亚洲| 韩国欧美国产1区| 亚洲综合一二三区| 2022国产精品视频| 在线免费观看日本一区| 久久精品国产99国产| 1024国产精品| 精品国产乱码久久久久久蜜臀| 91麻豆免费观看| 国产精品小仙女| 三级一区在线视频先锋| 国产精品九色蝌蚪自拍| 欧美一级片在线看| 色噜噜偷拍精品综合在线| 国产精品18久久久久久久久久久久 | 欧美人妖巨大在线| 成人深夜视频在线观看| 日韩和欧美一区二区| 亚洲欧美激情插| 国产丝袜在线精品| 日韩免费观看高清完整版| 日本乱人伦aⅴ精品|