Bio.HMM.Trainer模块¶
提供基于训练序列估计参数的训练器。
在实际使用马尔可夫模型解码状态路径之前,应该使用它们来“训练”马尔可夫模型。当提供训练序列和要工作的模型时,这些类将估计模型的参数。
这旨在估计两个参数:
a_{kl}--训练数据中从k转换到l的次数。
E_{k}(B)-从训练数据中的字母k开始的状态b的排放量。
- class Bio.HMM.Trainer.TrainingSequence(emissions, state_path)¶
基类:
object
保存具有排放的训练序列,以及可选的状态路径。
- __init__(emissions, state_path)¶
初始化训练序列。
- 参数:
发射-包含训练序列中的发射序列的可迭代(例如,元组、列表或序列对象)。
STATE_PATH-包含状态序列的可迭代(例如,元组或列表)。如果没有已知的状态路径,那么状态序列应该是一个空的可迭代。
- class Bio.HMM.Trainer.AbstractTrainer(markov_model)¶
基类:
object
提供所有培训人员所需的通用功能。
- __init__(markov_model)¶
初始化类。
- log_likelihood(probabilities)¶
计算训练序列的对数似然率。
- 参数:
概率--当前参数下每个训练序列的概率列表,使用前向算法计算。
- estimate_params(transition_counts, emission_counts)¶
得到过渡和排放的最大似然估计。
- 参数:
Transition_Counts--包含两个状态之间的转换计数总数的字典。
Effects_Counts--一个字典,其中包含某个州字母的特定排放字母的排放总数。
然后返回由Durbin等人的公式3.18估计的过渡和排放的最大似然估计值:
a_{kl} = A_{kl} / sum(A_{kl'}) e_{k}(b) = E_{k}(b) / sum(E_{k}(b'))
返回:包含最大似然估计值的过渡和排放字典。
- ml_estimator(counts)¶
计算最大似然估计。
这可以计算过渡和排放的最大可能性。
- 参数:
计数--每项计数的字典。
有关用于计算的公式的说明,请参见ESTIMATE_PARAMS。
- class Bio.HMM.Trainer.BaumWelchTrainer(markov_model)¶
-
使用Baum-Welch算法估计参数的训练器。
当隐马尔可夫模型(HMM)的训练序列具有实际状态的未知路径,并且您需要根据观测到的辐射来估计模型参数时,应该使用这些方法。
这使用了Baum-Welch算法,该算法在Baum,L.E.1972中首次描述。不平等。3:1-8这是基于Durbin等人在“Biological Sequence Analysis”中的描述。在第3.3条中
此算法保证收敛到局部最大值,但不一定收敛到全局最大值,因此请谨慎使用!
- __init__(markov_model)¶
初始化教练器。
- 参数:
马尔可夫模型-我们将为其估计参数的模型。这应该有一些参数和一些初步估计,我们可以根据这些参数进行构建。
- train(training_seqs, stopping_criteria, dp_method=ScaledDPAlgorithms)¶
使用训练序列估计参数。
这方面的算法取自Durbin等人。p64,所以这是一个很好的地方,可以参考正在发生的事情。
- 参数:
Training_seqs--用于估计参数的TrainingSequence对象列表。
STOPING_Criteria--一个函数,当传递到对数似然率和阈值的变化时,它将指示我们是否应该停止估计迭代。
dp_method--指定我们应该用来计算向前和向后变量的动态编程实现的类实例。默认情况下,我们使用缩放方法。
- update_transitions(transition_counts, training_seq, forward_vars, backward_vars, training_seq_prob)¶
将新训练序列的贡献添加到转换中。
- 参数:
TRANSPONCE_COUNTS--转换的当前计数字典
Training_seq--我们正在使用的训练序列
FORWARD_VARS--使用FORWARD算法计算的概率。
backward_vars--使用反向算法计算的概率。
Training_seq_prob-当前序列的概率。
这使用Durbin等人的公式3.20计算A_{kl}(从状态k到状态l的估计转变计数)。
- update_emissions(emission_counts, training_seq, forward_vars, backward_vars, training_seq_prob)¶
添加新训练序列对排放的贡献。
- 参数:
EISTIMATION_COUNTS--排放的当前计数字典
Training_seq--我们正在使用的训练序列
FORWARD_VARS--使用FORWARD算法计算的概率。
backward_vars--使用反向算法计算的概率。
Training_seq_prob-当前序列的概率。
这使用Durbin等人的公式3.21计算E_{k}(B)(来自状态k的发射字母b的估计发射概率)。