You can subscribe to this list here.
2001 
_{Jan}

_{Feb}

_{Mar}

_{Apr}

_{May}

_{Jun}

_{Jul}
(10) 
_{Aug}
(5) 
_{Sep}
(3) 
_{Oct}
(41) 
_{Nov}
(41) 
_{Dec}
(33) 

2002 
_{Jan}
(75) 
_{Feb}
(10) 
_{Mar}
(170) 
_{Apr}
(174) 
_{May}
(66) 
_{Jun}
(11) 
_{Jul}
(10) 
_{Aug}
(44) 
_{Sep}
(73) 
_{Oct}
(28) 
_{Nov}
(139) 
_{Dec}
(52) 
2003 
_{Jan}
(35) 
_{Feb}
(93) 
_{Mar}
(62) 
_{Apr}
(10) 
_{May}
(55) 
_{Jun}
(70) 
_{Jul}
(37) 
_{Aug}
(16) 
_{Sep}
(56) 
_{Oct}
(31) 
_{Nov}
(57) 
_{Dec}
(83) 
2004 
_{Jan}
(85) 
_{Feb}
(67) 
_{Mar}
(27) 
_{Apr}
(37) 
_{May}
(75) 
_{Jun}
(85) 
_{Jul}
(160) 
_{Aug}
(68) 
_{Sep}
(104) 
_{Oct}
(25) 
_{Nov}
(39) 
_{Dec}
(23) 
2005 
_{Jan}
(10) 
_{Feb}
(45) 
_{Mar}
(43) 
_{Apr}
(19) 
_{May}
(108) 
_{Jun}
(31) 
_{Jul}
(41) 
_{Aug}
(23) 
_{Sep}
(65) 
_{Oct}
(58) 
_{Nov}
(44) 
_{Dec}
(54) 
2006 
_{Jan}
(96) 
_{Feb}
(27) 
_{Mar}
(69) 
_{Apr}
(59) 
_{May}
(67) 
_{Jun}
(35) 
_{Jul}
(13) 
_{Aug}
(461) 
_{Sep}
(160) 
_{Oct}
(399) 
_{Nov}
(32) 
_{Dec}
(72) 
2007 
_{Jan}
(316) 
_{Feb}
(305) 
_{Mar}
(318) 
_{Apr}
(54) 
_{May}
(194) 
_{Jun}
(173) 
_{Jul}
(282) 
_{Aug}
(91) 
_{Sep}
(227) 
_{Oct}
(365) 
_{Nov}
(168) 
_{Dec}
(18) 
2008 
_{Jan}
(71) 
_{Feb}
(111) 
_{Mar}
(155) 
_{Apr}
(173) 
_{May}
(70) 
_{Jun}
(67) 
_{Jul}
(55) 
_{Aug}
(83) 
_{Sep}
(32) 
_{Oct}
(68) 
_{Nov}
(80) 
_{Dec}
(29) 
2009 
_{Jan}
(46) 
_{Feb}
(18) 
_{Mar}
(95) 
_{Apr}
(76) 
_{May}
(140) 
_{Jun}
(98) 
_{Jul}
(84) 
_{Aug}
(123) 
_{Sep}
(94) 
_{Oct}
(131) 
_{Nov}
(142) 
_{Dec}
(125) 
2010 
_{Jan}
(128) 
_{Feb}
(158) 
_{Mar}
(172) 
_{Apr}
(134) 
_{May}
(94) 
_{Jun}
(84) 
_{Jul}
(32) 
_{Aug}
(127) 
_{Sep}
(167) 
_{Oct}
(109) 
_{Nov}
(69) 
_{Dec}
(78) 
2011 
_{Jan}
(39) 
_{Feb}
(58) 
_{Mar}
(52) 
_{Apr}
(47) 
_{May}
(56) 
_{Jun}
(76) 
_{Jul}
(55) 
_{Aug}
(54) 
_{Sep}
(165) 
_{Oct}
(255) 
_{Nov}
(328) 
_{Dec}
(263) 
2012 
_{Jan}
(82) 
_{Feb}
(147) 
_{Mar}
(400) 
_{Apr}
(216) 
_{May}
(209) 
_{Jun}
(160) 
_{Jul}
(86) 
_{Aug}
(141) 
_{Sep}
(156) 
_{Oct}
(6) 
_{Nov}

_{Dec}

S  M  T  W  T  F  S 




1

2

3
(1) 
4

5

6
(1) 
7
(1) 
8

9
(3) 
10

11

12
(2) 
13

14
(1) 
15

16
(1) 
17
(3) 
18
(5) 
19
(4) 
20
(5) 
21
(1) 
22
(13) 
23
(5) 
24

25

26

27
(2) 
28
(1) 
29
(18) 
30
(2) 
31


From: Arno Onken <whyly@us...>  20060327 00:57:10

