⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 calc_output_steps.m

📁 一个关于adaboost算法的matlab程序
💻 M
字号:
function [ys, y_nets]=calc_output_steps(bb, XData, steps)
% [ys, y_nets]=adabooster.calc_output_steps(rn, XData, steps)
% 
% parameter            class
% bb                   rbf_net_ls        
% XData                double matrix
% steps                index vector 
% ys                   double matrix     Ausgabevektoren (booststeps-by-p)
% y_nets               double matrix     Ausgabevektoren (booststeps-by-p)
%

%   G. Raetsch 10.12.99
%   Copyright (c) 1998,1999  GMD Berlin - All rights reserved
%   THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE of GMD FIRST Berlin
%   The copyright notice above does not evidence any
%   actual or intended publication of this work.
%   Please see COPYRIGHT.txt for details.

tmp_size=length(steps) ;
sum_weights=0 ;
ys=zeros(tmp_size, size(XData,2)) ;
if nargout>1,
  y_nets=ys ;
end ;
y=0 ;

j=0 ;
for i=1:min([get_boost_steps(bb) length(get_boosted_learner(bb)) length(get_vote_weights(bb))]) ;
  net=get_boosted_learner(bb, i) ;
  if ~isa(net, 'learner'),
    break ;
  end ;
  switch bb.use_sign_output,
  case 2,
    y_net=sigmoid(calc_output(net, XData)) ;
  case 1,
    y_net=sign(calc_output(net, XData)) ;
  case 0,
    y_net=calc_output(net, XData) ;
  otherwise,
    error('???') ;
  end ;
  sum_weights=sum_weights+get_vote_weight(bb,i) ;
  
  y=y+y_net*get_vote_weight(bb,i) ;

  if any(i==steps),
    j=j+1 ;
    ys(j,:)=y./sum_weights ;
    if nargout>1,
      y_nets(j,:)=y_net ;
    end ;
  end ;
end ;

j_ok=j ;
if max(steps)>=i,
  idxs=find(steps>i) ;
  for idx=idxs,
    j=j+1 ;
    ys(j,:)=y./sum_weights ;
    if nargout>1,
      error('not implemented') ;
    end ;
  end ;  
else
  if (j~=length(steps))
     keyboard,
  end ;
end ;


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -