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

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

?? sub_pls_val.m

?? 包含間隔偏最小二乘
?? M
字號:
function PLSmodel = sub_pls_val(X,Y,no_of_lv,prepro_method,val_method,segments);

%  sub_pls_val for PLS modelling with selected validation method
%
%  Input:
%  X contains the independent variables
%  Y contains the dependent variable(s), NOTE: Y is allways autoscaled
%  no_of_lv is the number of PLS components
%  prepro_method is 'mean', 'auto', 'mscmean', 'mscauto' or 'none'
%  val_method is 'test', 'full', 'syst111', 'syst123', 'random' or 'manual'
%  segments is number of segments in cross validation
%       if val_method is 'test' then segments should be a column vector with test set indices
%       if val_method is 'manual' then segments should be a cell array, see makeManualSegments
%  Output:
%  PLSmodel is a structured array containing all model and validation information
%
%  Subfunctions at the end of this file: rmbi, msc, msc_pre, mncn, auto
%
%  Copyright, Chemometrics Group - KVL, Copenhagen, Denmark
%  Lars N鴕gaard, July 2004
%
%  PLSmodel = sub_pls_val(X,Y,no_of_lv,prepro_method,val_method,segments);

%  Subfunctions used: sub_pls, sub_pls_pre

[n,m] = size(X);
[o,p] = size(Y);

if nargin==6 & max(size(segments))==1 % Not test or manual
  no_sampl=fix(n/segments);
  left_over_samples=mod(n,segments);
end

if nargin==6 & iscell(segments)
  manualseg=segments; % A cell array
  segments=max(size(segments)); % Now a scalar
  Nsamples=0;
  for j=1:segments
    Nsamples=Nsamples + max(size(manualseg{j}));
  end
  if n~=Nsamples
    disp('The number of samples in X does not correspond to the number of samples in manualseg')
    return
  end
end

% if strcmp(lower(val_method),'full')
%     if nargin==6 & ~isempty(segments)
%         disp('No need to include segments when full cross validation is chosen')
%     end
% end

Ypred=zeros(n,p,no_of_lv);
count=1;

PLSmodel.prepro_method=prepro_method;
PLSmodel.val_method=val_method;

if strcmp(val_method,'full')
   val_method='syst123';
   segments=n;
end

if strcmp(val_method,'random')
    ix=rand(n,1);
    [temp,ix]=sort(ix);
end

