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

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

?? rbf_rr_2.m

?? RBF算法matlab工具箱,里面有詳細的說明文檔.
?? M
字號:
function [C, R, w, info, conf] = rbf_rr_2(X, y, conf)%% Ridge regression using radial basis functions.%% Solves a regression problem with inputs X and outputs y using ridge% regression (weight decay) with one re-estimated regularisation% parameter. Returns the hidden unit centres C, their radii R, the% hidden-to-output weights w, some additional information info and% a fully instantiated configuration structure conf.%% For further details of the function see:%%  'Matlab Routines for RBF Networks', 1999.%% For descriptions of the algorithm see:%%  'Introduction to RBF Networks', 1996.%  'Further Advances in RBF Networks', 1999.%% Program name (for error messages).prog = 'rbf_rr_2';% Configuration specification.spec(1) = struct( ...  'comment', 'Centres', ...  'name', 'cen', ...  'type', 'matrix', ...  'options', [], ...  'default', []);spec(2) = struct( ...  'comment', 'Radii', ...  'name', 'rad', ...  'type', 'matrix', ...  'options', [], ...  'default', []);spec(3) = struct( ...  'comment', 'Bias unit', ...  'name', 'bias', ...  'type', 'number', ...  'options', {{0 1}}, ...  'default', 0);spec(4) = struct( ...  'comment', 'Model selection criterion', ...  'name', 'msc', ...  'type', 'string', ...  'options', {{'uev', 'fpe', 'gcv', 'bic', 'mml'}}, ...  'default', 'bic');spec(5) = struct( ...  'comment', 'Termination threshold', ...  'name', 'thresh', ...  'type', {{'number', 'positive', 'integer'}}, ...  'options', [], ...  'default', 10000);spec(6) = struct( ...  'comment', 'Hard limit on re-estimation iterations', ...  'name', 'hard', ...  'type', {{'number', 'positive', 'integer'}}, ...  'options', [], ...  'default', 100);spec(7) = struct( ...  'comment', 'Anti-cycling heuristic', ...  'name', 'cyc', ...  'type', 'number', ...  'options', {{0 1}}, ...  'default', 1);spec(8) = struct( ...  'comment', 'Basis function type', ...  'name', 'type', ...  'type', 'string', ...  'options', [], ...  'default', 'g');spec(9) = struct( ...  'comment', 'Basis function sharpness', ...  'name', 'exp', ...  'type', 'number', ...  'options', [], ...  'default', 2);spec(10) = struct( ...  'comment', 'Basis function scales', ...  'name', 'scales', ...  'type', {{'vector', 'positive'}}, ...  'options', [], ...  'default', 1);spec(11) = struct( ...  'comment', 'Initial regularisation parameter(s)', ...  'name', 'lambdas', ...  'type', {{'vector', 'positive'}}, ...  'options', [], ...  'default', 1);spec(12) = struct( ...  'comment', 'Reestimate regularisation parameter', ...  'name', 'reest', ...  'type', 'number', ...  'options', {{0 1}}, ...  'default', 1);spec(13) = struct( ...  'comment', 'Verbose output', ...  'name', 'verb', ...  'type', 'number', ...  'options', {{0 1}}, ...  'default', 0);spec(14) = struct( ...  'comment', 'Display graphical timer', ...  'name', 'timer', ...  'type', 'string', ...  'options', [], ...  'default', '');spec(15) = struct( ...  'comment', 'Type of MML re-estimation', ...  'name', 'edm', ...  'type', 'string', ...  'options', {{'em', 'dm'}}, ...  'default', 'dm');% Check number of arguments. Take special action if only one.switch nargincase 1  if isstring(X)    switch X    case 'conf'      conf_print(prog, spec)      return    case 'demo'      [mydemo, myclean] = eval(['demo_' prog]);      run_demo(mydemo, myclean)      return    otherwise      error([prog ': ''' X ''' unrecognised for single string argument'])    end  else    error([prog ': unrecognised type for single argument'])  endcase 2  if isstring(X) & isstring(y)    switch X    case 'conf'      conf_print(prog, spec, y)      return    otherwise      error([prog ': ''' X ''' unrecognised for double string argument'])    end  else    conf = [];  endcase 3otherwise  error([prog ': illegal number of arguments'])end% Check type of input arguments.if ~isnumeric(X) | ndims(X) ~= 2  error([prog ': first argument (X) should be a matrix'])endif ~isnumeric(y) | ndims(y) ~= 2 | size(y,2) ~= 1  error([prog ': second argument (y) should be a column vector'])end% Check for consistent size between X and y.[d,p] = size(X);if size(y,1) ~= p  error([prog ': number of samples inconsistent between X and y'])end% Check the configuration is okay and set initial defaults (if required).conf = conf_check(conf, spec, prog);% Check or set defaults for centres.if isempty(conf.cen)  % The inputs are the centres, if the user doesn't say otherwise.  conf.cen = X;else  % The centre dimension must be equal to the input dimension.  if size(conf.cen,1) ~= d    error([prog ': inconsistent dimensions between X and conf.cen'])  endendC = conf.cen;m = size(C,2);% Check or set defaults for radii.if isempty(conf.rad)  % Default: scaled in each dimension, same for each centre.  conf.rad = (max(X,[],2) - min(X,[],2));  conf.rad = conf.rad(:,ones(m,1));else  % Expand conf.rad using the same rules as for rbf_dm.  if max(size(conf.rad)) == 1    % It's a scalar - same size for each centre and in each dimension.    conf.rad = conf.rad(ones(d,1),ones(m,1));  elseif size(conf.rad,1) == 1 & size(conf.rad,2) == m    % A row vector - same size in each dimension.    conf.rad = conf.rad(ones(d,1),:);  elseif size(conf.rad,1) == d & size(conf.rad,2) == 1    % A column vector - same size for each centre.    conf.rad = conf.rad(:,ones(m,1));  elseif size(conf.rad,1) ~= d    error([prog ': conf.rad has wrong input dimension'])  elseif size(conf.rad,2) ~= m    error([prog ': conf.cen and conf.rad are inconsistent'])  endend% Initialisation for flops and time.stats.comps = flops;stats.ticks = clock;% Feedback header.if conf.verb  fprintf('\n')  fprintf('  scale      lam       %s   ', conf.msc)  if conf.reest    fprintf('    lam   \n')  else    fprintf('\n')  end  fprintf('-----------------------------')  if conf.reest    fprintf('----------')  end  fprintf('\n')end% Set up a timer for scales (if requested).if ~strcmp(conf.timer,'')  tmr1 = get_tmr(struct('name', [prog ' scales ' conf.timer], 'n', length(conf.scales)));end% Loop over scales.best.err = Inf;for s = 1:length(conf.scales)    % What scale are we using.  sca = conf.scales(s);    % So what radius does that imply.  R = sca * conf.rad;    % Next, what's the design matrix (the bias, if there is one, goes in column 1).  H = rbf_dm(X, C, R, struct('type', conf.type, 'exp', conf.exp, 'bias', conf.bias));    % Get the eigen decomposition.  [U,S,V] = svd(H);  mu = diag(S).^2;  if p > m    mu = [mu; zeros(p-m,1)];  end  yu = (U' * y).^2;  % Set up a timer for lambdas (if requested).  if ~strcmp(conf.timer,'')    tmr2 = get_tmr(struct('name', [prog ' lambdas ' conf.timer], 'n', length(conf.lambdas)));  end  % Loop over lambdas.  for l = 1:length(conf.lambdas)        % What initial value of lambda.    lam = conf.lambdas(l);        % Are we re-estimating or guessing?    if conf.reest      % Re-estimating.      switch conf.msc      case 'mml'        % MML, which is optimised over sig and var (not lambda), handled separately.        [err, errs, sig, sigs, var, vars] = ree_mml(mu, yu, lam, m, conf.edm, conf.hard, conf.thresh);        lam = sig / var;      otherwise        % All other MSCs which are optimised over just lambda.        [err, errs, lam, lams] = ree_msc(mu, yu, lam, conf.msc, conf.hard, conf.thresh, conf.cyc);      end    else      % Guessing.      switch conf.msc      case 'mml'        % MML handled separately.        err = ree_mml(mu, yu, lam);      otherwise        % All other MSCs.        err = ree_msc(mu, yu, lam, conf.msc);      end    end        % Get gamma.    gam = sum(mu ./ (lam + mu));    % Test for best.    if err <= best.err      best.sca = sca;      best.lam = lam;      best.gam = gam;      best.err = err;      best.mu = mu;      best.yu = yu;      best.H = H;      best.R = R;      if conf.reest        best.errs = errs;        switch conf.msc        case 'mml'          best.sig = sig;          best.sigs = sigs;          best.var = var;          best.vars = vars;        otherwise          best.lams = lams;        end      end    end        % Feedback.    if conf.verb      fprintf('%9.2e %9.2e %9.2e', sca, conf.lambdas(l), err)      if conf.reest        fprintf(' %9.2e', lam)      end      fprintf('\n');    end        % Increment the lambdas timer.    if ~strcmp(conf.timer,'')      inc_tmr(tmr2)    end    end    % Close the lambdas timer.  if ~strcmp(conf.timer,'')    close(tmr2)  end  % Increment the scales timer.  if ~strcmp(conf.timer,'')    inc_tmr(tmr1)  end  end% Close the scales timer.if ~strcmp(conf.timer,'')  close(tmr1)end% Record the computations and time taken.stats.comps = flops - stats.comps;stats.ticks = etime(clock,stats.ticks);% Get the best R, H and lambda.R = best.R;H = best.H;lam = best.lam;% Work out the variance and weight vector.A = inv(H' * H + lam * eye(size(H,2)));w = A * (H' * y);% Results other than C, R and w go in 'info'.info.A = A;info.H = H;info.stats = stats;info.lam = lam;info.gam = best.gam;info.mu = best.mu;info.yu = best.yu;info.err = best.err;info.scale = best.sca;info.bias = conf.bias;if conf.reest  info.errs = best.errs;  switch conf.msc  case 'mml'    info.sig = best.sig;    info.sigs = best.sigs;    info.var = best.var;    info.vars = best.vars;  otherwise    info.lams = best.lams;  endend% Configuration for rbf_dm also goes into info.info.dmc = struct('type', conf.type, 'exp', conf.exp, 'bias', conf.bias);% Re-estimate lambda and MSC (or sometimes just calculate MSC).function [err, errs, lam, lams] = ree_msc(mu, yu, lam, msc, hard, thresh, cyc)% Initialise.p = length(yu);err = msc_val(p, mu, yu, lam, msc);% If only one output, got MSC (err) so exit.if nargout == 1  returnend% Re-estimate.count = 1;errs = err;lams = lam;converged = 0;while ~converged    % One step re-estimation of lambda.  nlam = msc_lam(p, mu, yu, lam, msc);    % Anti-cycling heuristic.  if cyc & count > 5 & abs(nlam - lams(count)) > abs(nlam - lams(count-1))    nlam = sqrt(lams(count) * lams(count-1));  end    % Recalculate MSC.  nerr = msc_val(p, mu, yu, nlam, msc);    % Check for convergence.  if err == nerr    converged = 1;  elseif abs(err / (err - nerr)) > thresh    converged = 1;  elseif count > hard    converged = 1;  end    % Get ready for next iteration.  count = count + 1;  err = nerr;  errs = [errs err];  lam = nlam;  lams = [lams lam];    end% Get the MSC value.function err = msc_val(p, mu, yu, lam, msc)% Setup.lmu = lam + mu;sse = lam^2 * sum(yu ./ lmu.^2);gam = sum(mu ./ lmu);% Patch to deal with very small lambda.if abs(p - gam) < eps  err = Inf;  return;end% Go.switch msccase 'uev'  err = sse / (p - gam);case 'fpe'  err = sse * (p + gam) / (p * (p - gam));case 'gcv'  err = sse * p / (p - gam)^2;case 'bic'  err = sse * (p + (log(p) - 1) * gam) / (p * (p - gam));end% Get a new lambda value (one step re-estimation).function lam = msc_lam(p, mu, yu, lam, msc)% Setup.lmu = lam + mu;sse = lam^2 * sum(yu ./ lmu.^2);waw = sum(mu .* yu ./ lmu.^3);taa = sum(mu ./ lmu.^2);gam = sum(mu ./ lmu);% Patch to deal with very small lambda.if abs(p - gam) < eps  return;end% Go.switch msccase 'uev'  lam = (sse * taa / waw) / (2 * (p - gam));case 'fpe'  lam = (sse * taa / waw) * p / ((p - gam) * (p + gam));case 'gcv'  lam = (sse * taa / waw) / (p - gam);case 'bic'  lam = (sse * taa / waw) * p * log(p) / (2 * (p - gam) * (p + (log(p) - 1) * gam));end% Re-estimate sig and var for MML (or sometimes just calculate MML).function [err, errs, sig, sigs, var, vars] = ree_mml(mu, yu, lam, m, edm, hard, thresh)% Initialise.p = length(yu);% Change lambda to sig and var.sig = msc_val(p, mu, yu, lam, 'uev');var = sig / lam;% Initial score.err = mml_val(p, mu, yu, sig, var);% If only one output, got MML (err) so exit.if nargout == 1  returnend% Re-estimate.count = 1;sigs = sig;vars = var;errs = err;converged = 0;while ~converged    % One step re-estimation of sig and var.  [nsig, nvar] = eval(['mml_' edm '(p, m, mu, yu, sig, var)']);    % Recalculate MML.  nerr = mml_val(p, mu, yu, nsig, nvar);    % Check for convergence.  if err == nerr    converged = 1;  elseif abs(err / (err - nerr)) > thresh    converged = 1;  elseif count > hard    converged = 1;  end    % Get ready for next iteration.  count = count + 1;  err = nerr;  errs = [errs err];  sig = nsig;  sigs = [sigs sig];  var = nvar;  vars = [vars var];  end% Get the MML value.function err = mml_val(p, mu, yu, sig, var)% Setup and go.vms = var * mu + sig;err = sum(log(vms)) + sum(yu ./ vms);% One step MML re-estimation, DM (David MacKay) version.function [sig, var] = mml_dm(p, m, mu, yu, sig, var)% Setup.vms = var * mu + sig;gam = var * sum(mu ./ vms);ete = sig^2 * sum(yu ./ vms.^2);wtw = var^2 * sum(mu .* yu ./ vms.^2);% Go.sig = ete / (p - gam);var = wtw / gam;% One step MML re-estimation, EM (Expectation-Maximisation) version.function [sig, var] = mml_em(p, m, mu, yu, sig, var)% Setup.vms = var * mu + sig;gam = var * sum(mu ./ vms);ete = sig^2 * sum(yu ./ vms.^2);wtw = var^2 * sum(mu .* yu ./ vms.^2);% Go.sig = (ete + gam * sig) / p;var = (wtw + (m - gam) * var) / m;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美大片一区二区三区| 天堂va蜜桃一区二区三区| 欧美精品一区二区三区久久久| 日韩欧美123| 国产性做久久久久久| 1区2区3区欧美| 亚洲国产一区在线观看| 成人小视频免费在线观看| 日韩一区中文字幕| 欧美体内she精高潮| 夜夜精品浪潮av一区二区三区| 欧美怡红院视频| 色综合婷婷久久| 国产精品中文欧美| www.欧美日韩| 欧美精品一区二区三区很污很色的| 欧美精品久久一区| 国产伦精品一区二区三区视频青涩 | 69久久99精品久久久久婷婷| 在线观看www91| 欧美伦理影视网| 久久久精品综合| 天天色天天爱天天射综合| 激情av综合网| 精品视频在线免费看| 国产午夜一区二区三区| 日韩精品亚洲专区| 国产**成人网毛片九色 | 日韩你懂的电影在线观看| 最新成人av在线| 国产精品一区三区| 日韩一区二区影院| 一区二区三区鲁丝不卡| 成人av动漫网站| 日本一区二区免费在线观看视频 | 精品成人一区二区三区四区| 夜夜嗨av一区二区三区中文字幕 | 日本在线不卡视频| 欧洲精品一区二区三区在线观看| 国产目拍亚洲精品99久久精品| 日韩黄色小视频| 欧美一区二区三区免费大片 | 欧美色图12p| 亚洲成人免费影院| 欧美一区二区三区影视| 午夜精品一区二区三区三上悠亚| 欧美日韩三级在线| 视频一区在线视频| 精品久久久久久久一区二区蜜臀| 久久成人免费电影| 久久日韩精品一区二区五区| 国产精品911| 亚洲人妖av一区二区| 777a∨成人精品桃花网| 久久成人久久鬼色| 亚洲欧洲性图库| 3751色影院一区二区三区| 国产精品一区专区| 亚洲欧美另类小说视频| 91精品一区二区三区久久久久久| 亚洲成人av电影在线| 69堂精品视频| 成人一区二区在线观看| 亚洲v日本v欧美v久久精品| 欧美成人女星排名| 91蜜桃在线免费视频| 日本不卡一区二区三区高清视频| 中文字幕av不卡| 91麻豆精品国产自产在线| 成人av免费网站| 国产一区二区三区久久久| 蜜桃91丨九色丨蝌蚪91桃色| www.欧美色图| 亚洲chinese男男1069| 亚洲国产精品激情在线观看| 欧美三级欧美一级| 色狠狠色噜噜噜综合网| 国产不卡视频一区| 国产又黄又大久久| 久久成人羞羞网站| 精品在线亚洲视频| 日韩av网站免费在线| 亚洲成a人片综合在线| 亚洲综合自拍偷拍| 亚洲色图另类专区| 亚洲最色的网站| 亚洲国产综合色| 青草av.久久免费一区| 日本成人在线网站| 精品一区在线看| 国产精品一区一区| 成人精品一区二区三区中文字幕| 成人久久18免费网站麻豆| 99这里都是精品| 欧美人与禽zozo性伦| 5月丁香婷婷综合| 久久亚洲精品国产精品紫薇| 国产精品视频免费看| 亚洲精品免费在线| 日本午夜精品视频在线观看| 精品一区二区三区在线观看| 国产99久久久国产精品潘金| 97se亚洲国产综合自在线| 欧美日韩精品一区二区| 亚洲精品在线电影| 国产精品色一区二区三区| 亚洲视频在线一区观看| 免费观看日韩电影| 成人黄色片在线观看| 91精品国产全国免费观看| 国产精品久久免费看| 麻豆视频观看网址久久| 色诱亚洲精品久久久久久| 精品电影一区二区| 午夜影院在线观看欧美| voyeur盗摄精品| 久久婷婷成人综合色| 亚洲一区二区三区自拍| 成人av在线播放网站| 日韩精品一区二区三区中文不卡| 一区二区在线观看av| 床上的激情91.| 久久久久久久久久久久久女国产乱| 天堂在线亚洲视频| 91蝌蚪porny九色| 日本一区二区视频在线| 极品少妇xxxx精品少妇| 精品91自产拍在线观看一区| 老司机精品视频导航| 91精品国产综合久久久久久久| 亚洲国产精品一区二区久久恐怖片| 成人黄色小视频在线观看| 中文字幕av一区二区三区免费看| 蜜臀av一区二区在线免费观看 | 久久精品在线免费观看| 国产一区91精品张津瑜| 亚洲精品一区二区三区蜜桃下载| 精品午夜久久福利影院| 欧美精品一区二区三区一线天视频 | 欧美色网站导航| 亚洲va欧美va天堂v国产综合| 欧美日韩电影在线| 美女尤物国产一区| 中文字幕中文字幕一区| 91黄色在线观看| 免费av网站大全久久| 久久精品亚洲国产奇米99| 99精品热视频| 美国一区二区三区在线播放| 久久免费美女视频| 99在线精品一区二区三区| 亚洲成av人影院在线观看网| 精品久久久久99| 色哟哟一区二区| 九九在线精品视频| 亚洲综合免费观看高清完整版在线| 制服视频三区第一页精品| 国产成人a级片| 五月天亚洲婷婷| 亚洲乱码中文字幕| 久久综合九色综合欧美就去吻| 91蜜桃免费观看视频| 麻豆视频一区二区| 丝袜亚洲另类欧美综合| 亚洲三级电影网站| 日本一区二区免费在线观看视频| 91精品蜜臀在线一区尤物| 色八戒一区二区三区| 菠萝蜜视频在线观看一区| 极品少妇xxxx偷拍精品少妇| 日本 国产 欧美色综合| 夜夜爽夜夜爽精品视频| 亚洲人妖av一区二区| 1024成人网| 亚洲欧美国产高清| 中文字幕一区二区三区不卡 | 99久久久国产精品免费蜜臀| 成人黄色在线网站| 99精品久久久久久| 91麻豆高清视频| 在线观看一区二区视频| 99国产精品久久久| 欧美日韩视频在线观看一区二区三区 | 精品国产乱码久久久久久浪潮| 91精品国产欧美一区二区18| 精品少妇一区二区三区免费观看 | 无吗不卡中文字幕| 蜜臀av一级做a爰片久久| 香蕉成人啪国产精品视频综合网| 亚洲精品中文字幕乱码三区| 亚洲福利视频一区| 久久99这里只有精品| 成人激情综合网站| 欧美丰满少妇xxxbbb| 亚洲国产精品av| 视频一区中文字幕国产| 成人高清伦理免费影院在线观看| 91视视频在线直接观看在线看网页在线看| 91精品福利在线| 国产婷婷精品av在线|