mixle.stats.latent.semi_supervised_hidden_markov_model module¶
Semi-supervised hidden Markov model: each observation may carry a per-position state prior.
A SemiSupervisedHiddenMarkovModelDistribution is an HMM with shared emissions and transitions in which every
observation can carry soft evidence (a prior) over the hidden state at each position of the sequence – not
only the initial state. An observation is a pair (emission_seq, state_prior):
emission_seq: a length-T sequence of emissions (data type of the emission distributions).
state_prior: an optionalT-by-Sarray of non-negative weights. Row t is a prior / soft label over the S hidden states at position t; it multiplies the hidden-state distribution there.None(or an all-ones row) imposes no constraint. There is no separate learned initial distribution – the prior at position 0 plays that role (uniform when absent).
The prior folds into the forward-backward as an extra multiplicative factor on the emission likelihood at every
position, so it shapes both scoring (log_density) and the EM E-step. Only the transitions and emissions (and
an optional length distribution) are learned; the priors are given side information. With every prior None
the model is an ordinary HMM with a uniform initial state distribution.
Defines SemiSupervisedHiddenMarkovModelDistribution, SemiSupervisedHiddenMarkovSampler, SemiSupervisedHiddenMarkovEstimatorAccumulator, SemiSupervisedHiddenMarkovEstimatorAccumulatorFactory, SemiSupervisedHiddenMarkovEstimator, and SemiSupervisedHiddenMarkovDataEncoder.
- class SemiSupervisedHiddenMarkovSampler(dist, seed=None)[source]
Bases:
DistributionSamplerSample emission sequences from the HMM with a uniform initial state distribution.
Priors are external side information, so sampled observations carry
Noneas their prior.- Parameters:
dist (SemiSupervisedHiddenMarkovModelDistribution)
- sample(size=None)[source]
Draw one observation or a list of observations with
Nonestate priors.
- class SemiSupervisedHiddenMarkovEstimatorAccumulator(accumulators, len_accumulator=None, keys=(None, None))[source]
Bases:
SequenceEncodableStatisticAccumulatorBaum-Welch sufficient statistics for the semi-supervised HMM (transition + emission counts, length).
- update(x, weight, estimate)[source]
Update Baum-Welch sufficient statistics from one weighted observation.
- initialize(x, weight, rng)[source]
Initialize emission and transition statistics with random soft state assignments.
- seq_update(x, weights, estimate)[source]
Update sufficient statistics from encoded observations and weights.
- seq_initialize(x, weights, rng)[source]
Initialize sufficient statistics from encoded observations and weights.
- combine(suff_stat)[source]
Merge transition, emission, and length sufficient statistics.
- value()[source]
Return transition counts, per-state emission stats, and length stats.
- from_value(x)[source]
Restore transition counts, per-state emission stats, and length stats.
- key_merge(stats_dict)[source]
Merge transition, state, and child statistics into
stats_dict.
- key_replace(stats_dict)[source]
Replace transition, state, and child statistics from keyed entries when present.
- acc_to_encoder()[source]
Return the encoder compatible with this accumulator.
- class SemiSupervisedHiddenMarkovEstimatorAccumulatorFactory(factories, len_factory=None, keys=(None, None))[source]
Bases:
StatisticAccumulatorFactoryCreate accumulators for semi-supervised HMM Baum-Welch statistics.
- make()[source]
Create an empty semi-supervised HMM accumulator.
- class SemiSupervisedHiddenMarkovEstimator(estimators, len_estimator=None, pseudo_count=None, name=None, keys=(None, None), terminal_states=None)[source]
Bases:
ParameterEstimatorEstimate transitions, emissions, and optional length from semi-supervised HMM statistics.
- accumulator_factory()[source]
Return a factory for semi-supervised HMM sufficient-statistic accumulators.
- estimate(nobs, suff_stat)[source]
Estimate the HMM transition matrix and child distributions from accumulated statistics.
- class SemiSupervisedHiddenMarkovDataEncoder(emission_encoder, len_encoder=None)[source]
Bases:
DataSequenceEncoderEncode a sequence of
(emission_seq, state_prior)observations for the semi-supervised HMM.- seq_encode(x)[source]
Encode observations as emission lists, priors, optional lengths, and raw lengths.
- class SemiSupervisedHiddenMarkovModelDistribution(topics, transitions, len_dist=None, name=None, keys=None, use_numba=False, terminal_states=None)[source]
Bases:
SequenceEncodableProbabilityDistributionHMM with shared emissions/transitions where each observation may carry a per-position state prior.
- compute_capabilities()[source]
Declare the legacy NumPy execution path for semi-supervised HMM inference.
- density(x)[source]
Return the probability of one semi-supervised HMM observation.
- Return type:
- log_density(x)[source]
Return the log-likelihood of one
(emissions, state_prior)observation.- Return type:
- seq_log_density(x)[source]
Return vectorized log-likelihoods for encoded semi-supervised HMM observations.
- Return type:
- density_semantics()[source]
Return the joined density semantics of emission and optional length distributions.
- sampler(seed=None)[source]
Return a sampler for emission sequences with no external state priors.
- estimator(pseudo_count=None)[source]
Return a Baum-Welch estimator for transitions, emissions, and optional length.
- dist_to_encoder()[source]
Return the encoder for emission sequences, priors, and optional lengths.
- SemiSupervisedHiddenMarkovModelSampler
alias of
SemiSupervisedHiddenMarkovSampler
- SemiSupervisedHiddenMarkovModelEstimator
alias of
SemiSupervisedHiddenMarkovEstimator
- SemiSupervisedHiddenMarkovModelDataEncoder
alias of
SemiSupervisedHiddenMarkovDataEncoder
- SemiSupervisedHiddenMarkovModelAccumulator
alias of
SemiSupervisedHiddenMarkovEstimatorAccumulator
- SemiSupervisedHiddenMarkovModelAccumulatorFactory
alias of
SemiSupervisedHiddenMarkovEstimatorAccumulatorFactory
- SemiSupervisedHiddenMarkovAccumulator
alias of
SemiSupervisedHiddenMarkovEstimatorAccumulator
- SemiSupervisedHiddenMarkovAccumulatorFactory
alias of
SemiSupervisedHiddenMarkovEstimatorAccumulatorFactory