2015-01-16 5 views
1

Я пытаюсь сделать марковскую модель, и в связи с этим мне нужно рассчитать условную вероятность/массу вероятности некоторых букв. Я создал биграмм частоты писем.Расчет условной вероятности

Как мне вычислить условную вероятность/массовую вероятность моих писем?

+0

Как бы вы поступили так или иначе? В последнем предложении вам не хватает глагола. –

+0

Я не понимаю вашу проблему –

+0

Вы знаете, как бы вы это сделали с математикой? Просто напишите эту математику в Python. – jwodder

ответ

4

Простейший способ вычислить условную вероятность состоит в том, чтобы перебирать случаи в модели, подсчитывая 1) случаи, когда выполняется условие, и 2) случаи, когда происходит условие и целевая буква. Условная вероятность - это соотношение этих двух.

def cp(target, given): 
    'Given is a one or two tuple and target is the letter following' 
    g = 0.0 
    g_and_t = 0.0 
    n = len(given) 
    for case, count in model.iteritems(): 
     if case[:n] == given: 
      g += count 
      if case[n] == target: 
       g_and_t += count 
    return g_and_t/g if g else 0.0 

print cp(target='r', given=('f', 'o')) 
+0

вы забыли про свой первый ответ :) –

Смежные вопросы