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

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

?? logistk.m

?? kalman濾波全部份,供大家參考!!!
?? M
字號:
function [beta,post,lli] = logistK(x,y,w,beta)
% [beta,post,lli] = logistK(x,y,beta,w) 
%
% k-class logistic regression with optional sample weights
%
% k = number of classes
% n = number of samples
% d = dimensionality of samples
%
% INPUT
% 	x 	dxn matrix of n input column vectors
% 	y 	kxn vector of class assignments
% 	[w]	1xn vector of sample weights 
%	[beta]	dxk matrix of model coefficients
%
% OUTPUT
% 	beta 	dxk matrix of fitted model coefficients 
%		(beta(:,k) are fixed at 0) 
% 	post 	kxn matrix of fitted class posteriors
% 	lli 	log likelihood
%
% Let p(i,j) = exp(beta(:,j)'*x(:,i)),
% Class j posterior for observation i is:
%	post(j,i) = p(i,j) / (p(i,1) + ... p(i,k))
%
% See also logistK_eval.
%
% David Martin <dmartin@eecs.berkeley.edu> 
% May 3, 2002

% Copyright (C) 2002 David R. Martin <dmartin@eecs.berkeley.edu>
%
% This program is free software; you can redistribute it and/or
% modify it under the terms of the GNU General Public License as
% published by the Free Software Foundation; either version 2 of the
% License, or (at your option) any later version.
% 
% This program is distributed in the hope that it will be useful, but
% WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
% General Public License for more details.
% 
% You should have received a copy of the GNU General Public License
% along with this program; if not, write to the Free Software
% Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
% 02111-1307, USA, or see http://www.gnu.org/copyleft/gpl.html.

% TODO - this code would be faster if x were transposed

error(nargchk(2,4,nargin));

debug = 0;
if debug>0,
  h=figure(1);
  set(h,'DoubleBuffer','on');
end

% get sizes
[d,nx] = size(x);
[k,ny] = size(y);

% check sizes
if k < 2,
  error('Input y must encode at least 2 classes.');
end
if nx ~= ny,
  error('Inputs x,y not the same length.'); 
end

n = nx;

% make sure class assignments have unit L1-norm
sumy = sum(y,1);
if abs(1-sumy) > eps,
  sumy = sum(y,1);
  for i = 1:k, y(i,:) = y(i,:) ./ sumy; end
end
clear sumy;

% if sample weights weren't specified, set them to 1
if nargin < 3, 
  w = ones(1,n);
end

% normalize sample weights so max is 1
w = w / max(w);

% if starting beta wasn't specified, initialize randomly
if nargin < 4,
  beta = 1e-3*rand(d,k);
  beta(:,k) = 0;	% fix beta for class k at zero
else
  if sum(beta(:,k)) ~= 0,
    error('beta(:,k) ~= 0');
  end
end

stepsize = 1;
minstepsize = 1e-2;

post = computePost(beta,x);
lli = computeLogLik(post,y,w);

for iter = 1:100,
  %disp(sprintf('  logist iter=%d lli=%g',iter,lli));
  vis(x,y,beta,lli,d,k,iter,debug);

  % gradient and hessian
  [g,h] = derivs(post,x,y,w);

  % make sure Hessian is well conditioned
  if rcond(h) < eps, 
    % condition with Levenberg-Marquardt method
    for i = -16:16,
      h2 = h .* ((1 + 10^i)*eye(size(h)) + (1-eye(size(h))));
      if rcond(h2) > eps, break, end
    end
    if rcond(h2) < eps,
      warning(['Stopped at iteration ' num2str(iter) ...
               ' because Hessian can''t be conditioned']);
      break 
    end
    h = h2;
  end

  % save lli before update
  lli_prev = lli;

  % Newton-Raphson with step-size halving
  while stepsize >= minstepsize,
    % Newton-Raphson update step
    step = stepsize * (h \ g);
    beta2 = beta;
    beta2(:,1:k-1) = beta2(:,1:k-1) - reshape(step,d,k-1);

    % get the new log likelihood
    post2 = computePost(beta2,x);
    lli2 = computeLogLik(post2,y,w);

    % if the log likelihood increased, then stop
    if lli2 > lli, 
      post = post2; lli = lli2; beta = beta2;
      break
    end

    % otherwise, reduce step size by half
    stepsize = 0.5 * stepsize;
  end

  % stop if the average log likelihood has gotten small enough
  if 1-exp(lli/n) < 1e-2, break, end

  % stop if the log likelihood changed by a small enough fraction
  dlli = (lli_prev-lli) / lli;
  if abs(dlli) < 1e-3, break, end

  % stop if the step size has gotten too small
  if stepsize < minstepsize, brea, end

  % stop if the log likelihood has decreased; this shouldn't happen
  if lli < lli_prev,
    warning(['Stopped at iteration ' num2str(iter) ...
             ' because the log likelihood decreased from ' ...
             num2str(lli_prev) ' to ' num2str(lli) '.' ...
            ' This may be a bug.']);
    break
  end
end

if debug>0, 
  vis(x,y,beta,lli,d,k,iter,2); 
end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% class posteriors
function post = computePost(beta,x)
  [d,n] = size(x);
  [d,k] = size(beta);
  post = zeros(k,n);
  bx = zeros(k,n);
  for j = 1:k, 
    bx(j,:) = beta(:,j)'*x; 
  end
  for j = 1:k, 
    post(j,:) = 1 ./ sum(exp(bx - repmat(bx(j,:),k,1)),1);
  end
  
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% log likelihood
function lli = computeLogLik(post,y,w)
  [k,n] = size(post);
  lli = 0;
  for j = 1:k,
    lli = lli + sum(w.*y(j,:).*log(post(j,:)+eps));
  end
  if isnan(lli), 
    error('lli is nan'); 
  end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% gradient and hessian
%% These are computed in what seems a verbose manner, but it is
%% done this way to use minimal memory.  x should be transposed
%% to make it faster.
function [g,h] = derivs(post,x,y,w)

  [k,n] = size(post);
  [d,n] = size(x);

  % first derivative of likelihood w.r.t. beta
  g = zeros(d,k-1);
  for j = 1:k-1,
    wyp = w .* (y(j,:) - post(j,:));
    for ii = 1:d, 
      g(ii,j) = x(ii,:) * wyp'; 
    end
  end
  g = reshape(g,d*(k-1),1);

  % hessian of likelihood w.r.t. beta
  h = zeros(d*(k-1),d*(k-1)); 
  for i = 1:k-1,	% diagonal
    wt = w .* post(i,:) .* (1 - post(i,:));
    hii = zeros(d,d);
    for a = 1:d,
      wxa = wt .* x(a,:);
      for b = a:d,
        hii_ab = wxa * x(b,:)';
        hii(a,b) = hii_ab;
        hii(b,a) = hii_ab;
      end
    end
    h( (i-1)*d+1 : i*d , (i-1)*d+1 : i*d ) = -hii;
  end
  for i = 1:k-1,	% off-diagonal
    for j = i+1:k-1,
      wt = w .* post(j,:) .* post(i,:);
      hij = zeros(d,d);
      for a = 1:d,
        wxa = wt .* x(a,:);
        for b = a:d,
          hij_ab = wxa * x(b,:)';
          hij(a,b) = hij_ab;
          hij(b,a) = hij_ab;
        end
      end
      h( (i-1)*d+1 : i*d , (j-1)*d+1 : j*d ) = hij;
      h( (j-1)*d+1 : j*d , (i-1)*d+1 : i*d ) = hij;
    end
  end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% debug/visualization
function vis (x,y,beta,lli,d,k,iter,debug)

  if debug<=0, return, end

  disp(['iter=' num2str(iter) ' lli=' num2str(lli)]);
  if debug<=1, return, end

  if d~=3 | k>10, return, end

  figure(1);
  res = 100;
  r = abs(max(max(x)));
  dom = linspace(-r,r,res);
  [px,py] = meshgrid(dom,dom);
  xx = px(:); yy = py(:);
  points = [xx' ; yy' ; ones(1,res*res)];
  func = zeros(k,res*res);
  for j = 1:k,
    func(j,:) = exp(beta(:,j)'*points);
  end
  [mval,ind] = max(func,[],1);
  hold off; 
  im = reshape(ind,res,res);
  imagesc(xx,yy,im);
  hold on;
  syms = {'w.' 'wx' 'w+' 'wo' 'w*' 'ws' 'wd' 'wv' 'w^' 'w<'};
  for j = 1:k,
    [mval,ind] = max(y,[],1);
    ind = find(ind==j);
    plot(x(1,ind),x(2,ind),syms{j});
  end
  pause(0.1);

% eof

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91免费在线视频观看| 国内外精品视频| 欧美色男人天堂| 日韩精品福利网| 久久亚洲春色中文字幕久久久| 亚洲国产一区在线观看| 欧美日韩中文另类| 日本不卡免费在线视频| 久久久亚洲精品石原莉奈| 97se亚洲国产综合自在线| 天天影视涩香欲综合网| 久久久久亚洲综合| 欧美三级在线播放| 91精品国产免费久久综合| 久久一夜天堂av一区二区三区| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 韩国女主播成人在线观看| 精品粉嫩超白一线天av| 欧美日韩大陆在线| 精品视频在线看| 国产乱一区二区| 一区二区三区中文在线| 综合中文字幕亚洲| 国产色爱av资源综合区| 综合久久一区二区三区| heyzo一本久久综合| 国产sm精品调教视频网站| 在线观看免费成人| 久久久久久毛片| 一区二区在线看| 国产成人综合网| 欧美老肥妇做.爰bbww视频| 国产欧美1区2区3区| 亚洲国产一区二区三区青草影视 | 日韩一区精品视频| 久久久久国产精品麻豆ai换脸 | 日本精品免费观看高清观看| 极品美女销魂一区二区三区免费 | 色偷偷久久人人79超碰人人澡| 韩国三级中文字幕hd久久精品| 午夜激情一区二区三区| 亚洲一线二线三线久久久| 91欧美一区二区| 国产欧美日韩视频在线观看| 蜜臀精品久久久久久蜜臀| 欧美这里有精品| 亚洲精品国产一区二区三区四区在线| 成人午夜在线播放| 国产欧美精品区一区二区三区| 国产在线乱码一区二区三区| 精品伦理精品一区| 麻豆成人91精品二区三区| 97se狠狠狠综合亚洲狠狠| 国产精品久久久久久久久晋中| 国产成人亚洲精品狼色在线| 国产日韩欧美a| 国产成人av福利| 日韩欧美亚洲一区二区| 日韩免费高清av| 91精品国产91综合久久蜜臀| 337p亚洲精品色噜噜| 欧美视频在线观看一区二区| 久久久久久久久久久久电影 | 国产精品一线二线三线精华| 激情综合网天天干| 日本中文一区二区三区| 丁香六月综合激情| 欧美综合亚洲图片综合区| 欧美综合一区二区| 日韩一级大片在线观看| 欧美成人猛片aaaaaaa| 精品日韩av一区二区| 国产精品久久久久aaaa樱花 | 久久蜜桃一区二区| 精品国产伦一区二区三区观看方式| 99久久精品久久久久久清纯| 日韩国产一区二| 国模冰冰炮一区二区| 精品视频全国免费看| 美女国产一区二区| 亚洲成人综合网站| 亚洲欧洲精品天堂一级| 91亚洲精品久久久蜜桃| 偷窥国产亚洲免费视频| 日韩欧美国产麻豆| 成人午夜在线播放| 婷婷六月综合亚洲| 国产精品久久久久9999吃药| 日韩一区二区免费视频| 成人免费毛片app| 亚洲第一会所有码转帖| 蜜臀久久99精品久久久久久9 | 欧美日韩精品一区二区三区蜜桃 | 制服.丝袜.亚洲.另类.中文| 日本不卡的三区四区五区| 国产精品视频第一区| 中文字幕亚洲不卡| 欧美精品一区二区三区蜜臀| 色综合欧美在线视频区| 丰满放荡岳乱妇91ww| 日本一道高清亚洲日美韩| 日韩欧美国产成人一区二区| 欧美日韩精品一二三区| 丁香激情综合五月| 乱一区二区av| 亚洲成av人影院| 日韩一区欧美小说| 精品国产一区二区在线观看| 欧美日韩在线三区| 91尤物视频在线观看| 国产一区二区三区精品视频| 亚洲国产日韩a在线播放性色| 中文字幕亚洲一区二区av在线| 久久精品日产第一区二区三区高清版| 欧美日韩亚洲不卡| av不卡免费在线观看| 午夜精品123| 中文字幕一区二区在线播放 | 美洲天堂一区二卡三卡四卡视频 | gogogo免费视频观看亚洲一| 国产在线观看免费一区| 五月天久久比比资源色| 亚洲国产精品一区二区久久恐怖片| 国产精品乱码妇女bbbb| 久久久久国产免费免费| 久久伊99综合婷婷久久伊| 日韩精品中文字幕一区二区三区| 欧美美女一区二区| 欧美色爱综合网| 欧美日韩高清一区二区不卡 | 色综合中文字幕国产| 成人avav影音| 97久久精品人人爽人人爽蜜臀| 成人午夜私人影院| 99久久综合国产精品| 91丝袜美腿高跟国产极品老师| 99久久久国产精品| 色菇凉天天综合网| 欧美性高清videossexo| 欧美日韩国产在线播放网站| 欧美日韩精品一二三区| 日韩欧美中文字幕精品| 精品国产乱码久久久久久浪潮| 久久久www成人免费无遮挡大片| 国产日韩影视精品| 日本一区二区综合亚洲| 国产精品欧美极品| 一区二区三区**美女毛片| 亚瑟在线精品视频| 美女www一区二区| 亚洲精品中文在线观看| 中文天堂在线一区| 国产精品人妖ts系列视频| 国产精品另类一区| 亚洲自拍与偷拍| 日韩国产欧美三级| 久久成人av少妇免费| 色天天综合色天天久久| 精品电影一区二区| 国产精品日韩精品欧美在线| 亚洲精品国产精品乱码不99| 美女网站在线免费欧美精品| 国产成人一级电影| 在线国产亚洲欧美| 欧美mv日韩mv国产网站| 国产精品成人一区二区三区夜夜夜| 亚洲自拍另类综合| 精品一区二区三区影院在线午夜| 菠萝蜜视频在线观看一区| 欧美三级乱人伦电影| 亚洲精品一区二区三区99 | 在线视频欧美精品| 91精品国产乱| 国产精品久久久久久久久免费桃花| 香蕉成人啪国产精品视频综合网| 美女任你摸久久| 大桥未久av一区二区三区中文| 欧美在线观看一二区| 久久综合九色综合欧美就去吻| 尤物在线观看一区| 黄网站免费久久| 欧美色图12p| 国产精品丝袜一区| 日韩成人午夜精品| 99久久婷婷国产精品综合| 日韩色在线观看| 一区二区日韩电影| 国产大陆a不卡| 日韩一级高清毛片| 一区二区三区在线观看网站| 另类小说一区二区三区| 欧美日韩在线一区二区| 国产精品国产三级国产普通话三级 | 国产精品久久久久久久久免费桃花 | 午夜精品成人在线视频| www.欧美亚洲| 久久久99精品久久| 伦理电影国产精品| 欧美挠脚心视频网站| 欧美成人欧美edvon|