Пример #1
0
        /// <summary>
        ///   Creates a new object that is a copy of the current instance.
        /// </summary>
        ///
        /// <returns>
        ///   A new object that is a copy of this instance.
        /// </returns>
        ///
        public override object Clone()
        {
            double[][] A  = LogTransitions.Copy();
            double[][] B  = LogEmissions.Copy();
            double[]   pi = LogInitial.Copy();

            return(new HiddenMarkovModel(A, B, pi, logarithm: true));
        }
Пример #2
0
        /// <summary>
        ///   Creates a new object that is a copy of the current instance.
        /// </summary>
        ///
        /// <returns>
        ///   A new object that is a copy of this instance.
        /// </returns>
        ///
        public virtual object Clone()
        {
            double[][]      A  = LogTransitions.Copy();
            double[]        pi = LogInitial.Copy();
            TDistribution[] B  = Emissions.MemberwiseClone();

            return(new HiddenMarkovModel <TDistribution, TObservation>(A, B, pi, logarithm: true));
        }
Пример #3
0
        /// <summary>
        ///   Creates a new object that is a copy of the current instance.
        /// </summary>
        ///
        /// <returns>
        ///   A new object that is a copy of this instance.
        /// </returns>
        ///
        public override object Clone()
        {
            double[,] A = (double[, ])LogTransitions.Clone();
            double[,] B = (double[, ])Emissions.Clone();
            double[] pi = (double[])LogInitial.Clone();

            return(new HiddenMarkovModel(A, B, pi, logarithm: true));
        }
Пример #4
0
        public HiddenMarkovModel <GeneralDiscreteDistribution> ToContinuousModel()
        {
            var transitions   = (double[, ])LogTransitions.Clone();
            var probabilities = (double[])LogInitial.Clone();

            var emissions = new GeneralDiscreteDistribution[States];

            for (int i = 0; i < emissions.Length; i++)
            {
                emissions[i] = new GeneralDiscreteDistribution(Accord.Math.Matrix.GetRow(Emissions, i));
            }

            return(new HiddenMarkovModel <GeneralDiscreteDistribution>(transitions, emissions, probabilities));
        }