public IPredictionResult Predict(PredictorType predictorType, double[][] observations, double[] weights) { var model = (HiddenMarkovModelMultivariateGaussianDistribution)HiddenMarkovModelFactory.GetModel(new ModelCreationParameters <IMultivariateDistribution> { Pi = _pi, TransitionProbabilityMatrix = _transitionProbabilityMatrix, Emissions = _emission }); //new HiddenMarkovModelState<IMultivariateDistribution>(_pi, _transitionProbabilityMatrix, _emission); model.Normalized = Normalized; var request = new PredictionRequest(); request.TrainingSet = observations; request.NumberOfDays = 1; request.Tolerance = PREDICTION_LIKELIHOOD_TOLERANCE; var predictor = HiddenMarkovModelPredictorFactory.GetPredictor(predictorType); return(predictor.Predict(model, request)); }
public IPredictionResult Predict(PredictorType predictorType, double[][] observations, int numberOfIterations, double likelihoodTolerance) { var model = (HiddenMarkovModelWeightedMixtureDistribution)HiddenMarkovModelFactory.GetModel <HiddenMarkovModelWeightedMixtureDistribution, Mixture <IMultivariateDistribution> >(new ModelCreationParameters <Mixture <IMultivariateDistribution> > { Pi = _pi, TransitionProbabilityMatrix = _transitionProbabilityMatrix, Emissions = _emission }); //HiddenMarkovModelStateFactory.GetState(new ModelCreationParameters<Mixture<IMultivariateDistribution>> { Pi = _pi, TransitionProbabilityMatrix = _transitionProbabilityMatrix, Emissions = _emission }); model.Normalized = Normalized; var request = new PredictionRequest(); request.TrainingSet = observations; request.NumberOfDays = 1; request.Tolerance = PREDICTION_LIKELIHOOD_TOLERANCE; request.TrainingLikelihoodTolerance = likelihoodTolerance; request.NumberOfTrainingIterations = numberOfIterations; var predictor = HiddenMarkovModelPredictorFactory.GetPredictor(predictorType); return(predictor.Predict(model, request)); }