[mlpack-svn] r10873 - mlpack/trunk/src/mlpack/tests
fastlab-svn at coffeetalk-1.cc.gatech.edu
fastlab-svn at coffeetalk-1.cc.gatech.edu
Sat Dec 17 01:37:23 EST 2011
Author: rcurtin
Date: 2011-12-17 01:37:23 -0500 (Sat, 17 Dec 2011)
New Revision: 10873
Modified:
mlpack/trunk/src/mlpack/tests/hmm_test.cpp
Log:
Normalize vectors because Probabilities() doesn't do it anymore.
Modified: mlpack/trunk/src/mlpack/tests/hmm_test.cpp
===================================================================
--- mlpack/trunk/src/mlpack/tests/hmm_test.cpp 2011-12-16 23:12:35 UTC (rev 10872)
+++ mlpack/trunk/src/mlpack/tests/hmm_test.cpp 2011-12-17 06:37:23 UTC (rev 10873)
@@ -171,6 +171,7 @@
HMM<DiscreteDistribution> hmm(1, 2); // 1 state, 2 emissions.
// Randomize the emission matrix.
hmm.Emission()[0].Probabilities() = arma::randu<arma::vec>(2);
+ hmm.Emission()[0].Probabilities() /= accu(hmm.Emission()[0].Probabilities());
// P(each emission) = 0.5.
// I've been careful to make P(first emission = 0) = P(first emission = 1).
@@ -291,8 +292,11 @@
transition.randu(3, 3);
emission[0].Probabilities() = arma::randu<arma::vec>(6);
+ emission[0].Probabilities() /= accu(emission[0].Probabilities());
emission[1].Probabilities() = arma::randu<arma::vec>(6);
+ emission[1].Probabilities() /= accu(emission[1].Probabilities());
emission[2].Probabilities() = arma::randu<arma::vec>(6);
+ emission[2].Probabilities() /= accu(emission[2].Probabilities());
// Normalize so they we have a correct transition matrix.
for (size_t col = 0; col < 3; col++)
@@ -386,6 +390,8 @@
// Now find the empirical probabilities of each state.
arma::vec emissionProb(4);
arma::vec stateProb(2);
+ emissionProb.zeros();
+ stateProb.zeros();
for (size_t i = 0; i < 100000; i++)
{
emissionProb[(size_t) dataSeq.col(i)[0] + 0.5]++;
@@ -415,9 +421,13 @@
arma::mat transition(4, 4);
std::vector<DiscreteDistribution> emission(4);
emission[0].Probabilities() = arma::randu<arma::vec>(6);
+ emission[0].Probabilities() /= accu(emission[0].Probabilities());
emission[1].Probabilities() = arma::randu<arma::vec>(6);
+ emission[1].Probabilities() /= accu(emission[1].Probabilities());
emission[2].Probabilities() = arma::randu<arma::vec>(6);
+ emission[2].Probabilities() /= accu(emission[2].Probabilities());
emission[3].Probabilities() = arma::randu<arma::vec>(6);
+ emission[3].Probabilities() /= accu(emission[3].Probabilities());
transition.randu();
More information about the mlpack-svn
mailing list