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

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

?? svmclassl2ls.m

?? 支持向量機(jī)的開發(fā)軟件包,里面有幾個(gè)例子,很好用的!
?? M
字號(hào):
function [xsup,w,b,pos,timeps,alpha]=svmclassL2LS(x,y,c,lambda,kernel,kerneloption,verbose,span,qpsize,chunksize)


% 
% [xsup,w,b,pos,timeps,alpha]=svmclassL2LS(x,y,c,lambda,kernel,kerneloption,verbose,span,qpsize,chunksize)
%
% %
% %   large-scale classification svm 
% %


% dbstop if warning
% dbstop if error

n=size(y,1);
if nargin < 10
    chunksize=100;
end;
if nargin<9
    qpsize=100; 
end;
if nargin < 10
    % even number
    chunksize=qpsize;
    
end;
if isstruct(x)
    if length(x.indice)~=length(y)
        error('Length of x and y should be equal');
    end;
end


maxqpsize=qpsize;
if qpsize> n
    qpsize=n;
end;
if rem(qpsize,2)==1
    qpsize=qpsize-1;
end;
kkttol=1e-5;
difftol=1e-12;





alphaold=zeros(n,1);
alpha=zeros(n,1);
workingset=zeros(n,1);
nws=zeros(n,1);

class1=(y>=0);
class0=(y<0);
iteration=0;
bias=0;
lambdab=0;
%
%keyboard

while 1
    
        if iteration==200
         % keyboard
            %break    
        end;
    
    
    %
    %   calcul des indices des SV et non SV
    %
    
    SV=(abs(alpha)>difftol);
    
    
    %
    %    Calcul de la sortie du SVM
    %
    
    if iteration==0  ;
        changedSV=find(SV);
        changedAlpha=alpha(changedSV);
        s=zeros(n,1);
        
    else
        changedSV=find( abs(alpha-alphaold)> difftol );
        changedAlpha=alpha(changedSV)-alphaold(changedSV);  
    end;
    
    if ~isempty(changedSV)
        
        chunks1=ceil(n/chunksize);
        chunks2=ceil(length(changedSV)/chunksize);
        
        for ch1=1:chunks1
            ind1=(1+(ch1-1)*chunksize) : min( n, ch1*chunksize);
            for ch2=1:chunks2
                ind2=(1+(ch2-1)*chunksize) : min(length(changedSV), ch2*chunksize);
                
                %-----------------------------------------------------------                
                if ~isfield(x,'datafile')
                    x1=x(ind1,:);
                    x2=x(changedSV(ind2),:);
                else
                    x1=fileaccess(x.datafile,x.indice(ind1),x.dimension);
                    x2=fileaccess(x.datafile,x.indice(changedSV(ind2)),x.dimension);
                    
                end;   
                kchunk=svmkernel(x1,kernel,kerneloption,x2);
                %-----------------------------------------------------------  
                %kchunk=svmkernel(x(ind1,:),kernel,kerneloption,x(changedSV(ind2),:)); 
                %-----------------------------------------------------------  
                coeff=changedAlpha(ind2).*y(changedSV(ind2));
                
                s(ind1)=s(ind1)+ kchunk*coeff;
            end;
        end
        
    end;    
    
    %
    %  calcul du biais du SVM que sur l'ensemble du working set et
    %  SVnonbound
    
%         indworkingSV= find(SV& workingset);
%         if ~isempty(indworkingSV)
%           %  bias= mean( y(indworkingSV)-s(indworkingSV) );   
%             bias= mean( y(indworkingSV)-s(indworkingSV) - y(indworkingSV).*alpha(indworkingSV)/c );
%         end;
        
        
        if sum(SV)>0
          %  bias= mean( y(indworkingSV)-s(indworkingSV) );   
            bias= mean( y(SV)-s(SV) - y(SV).*alpha(SV)/c );
        else
            bias=0;
        end;

   % bias=lambdab; % this is the Lagrange multiplier of the equality constraints of monqp
    
    
    %
    %  KKT Conditions
    %
    
    kkt=(s+bias).*y - 1;
      testkkt= abs(abs(kkt)-alpha/c);  %  check the equation of KKT for this condition.
    kktviolation=   (SV   & ( testkkt> kkttol) )|( ~SV & (kkt < -kkttol));