switch val_method
    case 'test'
      tot=(1:n)';
      tot(segments)=[];
      cal = tot;
      Xseg=X(cal,:);
      Yseg=Y(cal,:);
      Xpseg=X(segments,:);
      [Yseg,my,stdy]=auto(Yseg);
      if strcmp(lower(prepro_method),'mean')
           [Xseg,mx]=mncn(Xseg); % Subfunction
           Xpseg=scalenew(Xpseg,mx);  % Subfunction
      elseif strcmp(lower(prepro_method),'auto')
           [Xseg,mx,stdx]=auto(Xseg); % Subfunction
           Xpseg=scalenew(Xpseg,mx,stdx); % Subfunction
      elseif strcmp(lower(prepro_method),'mscmean')
           [Xseg,Xsegmeancal]=msc(Xseg); % Subfunction
           [Xseg,mx]=mncn(Xseg); % Subfunction
           Xpseg=msc_pre(Xpseg,Xsegmeancal); % Subfunction
           Xpseg=scalenew(Xpseg,mx); % Subfunction
      elseif strcmp(lower(prepro_method),'mscauto')
           [Xseg,Xsegmeancal]=msc(Xseg); % Subfunction
           [Xseg,mx,stdx]=auto(Xseg); % Subfunction
           Xpseg=msc_pre(Xpseg,Xsegmeancal); % Subfunction
           Xpseg=scalenew(Xpseg,mx,stdx); % Subfunction
      elseif strcmp(lower(prepro_method),'none')
           % To secure that no centering/scaling is OK    
      end
      [P,Q,W,T,U,bsco,ssqdif]=sub_pls(Xseg,Yseg,no_of_lv);
      Ypred(segments,:,:)=sub_pls_pre(Xpseg,bsco,P,Q,W,no_of_lv);
      for j=1:no_of_lv
        Ypred(segments,:,j)=scaleback(Ypred(segments,:,j),my,stdy); % Subfunction
      end
      Ypred0(segments,:)=ones(max(size(segments)),1)*zeros(size(my)); % For zero PLSC estimate as average of calibration segment
      Ypred0(segments,:)=scaleback(Ypred0(segments,:),my,stdy); % Subfunction
      
      PLSmodel.test=segments;
      
    case {'full','syst111','syst123','random','manual'}
    % SegmentBar = waitbar(0,'Working on cross-validation...','Name','Cross-validation...'); % NEW
	for i=1:segments
        % waitbar(i/segments,SegmentBar,['Performing cross-validation on segment',num2str(i),' of ',num2str(segments)]); % NEW
        if strcmp(val_method,'syst111')
              if left_over_samples==0
                   count=count;
                   p_cvs=((i-1)*no_sampl+1+(count-1):i*no_sampl+(count-1))';
              else   
                   p_cvs=((i-1)*no_sampl+1+(count-1):i*no_sampl+count)';
                   count=count+1;
                   left_over_samples=left_over_samples-1;
              end
         elseif strcmp(val_method,'syst123')
              p_cvs=(i:segments:n)';
         elseif strcmp(val_method,'random')
              p_cvs=(i:segments:n)';
              p_cvs=ix(p_cvs)';
         elseif strcmp(val_method,'manual')
              p_cvs=manualseg{i};
         end
         tot=(1:n)';
         tot(p_cvs)=[];
         m_cvs = tot;
         PLSmodel.cv{i}=p_cvs;
         Xseg=X(m_cvs,:);
         Yseg=Y(m_cvs,:);
         Xpseg=X(p_cvs,:);
         [Yseg,my,stdy]=auto(Yseg);
         if strcmp(lower(prepro_method),'mean')
              [Xseg,mx]=mncn(Xseg); % Subfunction
              Xpseg=scalenew(Xpseg,mx); % Subfunction
         elseif strcmp(lower(prepro_method),'auto')
              [Xseg,mx,stdx]=auto(Xseg); % Subfunction
              Xpseg=scalenew(Xpseg,mx,stdx); % Subfunction
         elseif strcmp(lower(prepro_method),'mscmean')
              [Xseg,Xsegmeancal]=msc(Xseg); % Subfunction
              [Xseg,mx]=mncn(Xseg); % Subfunction
              Xpseg=msc_pre(Xpseg,Xsegmeancal); % Subfunction
              Xpseg=scalenew(Xpseg,mx); % Subfunction
         elseif strcmp(lower(prepro_method),'mscauto')
              [Xseg,Xsegmeancal]=msc(Xseg); % Subfunction
              [Xseg,mx,stdx]=auto(Xseg); % Subfunction
              Xpseg=msc_pre(Xpseg,Xsegmeancal); % Subfunction
              Xpseg=scalenew(Xpseg,mx,stdx); % Subfunction
         elseif strcmp(lower(prepro_method),'none')
              % To secure that no centering/scaling is OK    
         end
         [P,Q,W,T,U,bsco,ssqdif]=sub_pls(Xseg,Yseg,no_of_lv);
         Ypred(p_cvs,:,:)=sub_pls_pre(Xpseg,bsco,P,Q,W,no_of_lv);
         for j=1:no_of_lv
           Ypred(p_cvs,:,j)=scaleback(Ypred(p_cvs,:,j),my,stdy); % Subfunction
         end
         Ypred0(p_cvs,:)=ones(max(size(p_cvs)),1)*zeros(size(my)); % For zero PLSC estimate as average of calibration segment
         Ypred0(p_cvs,:)=scaleback(Ypred0(p_cvs,:),my,stdy); % Subfunction
	end
	% delete(SegmentBar); % NEW
end % switch val_method

switch val_method
  case 'test'
    [RMSE0,Bias0]=rmbi(Y(segments,:),Ypred0(segments,:)); % Subfunction
  otherwise
    [RMSE0,Bias0]=rmbi(Y,Ypred0); % Subfunction
end

for i=1:no_of_lv
  switch val_method
    case 'test'
      [RMSE(i),Bias(i)]=rmbi(Y(segments,:),Ypred(segments,:,i)); % Subfunction
    otherwise
      [RMSE(i),Bias(i)]=rmbi(Y,Ypred(:,:,i)); % Subfunction
  end
end

PLSmodel.Ypred0=Ypred0;
PLSmodel.Ypred=Ypred;
PLSmodel.RMSE=[RMSE0 RMSE];
PLSmodel.Bias=[Bias0 Bias];

% Global model with all samples
[Y,my,stdy]=auto(Y); % Subfunction
if strcmp(lower(prepro_method),'mean')
	[X,mx]=mncn(X); % Subfunction
elseif strcmp(lower(prepro_method),'auto')
	[X,mx,stdx]=auto(X); % Subfunction
