new double[][] { { 1d / 2d, 1d / 2d },
{ 1d / 2d, 1d / 2d } }), Lists.newArrayList(
s1Likelihood, s2Likelihood)));
final HmmPlFilter<StandardHMM<Integer>, HmmTransitionState<Integer, StandardHMM<Integer>>, Integer> wfFilter =
new CategoricalHmmPlFilter(trueHmm1, rng, false);
final HmmPlFilter<StandardHMM<Integer>, HmmTransitionState<Integer, StandardHMM<Integer>>, Integer> rsFilter =
new CategoricalHmmPlFilter(trueHmm1, rng, true);
waterFillResampleComparison(wfFilter, rsFilter, trueHmm1, N, 60,
10, "hmm-cat-wf-rs-10000-class-errors-m1.csv", rng);
final StandardHMM<Integer> trueHmm2 =
StandardHMM.create(
new HiddenMarkovModel<Integer>(VectorFactory.getDefault()
.copyArray(new double[] { 1d / 3d, 2d / 3d }),
MatrixFactory.getDefault().copyArray(
new double[][] { { 9d / 10d, 1d / 10d },
{ 1d / 10d, 9d / 10d } }), Lists.newArrayList(
s1Likelihood, s2Likelihood)));
final HmmPlFilter<StandardHMM<Integer>, HmmTransitionState<Integer, StandardHMM<Integer>>, Integer> wfFilter2 =
new CategoricalHmmPlFilter(trueHmm2, rng, false);
final HmmPlFilter<StandardHMM<Integer>, HmmTransitionState<Integer, StandardHMM<Integer>>, Integer> rsFilter2 =
new CategoricalHmmPlFilter(trueHmm2, rng, true);
waterFillResampleComparison(wfFilter2, rsFilter2, trueHmm2, N,
60, 10, "hmm-cat-wf-rs-10000-class-errors-m2.csv", rng);
}