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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gaplssp.m

?? 將PLS與遺傳算法相結合
?? M
字號:
% Application of GA to the selection of the "best" subset
% for a PLS regression, especially suited for spectral data.
%
% by R. Leardi
%
% Dipartimento di Chimica e Tecnologie Farmaceutiche ed Alimentari
% via Brigata Salerno (ponte) - 16147 GENOVA (ITALY)
% e-mail: riclea@dictfa.unige.it
%
% The syntax is: [b,fin,sel]=gaplssp(dataset,evaluat,precision)
% where b=vector of the variables in decreasing order of selection
%       fin=matrix with the results of the final stepwise:
%           row 1 = # of variables used
%           row 2 = response (% C. V.)
%           row 3 = # of components
%           row 4 = RMSECV
%	sel=vector with the frequency of selection
%
% The y variable is the last one
%
% 3 input parameters have to be specified:
% 1) data set
% 2) number of evaluations per run
% 3) the precision of the analytical method (optional)

function [b,fin,sel]=gaplssp(dataset,evaluat,precision)
clc
format compact
randomiz
if nargin==2
  precision=0;
end
[o,c]=size(dataset);
disp(['objects: ' int2str(o)])
y=dataset(:,c);
v=c-1;
disp(['variables: ' int2str(v)]);
s1=[];s2=[];b=[];fin=[];sel=[];sels=[];

aut=2; % autoscaling; 0=raw data; 1=column centering
ng=5; % 5 deletion groups
cr=30; % 30 chromosomes
nvar=5; % on average 5 variables per chromosome in the orig. pop.
probsel=ones(1,v)*nvar/v;
maxvar=30; % 30 variables as a maximum
probmut=0.01; % probability of mutation 1%
probcross=0.5; % probability of cross-over 50%
freqb=100; % backward stepwise every 100 evaluations 
if floor(evaluat/100)==evaluat/100;
  endb='N';
else
  endb='Y';
end
runs=100; % 100 runs
el=3;

% computation of CV var. with all the variables
% (the optimal number of components will be the maximum for GA)
[maxcomp,start,mxi,sxi,myi,syi]=plsgacv(dataset(:,1:v),y,aut,ng,15);
disp(' ')
disp(['With all the variables:'])
disp(['components: ' int2str(maxcomp)])
disp(['C.V. variance: ' num2str(start)])

