gov.sandia.cognition.statistics.bayesian

## Interface MarkovChainMonteCarlo<ObservationType,ParameterType>

• Type Parameters:
`ObservationType` - Type of observations handled by the MCMC algorithm.
`ParameterType` - Type of parameters to infer.
All Superinterfaces:
All Known Implementing Classes:
AbstractMarkovChainMonteCarlo, DirichletProcessMixtureModel, MetropolisHastingsAlgorithm, ParallelDirichletProcessMixtureModel

```@PublicationReference(author={"Christian P. Robert","George Casella"},title="Monte Carlo Statistical Methods, Second Edition",type=Book,year=2004,pages={267,320}) @PublicationReference(author="Wikipedia",title="Markov chain Monte Carlo",type=WebPage,year=2010,url="http://en.wikipedia.org/wiki/Markov_chain_Monte_Carlo")
public interface MarkovChainMonteCarlo<ObservationType,ParameterType>
Defines the functionality of a Markov chain Monte Carlo algorithm. Technically, this algorithm allows for the sampling of a function where it's difficult to sample directly from the distribution. In machine learning it's primarily used as to estimate the distribution of parameters of data. As opposed to asking, "What is the most likely parameter that generated the data?" MCMC techniques can answer the question of "What does the distribution of parameters look like that generated the data?" The algorithm works a lot like simulated annealing as follows. The algorithm starts taking probability-directed steps in a target function from some user-defined initial condition. The first several steps (1% of the total typically) are thrown out until the random steps have time to "burn in" to the true probability space. Then, the algorithm starts recording the Collection of steps that it takes until it hits some pre-defined number of samples. It has been shown by Metropolis in the 1950s that this Collection of samples necessarily follows the same distribution as the target distribution, if the steps are taken in a clever manner.
Since:
3.0
Author:
Kevin R. Dixon
• ### Method Summary

All Methods
Modifier and Type Method and Description
`int` `getBurnInIterations()`
Gets the number of iterations that must transpire before the algorithm begins collection the samples.
`ParameterType` `getCurrentParameter()`
Gets the current parameters in the random walk.
`int` `getIterationsPerSample()`
Gets the number of iterations that must transpire between capturing samples from the distribution.
`void` `setBurnInIterations(int burnInIterations)`
Sets the number of iterations that must transpire before the algorithm begins collection the samples.
`void` `setIterationsPerSample(int iterationsPerSample)`
Sets the number of iterations that must transpire between capturing samples from the distribution.
• ### Methods inherited from interface gov.sandia.cognition.learning.algorithm.BatchLearner

`learn`
• ### Methods inherited from interface gov.sandia.cognition.util.CloneableSerializable

`clone`
• ### Methods inherited from interface gov.sandia.cognition.algorithm.AnytimeAlgorithm

`getMaxIterations, getResult, setMaxIterations`
• ### Methods inherited from interface gov.sandia.cognition.algorithm.IterativeAlgorithm

`addIterativeAlgorithmListener, getIteration, removeIterativeAlgorithmListener`
• ### Methods inherited from interface gov.sandia.cognition.algorithm.StoppableAlgorithm

`isResultValid, stop`
• ### Methods inherited from interface gov.sandia.cognition.util.Randomized

`getRandom, setRandom`
• ### Method Detail

• #### getBurnInIterations

`int getBurnInIterations()`
Gets the number of iterations that must transpire before the algorithm begins collection the samples.
Returns:
The number of iterations that must transpire before the algorithm begins collection the samples.
• #### setBurnInIterations

`void setBurnInIterations(int burnInIterations)`
Sets the number of iterations that must transpire before the algorithm begins collection the samples.
Parameters:
`burnInIterations` - The number of iterations that must transpire before the algorithm begins collection the samples.
• #### getIterationsPerSample

`int getIterationsPerSample()`
Gets the number of iterations that must transpire between capturing samples from the distribution.
Returns:
The number of iterations that must transpire between capturing samples from the distribution.
• #### setIterationsPerSample

`void setIterationsPerSample(int iterationsPerSample)`
Sets the number of iterations that must transpire between capturing samples from the distribution.
Parameters:
`iterationsPerSample` - The number of iterations that must transpire between capturing samples from the distribution.
• #### getCurrentParameter

`ParameterType getCurrentParameter()`
Gets the current parameters in the random walk.
Returns:
The current parameters in the random walk.