Маленькое вступление
Недавно пересматривал свои старые программы, и среди завалом нашел малую экспертную систему. Начал разбираться и вспоминать, и оказалось что когда-то в институте давали на лабораторку сделать экспертную систему на основе формул Байеса. Полез потом в Гугл, что немного вспомнить теорию, и оказалось что в Инете так много хлама и с моими мини-мозгами мне это не понять. Поэтому пошел другим путем, а именно стал разбираться что же я здесь когда то накодил. Результат этой роботы перед Вами. Если кому не интересно как работает эта система, то можете просто скачать
http://dump.ru/files/n/n560107612/ эту прогу плюс исходники на Делфи. Программа задаст Вам несколько вопросо и определит с какой вероятностью Вы милиционер, програмист и дворник. Не стоит воспринимать ее всерьез. Это всего лишь демонстрация. И кстати Кез и Зако пожалуйста не нада ее критиковать, я даже не пытался ее оптимизировать
Составление база знаний. Что мы хотим узнать?
Будем узнавать какая машина подходит человеку.
Пускай у нас человеку может нравиться такое:
1. мерседес
2. ваз
Теперь придумаем вопросы, которые будем спрашивать:
1. Ты патриот?
2. Ты богат?
3. Ты любишь скорость?
Теперь составим уже базу с вероятностями.
Как это делаем? Берем первый вопрос. Проводи исследования, и оказывается 6 из 10 владельцев мерса сказали, что патриоты, а 9 из 10 владельцев Ваз сказали, что они патриоты.
Тоесть получаем такое:
В(патриот,мерседес) = 0,60 (тоесть 60 %)
НВ(патриот,мерседес) = 0,40 (тоесть 40 %, получили из 10 отняли 6)
В(патриот,ваз) = 0,90
НВ(патриот,ваз) = 0,10
Как это понимать?
А так, к примеру:
В(патриот,ваз) = 0,90 - вероятность того, что водитель ваза скажет что он патриот составляет 90 %
НВ(патриот,ваз)=0,10 – вероятность того, что видитель ваза скажет что он патриот составляет 10 %
Такую же базу составляем для 2 и 3 вопроса.
В(багат,мерседес) = 0,80
НВ(багат,мерседес) = 0,20
В(багат,ваз) = 0,50
НВ(багат,ваз) = 0,50
В(скорость,мерседес) = 0,90
НВ(скорость,мерседес) = 0,10
В(скорость,ваз) = 0,20
НВ(скорость,ваз) = 0,80
Начальное значение вероятности
Перед тем как задавать вопросы нам надо указать начальные значения вероятности автомобиля.
Тоесть провели опрос и оказалось, что из 100 опрошеных у 40 мерседес и у 60 ваз
Тоесть начальные вероятности будут такие:
Вер(мерседес) = 0,4
Вер(ваз) = 0,6
Теперь можно начинать проводить опрос.
Можно задавать вопросы в любом порядке.
Просчитаем для одного вопроса вероятности. Пускай это будет первый вопрос.
Ты патриот?
У человека есть 3 варианта вопроса. «Да», «нет» и «не знаю»
«Не знаю»
Если человек ответить «Не знаю», то можно про этот вопрос забыть . И начальные вероятности не пересчитывать. То есть как было у нас
Вер(мерседес) = 0,4
Вер(ваз) = 0,6
Так оно и сталось.
"Да"
Если человек ответит "да", то начальные вероятности надо пересчитать за такой формулой
вер =(в*вер)/(в*вер+нв*(1-вер))
У нашем случае это надо прощитать для мерседеса и ваза, и мы получаем такие формулы,
тоесть применяем дважды формулу и получаем такое
вер[мерседес] =( в[патриот,мерседес]* вер[мерседес])/( в[патриот,мерседес]*вер[мерседес] +нв[патриот,мерседес]*(1- вер[мерседес] ))
и
вер[ваз] =( в[патриот, ваз]* вер[ваз])/( в[патриот, ваз]*вер[ваз] +нв[патриот, ваз]*(1- вер[ваз] ))
Значить мы пересчитали вероятности и получили, новые значения
Вер(мерседес) = 0,3
Вер(ваз) = 0,7 (считал в уме и приблизительно)
"Нет"
Если человек отвечает "нет", то вероятности надо пересчитать за такой формулой
вер=((1-в)*вер)/((1-в)*вер+(1-нв)*(1-вер))
если применить эту формулу к нашим обозначениям, то получим такое:
вер[мерседес] =((1- в[патриот,мерседес])* вер[мерседес] )/((1- в[патриот,мерседес])* вер[мерседес] +(1-нв[патриот,мерседес])*(1- вер[мерседес] ))
и
вер[ваз] =((1- в[патриот, ваз])* вер[ваз] )/((1- в[патриот, ваз])* вер[ваз] +(1-нв[патриот, ваз])*(1- вер[ваз] ))
Значит, после пересчета получилось:
вер(мерседес) = 0,5
вер(ваз) = 0,4
Таким же образом задаем и остальные вопросы. В результате мы получаем новые значения вероятности, пускай такие:
вер(мерседес) = 0,3
вер(ваз) = 0,6
Потом мы ищем максимальное значение, это у нас 0,6. И говорим. Скорей всего чел у тебя ВАЗ
Вот так-то. И решили мы эту задачу. Кто понял тот гений, а кто не понял тот тоже гений
ПС. Хочу заметить, что здесь используется упрощенная формула Байеса. И если бы он это увидел, то мне бы не жить

ПСС: Прошу прощения за не научный язык и за некоторые отклонение от общепринятых обозначений и терминов. Хотел чтобы было более понятнее.
ПССС: спасибо Сергей Владимировичу (моему преподу), что когда-то мне на парах это обьяснял
ПСССС: если кто думает что это бесполезные знание для хакинга, то он глубоко ошибается

. Мое ИМХО