%  kktviolation=   (SV   & ( testkkt> kkttol) )|( ~SV & (kkt +alpha/c< -kkttol));
%     testkkt=-kkt -alpha/c;
%     kktviolation1= (SV   & ( testkkt> kkttol) );
%     kktviolation2=( ~SV & (kkt < - kkttol));
%    kktviolation=   kktviolation1 | kktviolation2;
%     
    if sum(kktviolation)==0
        break;   %  c'est fini tout 
    end;
    
    
    
    %
    %   Calcul du nouveau working set
    %
    
    if iteration==0
        searchdir=rand(n,1);
        set1=class1;
        set2=class0;
    end;
    
    
    
    oldworkingset=workingset;
    workingset=zeros(n,1);
    n1=sum(set1);
    n2=sum(set2);
        
    %         indpos=find(y==1);
    %         indneg=find(y==-1);
    %         
    %         
    %         % ici on fait un tirage al閍toire parmi tout les points!! c vraiment
    %         % tout pourri.
    %         RandIndpos=randperm(length(indpos));
    %         RandIndneg=randperm(length(indneg));
    %         nbpos=min(length(indpos),round(qpsize/2));
    %         nbneg=min(length(indneg),round(qpsize/2));
    %         ind=[indpos(RandIndpos(1:nbpos));indneg(RandIndneg(1:nbneg))];
    %         workingset(ind)=ones(length(ind),1);
    %         
    
    indkktviolation=find(kktviolation);
    nbkktviolation=sum(kktviolation);
    if qpsize==n
        workingset=ones(n,1);
%     elseif nbkktviolation <=qpsize
%         nbOK=qpsize-nbkktviolation;
%         indOK=find(~kktviolation);
%         indiceOK=randperm(length(indOK));
%         
%         ind=[indkktviolation; indOK(indiceOK(1:nbOK))];
%         workingset(ind)=ones(length(ind),1);
    else
        
        indposkktviol= find(y==1 & kktviolation);
        indposkktviol=indposkktviol(randperm(length(indposkktviol)));
        indnegkktviol= find(y==-1 & kktviolation);
        indnegkktviol=indnegkktviol(randperm(length(indnegkktviol)));
        indposOK= find(y==1 &  ~kktviolation);
        indnegOK= find(y==-1 &  ~kktviolation);
        nbposViol=min(length(indposkktviol),round(qpsize/2));
        nbnegViol=min(length(indnegkktviol),round(qpsize/2));
        nbposOK=min(qpsize/2-nbposViol,length(indposOK));;
        nbnegOK=min(qpsize/2-nbnegViol,length(indposOK));
        ind=[indposkktviol(1:nbposViol);indposOK(1:nbposOK) ;indnegkktviol(1:nbnegViol);indnegOK(1:nbnegOK)];
        workingset(ind)=ones(length(ind),1);
        
        %     indkktviolation=find(kktviolation);
        %     nbkktviolation=length(indkktviolation);
        %             randomindice=randperm(nbkktviolation);
        %         workingset(indkktviolation(randomindice(1:min(nbkktviolation,qpsize))))=1;
        
        
    end;
    if all( abs(oldworkingset-workingset) < difftol)
        indpos=find(y==1);
        indneg=find(y==-1);
        %keyboard
        
        % ici on fait un tirage al閍toire parmi tout les points!! c vraiment
        % tout pourri.
        RandIndpos=randperm(length(indpos));
        RandIndneg=randperm(length(indneg));
        nbpos=min(length(indpos),round(qpsize/2));
        nbneg=min(length(indneg),round(qpsize/2));
        ind=[indpos(RandIndpos(1:nbpos));indneg(RandIndneg(1:nbneg))];
        workingset(ind)=ones(length(ind),1);
        
    end;  
    
    
    indworkingset=find(workingset);
    workingsize=length(indworkingset);
    nws=~workingset;
    indnws= find(nws);
    
    
    
    
    %
    %   Resolution du QP probleme sur le nouveau Working set
    %
    
    % le calcul de Qbn*alphan ne fait intervenir que les donn茅es aux alphan non nulles et les donn茅es de la working
    % set
    
    
    nwSV= (nws & SV);
    indnwSV=find(nwSV);
    Qbnalphan=0;
    if length(indnwSV)>0
        
        chunks=ceil(length(indnwSV)/chunksize);
        for ch=1:chunks
            ind=(1+(ch-1)*chunksize ): min( length(indnwSV), ch*chunksize);
            %-----------------------------------------------------------                
            if ~isfield(x,'datafile')
                x1=x(indworkingset,:);
                x2=x(indnwSV(ind),:);
            else
                x1=fileaccess(x.datafile,x.indice(indworkingset),x.dimension);
                x2=fileaccess(x.datafile,x.indice(indnwSV(ind)),x.dimension);
                
            end;   
            pschunk=svmkernel(x1,kernel,kerneloption,x2);
            %-----------------------------------------------------------  
            % pschunk=svmkernel(x(indworkingset,:),kernel,kerneloption,x(indnwSV(ind),:));
            %-----------------------------------------------------------  
            
            
            
            Qbnalphan=Qbnalphan + y(indworkingset).*(pschunk*(alpha(indnwSV(ind)).*y(indnwSV(ind))));
        end;
        e= - (Qbnalphan - ones(workingsize,1));
        
    else
        e=ones(workingsize,1);
    end;
    
    %-----------------------------------------------------------  
    % Calcul de la matrice Hbb
    %-----------------------------------------------------------    
    yb=y(indworkingset);
    if ~isfield(x,'datafile')
        psbb=svmkernel(x(indworkingset,:),kernel,kerneloption);
    else
        x1=fileaccess(x.datafile,x.indice(indworkingset),x.dimension);
        psbb=svmkernel(x1,kernel,kerneloption);
    end;
    Hbb=psbb.*(yb*yb')+1/c*eye(size(psbb));
    
    
    A=yb;
    if length(indnws)>0
        b=-alpha(indnws)'*y(indnws);
    else
        b=0;
    end;
    
    cinfty=+inf;
    [alphab,lambdab,pos]=monqp(Hbb,e,A,b,cinfty,lambda,0);%,psbb);
    %     [alphab,lambdab,pos]=monqpCinfty(Hbb,e,A,b,lambda,0);%,psbb);
    alphaold=alpha;
    aux=zeros(workingsize,1);
    aux(pos)=alphab;
    alpha(indworkingset)=aux;
    iteration=iteration+1;
    if verbose >0
        obj= 0.5*aux'*Hbb*aux- aux'*e;
        fprintf('i: %d number changedAlpha : %d  Nb KKT Violation: %d Objective Val:%f\n',iteration,length(find( abs(alpha-alphaold)> difftol)),sum(kktviolation),obj);
    end;
    if sum(kktviolation) < maxqpsize
        qpsize=maxqpsize;
        chunksize=maxqpsize;
    end;
