[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