如何用Unigram和Bigram模型计算序列AGCTTTCGA的下一个最可能字符
用Unigram和Bigram模型预测序列下一个字符的分步指南
针对你的序列 AGCTTTCGA,我来一步步拆解如何用两种模型计算下一个最可能的字符,帮你理清条件概率公式的应用逻辑:
一、Unigram模型计算逻辑
Unigram模型只关注单个字符的出现频率,下一个字符的概率等于该字符在序列中的出现次数除以总字符数,概率最高的就是最可能的候选。
先统计每个字符的出现次数(从你列出的unigrams里整理):
A:出现2次G:出现2次C:出现2次T:出现3次- 总字符数:9
计算每个字符的概率:
- ( P(A) = \frac{2}{9} \approx 0.22 )
- ( P(G) = \frac{2}{9} \approx 0.22 )
- ( P(C) = \frac{2}{9} \approx 0.22 )
- ( P(T) = \frac{3}{9} = 0.33 )
结论:
T的概率最高,所以Unigram模型预测下一个最可能的字符是**T**。
二、Bigram模型计算逻辑
Bigram模型依赖前一个字符与当前字符的共现频率,你提到的条件概率公式 ( p(w_2|w_1) = \frac{\text{count}(w_1,w_2)}{\text{count}(w_1)} ),这里的 ( w_1 ) 是序列的最后一个字符(我们要预测它后面的字符 ( w_2 )),具体步骤如下:
先整理关键统计数据:
- 单个字符的出现次数(和Unigram一致):
A:2,G:2,C:2,T:3 - Bigram的共现次数(从你列出的bigrams统计):
AG:1,GC:1,CT:1,TT:2,TC:1,CG:1,GA:1
- 单个字符的出现次数(和Unigram一致):
确定目标计算:你的序列最后一个字符是
A,所以我们需要计算所有可能的 ( p(X|A) )(即A后面跟着字符X的概率):- 对于
X=G:( p(G|A) = \frac{\text{count}(AG)}{\text{count}(A)} = \frac{1}{2} = 0.5 ) - 对于
X=C:序列中没有AC这个bigram,所以( p(C|A) = \frac{0}{2} = 0 ) - 对于
X=T:序列中没有AT这个bigram,所以( p(T|A) = \frac{0}{2} = 0 )
- 对于
结论:
G的条件概率最高,所以Bigram模型预测下一个最可能的字符是**G**。
内容的提问来源于stack exchange,提问作者Ollu_
相关产品推荐
相关产品推荐