elseif strcmp(lower(prepro_method),'mscmean')
	X=msc(X); % Subfunction
	[X,mx]=mncn(X); % Subfunction
elseif strcmp(lower(prepro_method),'mscauto')
	X=msc(X); % Subfunction
	[X,mx,stdx]=auto(X); % Subfunction
elseif strcmp(lower(prepro_method),'none')
    disp('No scaling')
    % To secure that no centering/scaling is OK    
end

[PLSmodel.P,PLSmodel.Q,PLSmodel.W,PLSmodel.T,PLSmodel.U,PLSmodel.bsco,PLSmodel.ssqdif]=sub_pls(X,Y,no_of_lv);

% Subfunctions rmbi, msc, msc_pre, mncn, auto, scalenew, scaleback
function [RMSE,Bias]=rmbi(Yref,Ypred)
[n,m]=size(Yref);
RMSE = sqrt( sum(sum((Ypred-Yref).^2))/(n*m) );
Bias = sum(sum(Ypred-Yref))/(n*m);

function [Xmsc,Xmeancal]=msc(X)
[n,m]=size(X);
Xmeancal=mean(X);
for i=1:n
  coef=polyfit(Xmeancal,X(i,:),1);
  Xmsc(i,:)=(X(i,:)-coef(2))/coef(1);
end

function Xpmsc=msc_pre(Xp,Xmeancal)
[n,m]=size(Xp);
for i=1:n
  coef=polyfit(Xmeancal,Xp(i,:),1);
  Xpmsc(i,:)=(Xp(i,:)-coef(2))/coef(1);
end

function [Xmean,meanX] = mncn(X)
[n,m] = size(X);
meanX = mean(X);
Xmean = (X-meanX(ones(n,1),:));

function [Xauto,meanX,stdX] = auto(X)
[n,m] = size(X);
meanX = mean(X);
stdX  = std(X);
Xauto = (X-meanX(ones(n,1),:))./stdX(ones(n,1),:);

function Xscalenew = scalenew(Xnew,meanXold,stdXold)
[n,m] = size(Xnew);
if nargin == 2
  Xscalenew = (Xnew-meanXold(ones(n,1),:));
elseif nargin == 3
  Xscalenew = (Xnew-meanXold(ones(n,1),:))./stdXold(ones(n,1),:);
end

function Xscaleback = scaleback(X,meanX,stdX)
[n,m] = size(X);
if nargin == 2
  Xscaleback = X + meanX(ones(n,1),:);
elseif nargin == 3
  Xscaleback = (X.*stdX(ones(n,1),:)) + meanX(ones(n,1),:);
