hmm-hmatrix-0.1: Hidden Markov Models using HMatrix primitives

Safe HaskellNone

Math.HiddenMarkovModel.Distribution

Documentation

newtype State Source

Constructors

State Int 

type family Emission distr Source

type family Probability distr Source

class (Container Vector (Probability distr), Product (Probability distr)) => Info distr whereSource

Methods

numberOfStates :: distr -> IntSource

Instances

Field a => Info (Gaussian a) 
(Container Vector prob, Product prob, Ord symbol) => Info (Discrete prob symbol) 

class (Container Vector (Probability distr), Product (Probability distr)) => Generate distr whereSource

Methods

generate :: (RandomGen g, Probability distr ~ prob, Emission distr ~ emission) => distr -> State -> State g emissionSource

Instances

Field a => Generate (Gaussian a) 
(Container Vector prob, Product prob, Ord symbol, Ord prob, Random prob) => Generate (Discrete prob symbol) 

class (Container Vector (Probability distr), Product (Probability distr)) => EmissionProb distr whereSource

Methods

emissionProb :: distr -> Emission distr -> Vector (Probability distr)Source

emissionStateProb :: distr -> Emission distr -> State -> Probability distrSource

Instances

(Numeric a, Field a) => EmissionProb (Gaussian a) 
(Container Vector prob, Product prob, Ord symbol) => EmissionProb (Discrete prob symbol) 

class (Distribution tdistr ~ distr, Trained distr ~ tdistr, EmissionProb distr) => Estimate tdistr distr whereSource

Associated Types

type Distribution tdistr Source

type Trained distr Source

Methods

accumulateEmissions :: Probability distr ~ prob => [[(Emission distr, prob)]] -> tdistrSource

combine :: tdistr -> tdistr -> tdistrSource

normalize :: tdistr -> distrSource

Instances

(Numeric a, Field a) => Estimate (GaussianTrained a) (Gaussian a) 
(Container Vector prob, Product prob, Ord symbol) => Estimate (DiscreteTrained prob symbol) (Discrete prob symbol) 

newtype Discrete prob symbol Source

Constructors

Discrete (Map symbol (Vector prob)) 

Instances

(Show prob, Show symbol, Storable prob) => Show (Discrete prob symbol) 
(NFData prob, NFData symbol) => NFData (Discrete prob symbol) 
(Field prob, Show prob, Read prob, CSVSymbol symbol) => CSV (Discrete prob symbol) 
(Container Vector prob, Product prob, Ord symbol) => EmissionProb (Discrete prob symbol) 
(Container Vector prob, Product prob, Ord symbol, Ord prob, Random prob) => Generate (Discrete prob symbol) 
(Container Vector prob, Product prob, Ord symbol) => Info (Discrete prob symbol) 
(Container Vector prob, Product prob, Ord symbol) => Estimate (DiscreteTrained prob symbol) (Discrete prob symbol) 

newtype DiscreteTrained prob symbol Source

Constructors

DiscreteTrained (Map symbol (Vector prob)) 

Instances

(Show prob, Show symbol, Storable prob) => Show (DiscreteTrained prob symbol) 
(NFData prob, NFData symbol) => NFData (DiscreteTrained prob symbol) 
(Container Vector prob, Product prob, Ord symbol) => Estimate (DiscreteTrained prob symbol) (Discrete prob symbol) 

newtype Gaussian a Source

Constructors

Gaussian (Array State (Vector a, Matrix a, a)) 

Instances

(Show a, Element a) => Show (Gaussian a) 
(NFData a, Storable a) => NFData (Gaussian a) 
(Field a, Eq a, Show a, Read a) => CSV (Gaussian a) 
(Numeric a, Field a) => EmissionProb (Gaussian a) 
Field a => Generate (Gaussian a) 
Field a => Info (Gaussian a) 
(Numeric a, Field a) => Estimate (GaussianTrained a) (Gaussian a) 

newtype GaussianTrained a Source

Constructors

GaussianTrained (Map State (Vector a, Matrix a, a)) 

Instances

(Show a, Element a) => Show (GaussianTrained a) 
(NFData a, Storable a) => NFData (GaussianTrained a) 
(Numeric a, Field a) => Estimate (GaussianTrained a) (Gaussian a) 

gaussian :: Field prob => [(Vector prob, Matrix prob)] -> Gaussian probSource

class CSV distr whereSource

Methods

toCells :: distr -> [[String]]Source

parseCells :: Int -> CSVParser distrSource

Instances

(Field a, Eq a, Show a, Read a) => CSV (Gaussian a) 
(Field prob, Show prob, Read prob, CSVSymbol symbol) => CSV (Discrete prob symbol) 

type CSVParser = StateT CSVResult (Exceptional String)Source

class Ord symbol => CSVSymbol symbol whereSource

Instances

CSVSymbol Char 
CSVSymbol Int 
CSVSymbol Color

Using show and read is not always a good choice since they must format and parse Haskell expressions which is not of much use to the outside world.