Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.encog.ml.hmm
Class HiddenMarkovModel

    java.lang.Object
      org.encog.ml.BasicML
          org.encog.ml.hmm.HiddenMarkovModel

All Implemented Interfaces:
  Serializable, Cloneable, MLMethod, MLProperties, MLStateSequence

    public class HiddenMarkovModel

extends BasicML
implements MLStateSequence, Serializable, Cloneable

A Hidden Markov Model (HMM) is a Machine Learning Method that allows for predictions to be made about the hidden states and observations of a given system over time. A HMM can be thought of as a simple dynamic Bayesian network. The HMM is dynamic as it deals with changes that unfold over time. The Hidden Markov Model is made up of a number of states and observations. A simple example might be the state of the economy. There are three hidden states, such as bull market, bear market and level. We do not know which state we are currently in. However, there are observations that can be made such as interest rate and the level of the S&P500. The HMM learns what state we are in by seeing how the observations change over time. The HMM is only in one state at a given time. There is a percent probability that the HMM will move from one state to any of the other states. These probabilities are arranged in a grid, and are called the state transition probabilities. Observations can be discrete or continuous. These observations allow the HMM to predict state transitions. The HMM can handle single-value or multivariate observations. http://www.heatonresearch.com/wiki/Hidden_Markov_Model Rabiner, Juang, An introduction to Hidden Markov Models, IEEE ASSP Mag.,pp 4-16, June 1986. Baum, L. E.; Petrie, T. (1966). "Statistical Inference for Probabilistic Functions of Finite State Markov Chains" The Annals of Mathematical Statistics 37 (6): 1554-1563.

See Also:
  Serialized Form

Field Summary
`static String` | `TAG_COVARIANCE`
`static String` | `TAG_DIST_TYPE`
`static String` | `TAG_ITEMS`
`static String` | `TAG_MEAN`
`static String` | `TAG_PI`
`static String` | `TAG_PROBABILITIES`
`static String` | `TAG_STATES`
`static String` | `TAG_TRANSITION`

Constructor Summary
`HiddenMarkovModel(int states)` Construct a discrete HMM with the specified number of states.
`HiddenMarkovModel(int theStates, int theItems)`
`HiddenMarkovModel(int theStates, int[] theItems)`

Method Summary
`HiddenMarkovModel` | `clone()`
`HiddenMarkovModel` | `cloneStructure()`
`StateDistribution` | `createNewDistribution()`
`int[]` | `getItems()`
`double[]` | `getPi()`
`double` | `getPi(int i)`
`int` | `getStateCount()`
`StateDistribution` | `getStateDistribution(int i)`
`int[]` | `getStatesForSequence(MLDataSet seq)` Get the sates for the given sequence.
`double[][]` | `getTransitionProbability()`
`double` | `getTransitionProbability(int i, int j)`
`boolean` | `isContinuous()`
`boolean` | `isDiscrete()`
`double` | `lnProbability(MLDataSet seq)`
`double` | `probability(MLDataSet seq)` Determine the probability of the specified sequence.
`double` | `probability(MLDataSet seq, int[] states)` Determine the probability for the specified sequence and states.
`void` | `setPi(double[] data)`
`void` | `setPi(int i, double value)`
`void` | `setStateDistribution(int i, StateDistribution dist)`
`void` | `setTransitionProbability(double[][] data)`
`void` | `setTransitionProbability(int i, int j, double value)`
`void` | `updateProperties()` Update any objeccts when a property changes.

Methods inherited from class org.encog.ml.BasicML
`getProperties, getPropertyDouble, getPropertyLong, getPropertyString, setProperty, setProperty, setProperty`

Methods inherited from class java.lang.Object
`equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### TAG_STATES

    public static final String TAG_STATES

See Also:
  Constant Field Values

### TAG_ITEMS

    public static final String TAG_ITEMS

See Also:
  Constant Field Values

### TAG_PI

    public static final String TAG_PI

See Also:
  Constant Field Values

### TAG_TRANSITION

    public static final String TAG_TRANSITION

See Also:
  Constant Field Values

### TAG_DIST_TYPE

    public static final String TAG_DIST_TYPE

See Also:
  Constant Field Values

### TAG_MEAN

    public static final String TAG_MEAN

See Also:
  Constant Field Values

### TAG_COVARIANCE

    public static final String TAG_COVARIANCE

See Also:
  Constant Field Values

### TAG_PROBABILITIES

    public static final String TAG_PROBABILITIES

See Also:
  Constant Field Values

Constructor Detail

### HiddenMarkovModel

    public HiddenMarkovModel(int states)

  Construct a discrete HMM with the specified number of states.

  Parameters:
    `states` - The number of states.

### HiddenMarkovModel

    public HiddenMarkovModel(int theStates,
                             int theItems)

### HiddenMarkovModel

    public HiddenMarkovModel(int theStates,
                             int[] theItems)

Method Detail

### clone

    public HiddenMarkovModel clone()
                            throws CloneNotSupportedException

  Overrides:
    `clone` in class `Object`
  Throws:
    `CloneNotSupportedException`

### cloneStructure

    public HiddenMarkovModel cloneStructure()

### createNewDistribution

    public StateDistribution createNewDistribution()

### getPi

    public double getPi(int i)

### getStateCount

    public int getStateCount()

### getStateDistribution

    public StateDistribution getStateDistribution(int i)

### getStatesForSequence

    public int[] getStatesForSequence(MLDataSet seq)

  Description copied from interface: `MLStateSequence`
  Get the sates for the given sequence.

  Specified by:
    `getStatesForSequence` in interface `MLStateSequence`
  Parameters:
    `seq` - The sequence.
  Returns:
    The states.

### getTransitionProbability

    public double getTransitionProbability(int i,
                                           int j)

### isContinuous

    public boolean isContinuous()

### isDiscrete

    public boolean isDiscrete()

### lnProbability

    public double lnProbability(MLDataSet seq)

### probability

    public double probability(MLDataSet seq)

  Description copied from interface: `MLStateSequence`
  Determine the probability of the specified sequence.

  Specified by:
    `probability` in interface `MLStateSequence`
  Parameters:
    `seq` - The sequence.
  Returns:
    The probability.

### probability

    public double probability(MLDataSet seq,
                              int[] states)

  Description copied from interface: `MLStateSequence`
  Determine the probability for the specified sequence and states.

  Specified by:
    `probability` in interface `MLStateSequence`
  Parameters:
    `seq` - The sequence.
    `states` - The states.
  Returns:
    The probability.

### setPi

    public void setPi(int i,
                      double value)

### setStateDistribution

    public void setStateDistribution(int i,
                                     StateDistribution dist)

### setTransitionProbability

    public void setTransitionProbability(int i,
                                         int j,
                                         double value)

### updateProperties

    public void updateProperties()

  Description copied from interface: `MLProperties`
  Update any objeccts when a property changes.

  Specified by:
    `updateProperties` in interface `MLProperties`
  Specified by:
    `updateProperties` in class `BasicML`

### getItems

    public int[] getItems()

### getPi

    public double[] getPi()

### getTransitionProbability

    public double[][] getTransitionProbability()

### setTransitionProbability

    public void setTransitionProbability(double[][] data)

### setPi

    public void setPi(double[] data)

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2014. All Rights Reserved.