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

Safe HaskellNone
LanguageHaskell2010

Math.HiddenMarkovModel.Distribution

Documentation

newtype State Source

Constructors

State Int 

type family Emission distr Source

Instances

type Emission (Gaussian a) = Vector a 
type Emission (Discrete prob symbol) = symbol 

type family Probability distr Source

Instances

type Probability (Gaussian a) = a 
type Probability (Discrete prob symbol) = prob 

type family Trained distr Source

Instances

type Trained (Gaussian a) = GaussianTrained a 
type Trained (Discrete prob symbol) = DiscreteTrained prob symbol 

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

Methods

numberOfStates :: distr -> Int Source

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 where Source

Methods

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

Instances

(Field a, Ord a, Random 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 where Source

Methods

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

Instances

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

class (EmissionProb (Distribution tdistr), Trained (Distribution tdistr) ~ tdistr) => Estimate tdistr where Source

Associated Types

type Distribution tdistr Source

Methods

accumulateEmissions :: (Distribution tdistr ~ distr, Probability distr ~ prob) => [[(Emission distr, prob)]] -> tdistr Source

combine :: tdistr -> tdistr -> tdistr Source

normalize :: (Distribution tdistr ~ distr) => tdistr -> distr Source

Instances

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

newtype Discrete prob symbol Source

Constructors

Discrete (Map symbol (Vector prob)) 

Instances

(Show prob, Show symbol, Storable prob) => Show (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) 
type Trained (Discrete prob symbol) = DiscreteTrained prob symbol 
type Emission (Discrete prob symbol) = symbol 
type Probability (Discrete prob symbol) = prob 

newtype DiscreteTrained prob symbol Source

Constructors

DiscreteTrained (Map symbol (Vector prob)) 

Instances

(Show prob, Show symbol, Storable prob) => Show (DiscreteTrained prob symbol) 
(Container Vector prob, Product prob, Ord symbol) => Estimate (DiscreteTrained prob symbol) 
type Distribution (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) 
(Field a, Eq a, Show a, Read a) => CSV (Gaussian a) 
(Numeric a, Field a) => EmissionProb (Gaussian a) 
(Field a, Ord a, Random a) => Generate (Gaussian a) 
Field a => Info (Gaussian a) 
type Trained (Gaussian a) = GaussianTrained a 
type Emission (Gaussian a) = Vector a 
type Probability (Gaussian a) = a 

newtype GaussianTrained a Source

Constructors

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

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

class CSV distr where Source

Methods

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

parseCells :: Int -> CSVParser distr Source

Instances

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

class Ord symbol => CSVSymbol symbol where Source

Methods

cellFromSymbol :: symbol -> String Source

symbolFromCell :: String -> Maybe symbol Source

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.