end;


SV=(abs(alpha)>difftol);


pos=find(SV);

if ~isfield(x,'datafile')
    xsup = x(pos,:);
else
    xsup=x;
    xsup.indice=x.indice(pos);
end;
ysup = y(pos);
w = (alpha(pos).*ysup);

indworkingSV= find(SV& workingset);
% if ~isempty(indworkingSV)
%    % bias= mean( y(indworkingSV)-s(indworkingSV) );   
%     bias= mean( y(indworkingSV)-s(indworkingSV) - y(indworkingSV).*alpha(indworkingSV)/c );
% end;

        if ~isempty(SV)
          %  bias= mean( y(indworkingSV)-s(indworkingSV) );   
            bias= mean( y(SV)-s(SV) - y(SV).*alpha(SV)/c );
        else
            bias=0;
        end;

b = bias;
timeps=[];
alpha=alpha(pos);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
1区2区3区精品视频| 久草在线在线精品观看| 欧美一区二区啪啪| 99久久精品一区二区| 日本91福利区| 亚洲综合丝袜美腿| 国产精品看片你懂得| 精品国产91亚洲一区二区三区婷婷| 色综合咪咪久久| 国产精品中文字幕一区二区三区| 无吗不卡中文字幕| 亚洲资源中文字幕| 亚洲天堂网中文字| 国产精品乱人伦| 亚洲日本青草视频在线怡红院| 日韩欧美国产1| 欧美精品一卡二卡| 欧美揉bbbbb揉bbbbb| 91农村精品一区二区在线| 国产高清成人在线| 国内欧美视频一区二区 | 最新中文字幕一区二区三区| 久久影音资源网| 日韩午夜在线观看视频| 欧美日韩不卡一区| 欧美日韩精品免费| 欧美高清精品3d| 欧美精品xxxxbbbb| 91精品国产综合久久婷婷香蕉 | 国产一区二区三区av电影| 日本欧美一区二区三区乱码 | 国内精品视频666| 免费成人在线网站| 麻豆91免费观看| 美女任你摸久久| 美腿丝袜一区二区三区| 久久er99精品| 韩国视频一区二区| 国内精品伊人久久久久av影院 | 中文字幕第一区第二区| 国产日本欧美一区二区| 国产精品你懂的在线欣赏| 欧美激情中文不卡| 国产精品激情偷乱一区二区∴| 欧美高清一级片在线观看| 国产精品看片你懂得| 综合激情成人伊人| 一区二区三区日韩在线观看| 成人午夜免费av| 不卡一区二区三区四区| 色综合 综合色| 欧美午夜寂寞影院| 91精品国产欧美一区二区成人| 日韩情涩欧美日韩视频| 久久嫩草精品久久久精品一| 国产精品私人影院| 亚洲精品视频在线观看网站| 亚洲韩国一区二区三区| 日日骚欧美日韩| 国产一区二区电影| 91麻豆国产在线观看| 亚洲激情中文1区| 综合色中文字幕| 欧美激情艳妇裸体舞| 精品国产91九色蝌蚪| 欧美精品一区二区久久婷婷| 91精品国产综合久久福利| 精品视频1区2区3区| 欧美日韩精品福利| 91精品蜜臀在线一区尤物| 欧美日韩一区成人| 欧美日高清视频| 精品久久久久久久久久久院品网| 日韩一区二区中文字幕| 精品国产91久久久久久久妲己 | 欧美男人的天堂一二区| 国产精品77777| 日本久久电影网| 日韩你懂的在线播放| 中文字幕一区二区日韩精品绯色| 91精品国产高清一区二区三区蜜臀 | 亚洲福利国产精品| 色欧美片视频在线观看| 奇米精品一区二区三区在线观看一| av资源网一区| 日本一二三四高清不卡| 自拍视频在线观看一区二区| 日韩精品欧美精品| 97精品久久久久中文字幕| 日韩欧美在线观看一区二区三区| 中文字幕在线一区二区三区| 日本成人在线一区| 91麻豆自制传媒国产之光| 精品久久一二三区| 一区二区三区在线免费播放| 国产一区二区免费看| 欧美日韩午夜在线| 国产精品久久久久aaaa| 麻豆精品在线播放| 欧美日韩另类一区| 中文字幕在线不卡| 国产精品456露脸| 欧美日韩高清一区二区三区| 1024成人网色www| 国产一区二区三区| 欧美一级片免费看| 亚洲国产欧美一区二区三区丁香婷| 国产91富婆露脸刺激对白| 日韩一级成人av| 亚洲国产成人av| 色域天天综合网| 中文字幕在线一区二区三区| 国产盗摄一区二区三区| 日韩欧美黄色影院| 日韩国产精品久久| 欧美网站大全在线观看| 亚洲伦在线观看| 成a人片国产精品| 国产精品久久久久9999吃药| 国产91精品露脸国语对白| 精品久久久久久久久久久久久久久久久 | 亚洲v精品v日韩v欧美v专区| av电影在线观看完整版一区二区| 久久久久久久电影| 国产精品一区2区| 欧美电视剧在线看免费| 蜜桃视频一区二区三区| 日韩一区二区三区在线| 日本色综合中文字幕| 制服丝袜国产精品| 麻豆成人综合网| 久久综合狠狠综合久久综合88 | 成人av资源站| 国产精品国产三级国产三级人妇| 成人小视频免费观看| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 久久精品国产久精国产爱| 欧美猛男gaygay网站| 亚洲自拍欧美精品| 欧美日韩免费一区二区三区 | 日韩三级视频中文字幕| 免费人成在线不卡| 日韩欧美黄色影院| 韩日av一区二区| 国产精品天美传媒| 一本久久综合亚洲鲁鲁五月天| 一区二区三区成人| 欧美日韩激情一区二区| 麻豆国产一区二区| 国产精品888| 午夜精品成人在线视频| 国产午夜精品一区二区三区嫩草| 欧美亚洲免费在线一区| 成人av免费网站| 色综合久久久久| 成人av在线播放网站| 久久精品国产免费看久久精品| 亚洲丝袜自拍清纯另类| 国产三级精品视频| 欧美大胆人体bbbb| 在线不卡免费欧美| 精品视频在线视频| 欧美色综合网站| 在线观看日韩精品| 在线观看免费亚洲| 在线免费精品视频| 欧美午夜不卡在线观看免费| 91福利视频在线| 欧美丝袜第三区| 久久久亚洲国产美女国产盗摄 | 亚洲综合图片区| 欧美一区二区三区在线观看| 九九**精品视频免费播放| 亚洲国产欧美一区二区三区丁香婷| 国产精品丝袜在线| 亚洲欧美另类小说| 麻豆国产一区二区| 久久久另类综合| 一本大道久久a久久综合婷婷| 成人激情视频网站| 国产午夜精品理论片a级大结局| 91国内精品野花午夜精品| 91原创在线视频| 免费成人av资源网| 伊人夜夜躁av伊人久久| 日韩精品最新网址| 91国产视频在线观看| 国产一区二区三区不卡在线观看 | 亚洲一区二区三区免费视频| 久久综合九色综合97婷婷女人 | 久久久久久夜精品精品免费| 欧美天堂亚洲电影院在线播放| 国产成人综合在线观看| 丝袜a∨在线一区二区三区不卡| 中文字幕精品三区| 精品久久99ma| 欧美放荡的少妇| 99re视频这里只有精品| 国产精品18久久久久久久久| 日韩国产精品久久久|