sel=zeros(1,v); % sel stores the frequency of selection
probsels=sel;probselsw=sel;probself=sel;
for r=1:runs
  sel=[sel 0];
  disp(' ')
  disp(['run ' num2str(r)])
  % creation and evaluation of the starting population
  crom=zeros(cr,v);
  resp=zeros(cr,1);
  comp=zeros(cr,1);
  p=zeros(2,v);
  numvar=zeros(cr,1); %%% numvar stores the number of variables in each chr.
  lib=[]; %%% lib is the matrix with all the already tested chromosomes %%%
  libb=[];%%% libb is the matrix with all the already backw. chromosomes %%%
  nextb=freqb;
  cc=0;
  probself=probsel;
  if r>1
   probsels=sel(1:v)/sum(sel)*nvar;
   probselsw(1)=(probsels(1)+probsels(2))/2;
   probselsw(v)=(probsels(v)+probsels(v-1))/2;
   for jj=2:v-1
     probselsw(jj)=(probsels(jj-1)+probsels(jj)+probsels(jj+1))/3;
   end
   % probselsw obtained as moving average (window size 3) of probsels
   probself=(probsel*(runs-r+1)+probselsw*(r-1))/runs;
         disp([num2str(min(probself)) ' - ' num2str(max(probself))])
  end
  while cc<cr
    den=0;
    sumvar=0;
    while (sumvar==0 | sumvar>maxvar)
      a=rand(1,v);
      for j=1:v
        if a(1,j)<probself(1,j)
          a(1,j)=1;
        else
          a(1,j)=0;
        end    
      end
      sumvar=sum(a);
    end
    den=checktw(cc,lib,a);
    if den==0
      lib=[lib;a];
      if cc>0
        [s1,s2]=chksubs(cc,crom(1:cc,:),a);
      end
      cc=cc+1;  
      var=find(a);
      [fac,risp]=plsgacv(dataset(:,var),y,aut,ng,maxcomp,mxi(:,var),sxi(:,var),myi,syi);
      if isempty(s2)
        mm=0;
      else
        mm=max(resp(s2));
      end
      if risp>mm  % the new chrom. survives only if better
        crom(cc,:)=a;
        resp(cc,1)=risp;
        comp(cc,1)=fac;
        numvar(cc,1)=size(var,2);
        for kk=1:size(s1,2)
          if risp>=resp(s1(kk))
            resp(s1(kk))=0; % the old chrom. are killed if worse
          end
        end
      end
    end
  end

  [vv,pp]=sort(resp);
  pp=flipud(pp);
  crom=crom(pp,:);
  resp=resp(pp,:);
  comp=comp(pp,:);
  numvar=numvar(pp,:);

  disp(' ')
  disp(['After the creation of the original population: ' num2str(resp(1))])
  maxrisp=resp(1);

  while cc<evaluat
    % selection of 2 chromosomes
    cumrisp=cumsum(resp);
    if resp(2)==0
      rr=randperm(cr);
      p(1,:)=crom(rr(1),:);
      if resp(1)==0
        p(2,:)=crom(rr(2),:);
      else
        p(2,:)=crom(1,:);
      end
    else
      k=rand*cumrisp(cr);
      j=1;
      while k>cumrisp(j)
        j=j+1;
      end
      p(1,:)=crom(j,:);
      p(2,:)=p(1,:);
      while p(2,:)==p(1,:)
        k=rand*cumrisp(cr);
        j=1;
        while k>cumrisp(j)
          j=j+1;
        end
        p(2,:)=crom(j,:);
      end
    end

    % cross-over between the 2 chromosomes
    s=p;
    diff=find(p(1,:)~=p(2,:));
    randmat=rand(1,size(diff,2));
    cro=find(randmat<probcross);
    s(1,diff(cro))=p(2,diff(cro));
    s(2,diff(cro))=p(1,diff(cro));

    % mutations
    m=rand(2,v);
    for i=1:2
      f=find((m(i,:))<probmut);
      bb=size(f,2);
      for j=1:bb
        if s(i,f(j))==0
          s(i,f(j))=1;
        else
          s(i,f(j))=0;
        end
      end
    end
 
    % evaluation of the offspring
    for i=1:2
      den=0;
      var=find(s(i,:));
      sumvar=sum(s(i,:));
      if sumvar==0 | sumvar>maxvar
        den=1;
      end
      if den==0
        den=checktw(cc,lib,s(i,:));
      end
      if den==0
        cc=cc+1;  
    	  [fac,risp]=plsgacv(dataset(:,var),y,aut,ng,maxcomp,mxi(:,var),sxi(:,var),myi,syi);
        lib=[s(i,:);lib];
        if risp>maxrisp
          disp(['ev. ' int2str(cc) ' - ' num2str(risp)])
          maxrisp=risp;
        end
        if risp>resp(cr)
          [crom,resp,comp,numvar]=update(cr,crom,s(i,:),resp,comp,numvar,risp,fac,var);
        end
      end
    end

    % stepwise
    if cc>=nextb
      nextb=nextb+freqb;
      [nc,rispmax,compmax,cc,maxrisp,libb]=backw(r,cr,crom,resp,numvar,cc,dataset,y,aut,ng,maxcomp,maxrisp,libb,mxi,sxi,myi,syi,el);
      if isempty(nc)~=1
	[crom,resp,comp,numvar]=update(cr,crom,nc,resp,comp,numvar,rispmax,compmax,find(nc));
      end
    end

  end

  if endb=='Y' % final stepwise
    [nc,rispmax,compmax,cc,maxrisp,libb]=backw(r,cr,crom,resp,numvar,cc,dataset,y,aut,ng,maxcomp,maxrisp,libb,mxi,sxi,myi,syi,el);
    if isempty(nc)~=1
	[crom,resp,comp,numvar]=update(cr,crom,nc,resp,comp,numvar,rispmax,compmax,find(nc));
    end
  end

  sel=sel(1:v)+crom(1,:);
  disp(find(crom(1,:)))
  figure(1)
  bar(sel);
  set(gca,'XLim',[0 v])
  title(['Frequency of selections after ' int2str(r) ' runs']); 
  drawnow

