Например, Симптом_1 может означать строку "Много ли вы кашляете?", или, если вы пытаетесь отремонтировать неисправный автомобиль, — строку "Ослаб ли свет фар?".
Теперь оформим болезни:
№ |
Болезнь |
p |
[j, py, pn] |
1 |
Болезнь_1 |
p1 |
[j, py, pn]1 |
2 |
Болезнь_2 |
p2 |
[j, py, pn]2 |
N |
Болезнь_N |
pn |
[j, py, pn]n |
В таком виде мы будем хранить информацию о болезнях. Это не обязательно должны быть болезни — могут быть любые результаты, и каждый оператор содержит один возможный исход и всю информацию, относящуюся к нему.
Поле "болезнь" характеризует название возможного исхода, например "Грипп". Следующее поле — p — это априорная вероятность такого исхода P(H), т.е. вероятность исхода в случае отсутствия дополнительной информации. После этого идет ряд повторяющихся полей из трех элементов. Первый элемент — j — это номер соответствующего симптома (свидетельства, переменной, вопроса, если вы хотите назвать его по-другому). Следующие два элемента — P(E : H) и P(E : не H) — соответственно вероятности получения ответа "Да" на этот вопрос, если возможные исход верен и неверен. Например:
2010 |
Грипп |
0.01 |
(1, 0.9, 0.01); (2, 1, 0.01); (3, 0, 0.01) |
Здесь сказано существует априорная вероятность P(H)=0.01, что любой наугад взятый человек болеет гриппом.
Допустим, программа задает вопрос 1 (симптом 1). Тогда мы имеем P(E : H)=0.9 и P(E : не H)=0.01, а это означает, что если у пациента грипп, то он в девяти случаях из десяти ответит "да" на этот вопрос, а если у него нет гриппа, он ответит "да" лишь в одном случае из ста. Очевидно, ответ "да" подтверждает гипотезы о том, что у него грипп. Ответ "нет" позволяет предположить, что человек гриппом не болеет.
Так же и во второй группе симптомов (2, 1, 0.01). В этом случае P(E : H)=0.9, т.е. если у человека грипп, то этот симптом должен присутствовать. Соответствующий симптом может иметь место и при отсутствии гриппа (P(E : не H)=0.01), но это маловероятно.