Update of /cvsroot/octave/octaveforge/main/statistics In directory sc8prcvs1.sourceforge.net:/tmp/cvsserv13095 Added Files: hmmviterbi.m Log Message: Initial commit into CVS  NEW FILE: hmmviterbi.m  ## Copyright (C) 2006 Arno Onken <whyly(at)gmx.net> ## ## 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 021111307 USA ## * texinfo * ## @deftypefn {Function File} {@var{vpath} =} hmmviterbi (@var{sequence}, @var{transprob}, @var{outprob}) ## Uses the Viterbi algorithm to find the Viterbi path for a Hidden Markov ## Model given a sequence of outputs. The model assumes that the generation ## begins with state @code{1} in step @code{0} but does not include step ## @code{0} in the generated states and sequence ## ## Arguments are ## ## @itemize ## @item ## @var{sequence} is the vector of length @var{len} with given outputs. The ## outputs must be integers ranging from @code{1} to @code{columns(outprob)} ## @item ## @var{transprob} is the matrix with the transition probabilities for the ## states. @code{transprob(i,j)} is the probability for a transition to ## state @code{j} given state @code{i} ## @item ## @var{outprob} is the matrix with the output probabilities. ## @code{outprob(i,j)} is the probability for generating output @code{j} ## given state @code{i} ## @end itemize ## ## Return values are ## ## @itemize ## @item ## @var{vpath} is the vector of the same length as @var{sequence} with the ## estimated hidden states. The states are integers ranging from @code{1} to ## @code{columns(transprob)} ## @end itemize ## ## @end deftypefn ## Example: ## transprob = [0.8 0.2; 0.4 0.6]; ## outprob = [0.2 0.4 0.4; 0.7 0.2 0.1]; ## [sequence, states] = hmmgenerate(25, transprob, outprob) ## vpath = hmmviterbi(sequence, transprob, outprob) ## References: ##  Matlab 7.0 documentation (pdf) ##  http://en.wikipedia.org/wiki/Viterbi_algorithm function vpath = hmmviterbi(sequence, transprob, outprob) # Check arguments if (nargin != 3) usage("vpath = hmmviterbi(sequence, transprob, outprob)"); endif if (! isvector(sequence) && ! isempty(sequence)) error("hmmgenerate: sequence must be a vector") endif if (! ismatrix(transprob)) error("hmmgenerate: transprob must be a nonempty numeric matrix"); endif if (! ismatrix(outprob)) error("hmmgenerate: outprob must be a nonempty numeric matrix"); endif len = length(sequence); # nstate is the number of states of the Hidden Markow Model nstate = rows(transprob); # noutput is the number of different outputs that the Hidden Markow Model # can generate noutput = columns(outprob); # Check whether transprob and outprob are feasible for a Hidden Markow Model if (columns(transprob) != nstate) error("hmmgenerate: transprob must be a square matrix"); endif if (rows(outprob) != nstate) error("hmmgenerate: outprob must have the same number of rows as transprob"); endif # Each row in transprob and outprob should contain probabilities # => scale so that the sum is 1 # A zero row remains zero #  for transprob s = sum(transprob, 2); s(s==0) = 1; transprob = transprob ./ (s * ones(1, columns(transprob))); #  for outprob s = sum(outprob, 2); s(s==0) = 1; outsprob = outprob ./ (s * ones(1, columns(outprob))); # Store the path starting from i in spath(i, :) spath = ones(nstate, len+1); # Set the first state for each path spath(:, 1) = (1:nstate)'; # Store the probability for path i in spathprob(i) spathprob = transprob(1, :); # Find the most likely paths for the given output sequence for i = 1:len # Calculate the new probabilities for the continuation with each state nextpathprob = ((spathprob' .* outprob(:, sequence(i))) * ones(1, nstate)) .* transprob; # Find the paths with the highest probabilities [spathprob, mindex] = max(nextpathprob); # Update spath and spathprob with the new paths spath = spath(mindex, :); spath(:, i+1) = (1:nstate)'; endfor # Set vpath to the most likely path # We do not want the last state because we do not have an output for it [m, mindex] = max(spathprob); vpath = spath(mindex, 1:len); endfunction %!test %! sequence = [1 2 1 1 1 2 2 1 2 3 3 3 3 2 3 1 1 1 1 3 3 2 3 1 3]; %! transprob = [0.8 0.2; 0.4 0.6]; %! outprob = [0.2 0.4 0.4; 0.7 0.2 0.1]; %! vpath = hmmviterbi(sequence, transprob, outprob); %! expected = [1 1 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1]; %! assert(vpath, expected); 
From: Arno Onken <whyly@us...>  20060327 00:55:58

