private static double[] GetInitialProbabilities(HmmData model, int startObservation) { double[] probs = new double[model.HiddenStatesCount]; for (int h = 0; h < probs.Length; ++h) { probs[h] = Math.Log(model.Initial[h] + Double.Epsilon) + Math.Log(model.Emissions[h, startObservation]); } return(probs); }
public HmmOffline(HmmData data, bool parallel) : base(data) { Parallel = parallel; }
public Hmm(HmmData data) { HmmData = data; }
public HmmOnline(HmmData data, Action <int[]> output) : base(data) { _output = output; }
public HmmOnline(HmmData data) : base(data) { }
private static double GetEmissionProbability(HmmData model, int o, int h) { return(Math.Log(model.Transitions[h, o] + Double.Epsilon)); }
private static double GetTransitionProbability(HmmData model, int i, int j) { return(Math.Log(model.Transitions[j, i] + Double.Epsilon)); }