end

sels=zeros(1,v);
sels(1)=(sel(1)+sels(2))/2;
sels(v)=(sel(v)+sels(v-1))/2;
for jj=2:v-1
  sels(jj)=(sel(jj-1)+sel(jj)+sel(jj+1))/3;
end
sel=sels;

[a,b]=sort(-sel);
sel=-a;

disp([' '])
disp('Stepwise according to the smoothed frequency of selection');
fin=[];
k=v-1;
if v-1>200
  k=200;
end
for c=1:k
  if sel(c)>sel(c+1)
    [fac,risp]=plsgacv(dataset(:,b(1:c)),y,aut,ng,maxcomp,mxi(:,b(1:c)),sxi(:,b(1:c)),myi,syi);
    sep=sqrt(1-risp/100)*syi(ng+1);sep=sep-sep/(2*o-2);
    fin=[fin [c;risp;fac;sep]];
    disp(' ')
    disp(['With ' int2str(c) ' var. ' num2str(risp) ' (' int2str(fac) ' comp.)'])
  end
end

plotone(dataset,b,fin,sel,precision);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜臀国产一区二区三区在线播放| 在线看不卡av| 国产精品久久久久久久久免费相片 | 精品成人佐山爱一区二区| 久久99蜜桃精品| 国产网站一区二区三区| 91在线小视频| 亚洲韩国一区二区三区| 91精品国产综合久久久久久漫画| 捆绑变态av一区二区三区| 亚洲精品一区二区三区香蕉 | 国产传媒一区在线| 国产精品久久久久久久裸模| 91国产免费观看| 蜜桃精品在线观看| 国产三级一区二区三区| 色婷婷国产精品| 日韩精品久久理论片| 久久精品亚洲麻豆av一区二区| 成人国产精品视频| 亚洲五月六月丁香激情| 精品乱码亚洲一区二区不卡| 成人福利视频在线看| 亚洲综合999| 精品国内片67194| 99久久婷婷国产综合精品| 亚洲电影第三页| 亚洲精品在线观看视频| 99久久99精品久久久久久| 日韩精品免费视频人成| 国产欧美日韩中文久久| 色哦色哦哦色天天综合| 蜜臀av性久久久久蜜臀av麻豆| 国产精品妹子av| 欧美一级欧美一级在线播放| 国产a级毛片一区| 亚洲大尺度视频在线观看| 久久一区二区三区四区| 欧美午夜电影一区| 国产久卡久卡久卡久卡视频精品| 亚洲综合视频在线观看| 国产午夜精品在线观看| 欧美日韩美女一区二区| 丰满放荡岳乱妇91ww| 日韩经典一区二区| 综合在线观看色| 日韩女优av电影在线观看| 99在线精品视频| 久久精品国产77777蜜臀| 亚洲欧美色图小说| 精品电影一区二区三区| 欧美日韩一二三区| www..com久久爱| 久久国产精品第一页| 又紧又大又爽精品一区二区| 久久精品男人天堂av| 3751色影院一区二区三区| 99精品视频一区二区| 国产自产v一区二区三区c| 天天av天天翘天天综合网色鬼国产| 国产精品拍天天在线| 日韩精品自拍偷拍| 色婷婷综合在线| 国产91高潮流白浆在线麻豆| 免费av网站大全久久| 一区二区三区欧美亚洲| 欧美国产日本韩| 精品三级在线观看| 欧美无砖砖区免费| 91亚洲国产成人精品一区二区三| 国内久久精品视频| 视频一区视频二区中文| 亚洲久草在线视频| 欧美国产一区在线| 欧美精品一区二区三区视频| 欧美巨大另类极品videosbest | 久久精品久久综合| 亚洲二区在线观看| 亚洲女同一区二区| 国产精品无遮挡| 国产欧美日韩另类一区| 欧美mv和日韩mv的网站| 这里是久久伊人| 欧美最新大片在线看 | 91麻豆精品秘密| 国产suv一区二区三区88区| 激情综合网激情| 人人超碰91尤物精品国产| 亚洲第一搞黄网站| 亚洲精品乱码久久久久| 中文字幕一区二区三中文字幕| 国产亚洲制服色| 精品免费一区二区三区| 欧美一级xxx| 91超碰这里只有精品国产| 欧美日韩激情一区二区三区| 欧美中文字幕亚洲一区二区va在线| 99视频一区二区| 99精品视频一区二区三区| 99综合影院在线| 91在线丨porny丨国产| 97se亚洲国产综合自在线不卡| www.在线欧美| av资源网一区| 91视频免费观看| 在线视频欧美精品| 在线免费av一区| 欧美视频一区在线观看| 欧美三级视频在线| 欧美日韩国产中文| 欧美福利电影网| 日韩欧美一二三四区| 欧美电影免费观看高清完整版在线| 欧美大片在线观看一区| 久久亚洲欧美国产精品乐播| 国产欧美日韩另类一区| 国产精品久久久久婷婷| 亚洲三级久久久| 亚洲综合色婷婷| 日韩在线播放一区二区| 极品销魂美女一区二区三区| 国产福利电影一区二区三区| 成人免费视频播放| 99国产精品久久久| 欧美亚洲国产怡红院影院| 欧美日韩一区 二区 三区 久久精品| 欧美人伦禁忌dvd放荡欲情| 日韩视频不卡中文| 久久免费视频色| 国产精品久久久久久久久图文区| 综合分类小说区另类春色亚洲小说欧美| 亚洲人123区| 日韩精品乱码免费| 国产一区二区三区免费在线观看| 国产成人免费视| 91视频91自| 欧美精品久久久久久久多人混战| 日韩女优制服丝袜电影| 中文字幕欧美激情一区| 亚洲精选免费视频| 日韩在线观看一区二区| 国产高清亚洲一区| 91丨porny丨国产| 欧美一区二区三区免费大片| 国产视频一区在线播放| 亚洲六月丁香色婷婷综合久久 | 午夜免费久久看| 国产精选一区二区三区| 色综合天天综合网国产成人综合天 | 国产调教视频一区| 一区二区成人在线| 久久精品噜噜噜成人av农村| 成人免费va视频| 欧美日韩一区二区在线观看| 精品国产免费一区二区三区香蕉| 中文字幕在线不卡一区二区三区| 亚洲图片欧美综合| 韩国av一区二区三区四区| 色婷婷综合久久久中文一区二区| 日韩一区二区三区视频| 国产精品久久久久三级| 日本不卡一二三区黄网| 成人免费视频国产在线观看| 欧美日韩精品电影| 亚洲国产精品精华液2区45| 亚洲成人免费观看| 国产成人99久久亚洲综合精品| 欧洲一区在线观看| 国产亚洲精品久| 午夜私人影院久久久久| 国产成人在线看| 欧美日韩mp4| 中文字幕在线观看不卡| 另类小说视频一区二区| 91老师国产黑色丝袜在线| 欧美大肚乱孕交hd孕妇| 亚洲激情第一区| 国产乱码精品一区二区三区忘忧草 | 97久久精品人人澡人人爽| 欧美大片国产精品| 亚洲激情一二三区| 国产成人综合网| 6080亚洲精品一区二区| 亚洲欧美日韩久久精品| 国产在线播放一区二区三区| 欧美老女人在线| 亚洲三级久久久| 国产成人av自拍| 欧美一级二级在线观看| 亚洲精品国产无天堂网2021| 国产麻豆成人精品| 制服视频三区第一页精品| 一区二区三区四区亚洲| 国产成人综合在线观看| 91精品国产高清一区二区三区 | 6080亚洲精品一区二区| 亚洲激情六月丁香| 成人免费毛片a| 久久综合av免费| 日韩av一区二区在线影视|