end

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩极品在线观看| 国产91精品免费| 国产在线精品一区二区不卡了| 国产精品一二三四五| 在线观看亚洲精品| 久久久99久久| 日韩福利电影在线观看| 高清在线成人网| 欧美一级专区免费大片| 综合色天天鬼久久鬼色| 国产一区二区久久| 欧美日韩一区小说| 国产精品美女久久久久久2018| 日本美女一区二区| 在线亚洲免费视频| 国产精品乱码一区二三区小蝌蚪| 免费成人av资源网| 欧美日韩在线播放三区四区| 国产精品三级电影| 国产一区在线看| 欧美一区二区国产| 亚洲成在人线在线播放| 91天堂素人约啪| 中文欧美字幕免费| 国产精选一区二区三区| 日韩欧美在线观看一区二区三区| 亚洲午夜视频在线| 欧美在线免费视屏| 亚洲精品欧美激情| 97久久超碰精品国产| 中文字幕欧美国产| 国产精品1024| 国产三级精品三级| 韩国毛片一区二区三区| 精品美女在线播放| 麻豆91在线观看| 欧美va亚洲va| 激情成人午夜视频| 精品剧情v国产在线观看在线| 免费三级欧美电影| 日韩视频123| 国产真实乱对白精彩久久| 日韩欧美国产综合在线一区二区三区| 日韩电影一区二区三区四区| 欧美日产在线观看| 亚洲成人av一区| 亚洲欧洲99久久| 国产成人精品综合在线观看| 久久九九久久九九| 国产麻豆成人精品| 久久久91精品国产一区二区三区| 国产精品乡下勾搭老头1| 久久九九影视网| 不卡av免费在线观看| 亚洲欧美另类综合偷拍| 欧美理论在线播放| 美女精品自拍一二三四| 26uuu亚洲综合色| 成人国产精品免费观看| 亚洲天堂免费在线观看视频| 欧美性生活一区| 奇米色777欧美一区二区| 欧美性猛交xxxx乱大交退制版| 日韩精品一区二区三区在线观看 | 亚欧色一区w666天堂| 91免费版pro下载短视频| 亚洲一区在线播放| 欧美一级黄色片| 国产风韵犹存在线视精品| 自拍偷拍国产精品| 欧美亚洲综合久久| 韩国av一区二区| 夜夜精品浪潮av一区二区三区| 欧美一区二区女人| av一区二区三区四区| 亚洲大尺度视频在线观看| 久久久久国产精品厨房| 色八戒一区二区三区| 免费一区二区视频| 一色桃子久久精品亚洲| 色综合色综合色综合色综合色综合| 久久激五月天综合精品| 日本一区二区久久| 欧美男女性生活在线直播观看| 精品无人码麻豆乱码1区2区| 亚洲一区二区五区| 国产亲近乱来精品视频| 在线综合亚洲欧美在线视频| 成人免费不卡视频| 久久国产乱子精品免费女| 中文字幕精品综合| 7799精品视频| 色天天综合色天天久久| 久久se精品一区精品二区| 亚洲男人都懂的| 久久久精品免费网站| 欧美一区二区免费| 欧美在线观看禁18| 白白色 亚洲乱淫| 国产综合一区二区| 日韩电影在线看| 亚洲一区二区三区激情| 亚洲欧美另类小说视频| 日韩视频在线一区二区| 欧美精品亚洲二区| 色爱区综合激月婷婷| 色综合久久综合网欧美综合网| 国产又粗又猛又爽又黄91精品| 日本精品视频一区二区| 免费欧美日韩国产三级电影| 亚洲精品一区二区三区在线观看| 欧美一区二区免费| 国产成人久久精品77777最新版本| 国产精品超碰97尤物18| 在线不卡的av| 日韩一区精品视频| 在线免费观看不卡av| 精品国精品国产尤物美女| 久久国产精品99久久久久久老狼| 国产三级欧美三级| 国产丝袜欧美中文另类| 久久伊人蜜桃av一区二区| 欧美精品一区二区三区蜜桃| 精品日韩在线观看| 国产三区在线成人av| 亚洲一区国产视频| 亚洲h动漫在线| 国产一区三区三区| 91在线精品一区二区三区| 欧美日韩三级在线| 国产日韩欧美制服另类| 一区二区三区四区不卡在线| 亚洲国产精品精华液2区45| 中文字幕中文字幕在线一区| 久久综合99re88久久爱| 国产精品网友自拍| 亚洲欧美日韩国产综合| 亚洲福利视频三区| 狂野欧美性猛交blacked| 99re6这里只有精品视频在线观看| 欧美成人bangbros| 国内精品自线一区二区三区视频| 欧美亚洲自拍偷拍| 国产一区二区精品久久99 | 欧美一级片在线| 日本一区二区三区高清不卡| 一区二区三区加勒比av| 欧美精品乱码久久久久久按摩 | 亚洲精品一区在线观看| 日韩精品一级二级| 精品久久久久99| 国产老妇另类xxxxx| 国产午夜精品理论片a级大结局| 午夜精品福利一区二区三区蜜桃| 91在线一区二区| 国产精品国产精品国产专区不片| 本田岬高潮一区二区三区| 2021国产精品久久精品| 成人av午夜影院| 亚洲超丰满肉感bbw| 久久天堂av综合合色蜜桃网 | 国产福利不卡视频| 久久精品日韩一区二区三区| 99久久婷婷国产| 蜜臀久久99精品久久久久宅男| 日韩视频国产视频| 99re6这里只有精品视频在线观看| 一区二区三区四区亚洲| 国产精品自拍三区| 日本一区二区视频在线| 91.com视频| 日韩高清欧美激情| 久久夜色精品一区| 91麻豆国产福利精品| 亚洲成av人片一区二区三区| 欧美一区日韩一区| 成人免费高清在线| 亚洲一区日韩精品中文字幕| 久久久精品中文字幕麻豆发布| 成人美女视频在线看| 亚洲va韩国va欧美va| 日本一区二区久久| 日韩一卡二卡三卡四卡| 成人动漫一区二区| 国产一区二区三区免费播放| 中文字幕一区二区在线播放 | 91天堂素人约啪| 精品一区二区三区影院在线午夜| 亚洲最快最全在线视频| 欧美国产成人在线| 欧美va亚洲va香蕉在线| 7878成人国产在线观看| 在线欧美日韩国产| 91网站在线观看视频| aaa欧美大片| 日本乱人伦aⅴ精品| 久久激情综合网| 亚洲国产日产av| 欧美激情自拍偷拍| 99久久婷婷国产综合精品电影|