Update of /cvsroot/octave/octaveforge/main/statistics In directory sc8prcvs1.sourceforge.net:/tmp/cvsserv12578 Added Files: hmmgenerate.m Log Message: Initial commit into CVS  NEW FILE: hmmgenerate.m  ## Copyright (C) 2006 Arno Onken <whyly(at)gmx.net> ## ## 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 021111307 USA ## * texinfo * ## @deftypefn {Function File} {[@var{sequence}, @var{states}] =} hmmgenerate (@var{len}, @var{transprob}, @var{outprob}) ## Generates an output sequence and hidden states for a Hidden Markov Model. ## The model starts with state @code{1} at step @code{0} but will not ## include step @code{0} in the generated states and sequence ## ## Arguments are ## ## @itemize ## @item ## @var{len} is the number of steps to generate. @var{sequence} and ## @var{states} will have @var{len} entries each ## @item ## @var{transprob} is the matrix with the transition probabilities for the ## states. @code{transprob(i,j)} is the probability for a transition to ## state @code{j} given state @code{i} ## @item ## @var{outprob} is the matrix with the output probabilities. ## @code{outprob(i,j)} is the probability for generating output @code{j} ## given state @code{i} ## @end itemize ## ## Return values are ## ## @itemize ## @item ## @var{sequence} is a vector of length @var{len} with the generated ## outputs. The outputs are integers ranging from @code{1} to ## @code{columns(outprob)} ## @item ## @var{states} is a vector of length @var{len} with the generated hidden ## states. The states are integers ranging from @code{1} to ## @code{columns(transprob)} ## @end itemize ## ## @end deftypefn ## Example: ## transprob = [0.8 0.2; 0.4 0.6]; ## outprob = [0.2 0.4 0.4; 0.7 0.2 0.1]; ## [sequence, states] = hmmgenerate(25, transprob, outprob) ## References: ##  Matlab 7.0 documentation (pdf) ##  http://en.wikipedia.org/wiki/Hidden_Markov_Model function [sequence, states] = hmmgenerate(len, transprob, outprob) # Check arguments if (nargin != 3) usage("[sequence, states] = hmmgenerate(len, transprob, outprob)"); endif if (! isscalar(len)  len < 0) error("hmmgenerate: len must be a nonnegative scalar value") endif if (! ismatrix(transprob)) error("hmmgenerate: transprob must be a nonempty numeric matrix"); endif if (! ismatrix(outprob)) error("hmmgenerate: outprob must be a nonempty numeric matrix"); endif # nstate is the number of states of the Hidden Markow Model nstate = rows(transprob); # noutput is the number of different outputs that the Hidden Markow Model # can generate noutput = columns(outprob); # Check whether transprob and outprob are feasible for a Hidden Markow Model if (columns(transprob) != nstate) error("hmmgenerate: transprob must be a square matrix"); endif if (rows(outprob) != nstate) error("hmmgenerate: outprob must have the same number of rows as transprob"); endif # Each row in transprob and outprob should contain probabilities # => scale so that the sum is 1 # A zero row remains zero #  for transprob s = sum(transprob, 2); s(s==0) = 1; transprob = transprob ./ (s * ones(1, columns(transprob))); #  for outprob s = sum(outprob, 2); s(s==0) = 1; outsprob = outprob ./ (s * ones(1, columns(outprob))); # Generate sequences of uniformly distributed random numbers between 0 and 1 #  for the state transitions transdraw = rand(1, len); #  and the outputs outdraw = rand(1, len); # Generate the return vectors # They remain unchanged if the according probability row of transprob # and outprob contain, respectively, only zeros sequence = ones(1, len); states = ones(1, len); # Calculate cumulated probabilities backwards for easy comparison with the # generated random numbers # Cumulated probability in first column must always be 1 # We might have a zero row #  for transprob transprob(:, end:1:1) = cumsum(transprob(:, end:1:1), 2); transprob(:, 1) = 1; #  for outprob outprob(:, end:1:1) = cumsum(outprob(:, end:1:1), 2); outprob(:, 1) = 1; # cstate is the current state # Start in state 1 but do not include it in the states vector cstate = 1; for i = 1:len # Compare the randon number i of transdraw to the cumulated probability # of the state transition and set the transition accordingly states(i) = sum(transdraw(i) <= transprob(cstate, :)); cstate = states(i); # The same for the output of the state sequence(i) = sum(outdraw(i) <= outprob(cstate, :)); endfor endfunction %!test %! len = 25; %! transprob = [0.8 0.2; 0.4 0.6]; %! outprob = [0.2 0.4 0.4; 0.7 0.2 0.1]; %! [sequence, states] = hmmgenerate(len, transprob, outprob); %! assert(length(sequence), len); %! assert(length(states), len); %! assert(min(sequence) >= 1); %! assert(max(sequence) <= columns(outprob)); %! assert(min(states) >= 1); %! assert(max(states) <= rows(transprob)); 