Baum-Welch learning algorithm for continuous density Hidden Markov Models.
Inheritance: BaumWelchLearningBase, IUnsupervisedLearning
        private static ContinuousHiddenMarkovModel TrainHelper(double[][] sequences)
        {
            var hmm = new ContinuousHiddenMarkovModel(States, Symbols);
            var learner = new ContinuousBaumWelchLearning(hmm)
            {
                Tolerance = MinTolerance,
                Iterations = MaxIterations,
                FittingOptions = new NormalOptions()
                {
                    Regularization = RegularisationFactor
                }
            };

            learner.Run(sequences);
            return hmm;
        }
Exemplo n.º 2
0
        /// <summary>
        /// Train this current Hidden Markov Model using the provided sequences.
        /// 
        /// A subset of the features can be selected by the selectFeatures function.
        /// </summary>
        /// <param name="sequences">The set of training examples</param>
        /// <param name="selectFeatures">
        ///     A (function: Seq -> double[][]) which selects the relevant features from the sequence.
        /// </param>
        public void Train(IList<Sequence> sequences, Func<Sequence, double[][]> selectFeatures)
        {
            var learner = new ContinuousBaumWelchLearning(CHMM)
            {
                Tolerance = MinTolerance,
                Iterations = MaxIterations,

                // This is necessary to prevent overfitting:
                FittingOptions = new NormalOptions {Regularization = RegularisationFactor}
            };

            learner.Run(sequences.Select(selectFeatures).ToArray());
        }