Дискуссионный математический форумМатематический форум
Математический форум Math Help Planet

Обсуждение и решение задач по математике, физике, химии, экономике

Теоретический раздел
Часовой пояс: UTC + 3 часа [ Летнее время ]
новый онлайн-сервис
число, сумма и дата прописью

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Применение формулы Байеса
СообщениеДобавлено: 08 июн 2020, 22:33 
Не в сети
Начинающий
Зарегистрирован:
08 июн 2020, 21:35
Сообщений: 4
Cпасибо сказано: 0
Спасибо получено:
0 раз в 0 сообщении
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Есть два набора значений - ответы на тест(1-а,2-а,3-в) и результаты теста(1 балл). С одним таким набором нельзя сказать какие ответы правильные а какие нет. Но каждый такой набор даёт дополнительную информацию с помощью которой мы можем более точно сказать, какие ответы правильные, а какие - нет. То есть при поступлении нового набора мы должны пересчитать старые вероятности. Ничего лучше чем использовать формулу Байеса мне в голову не пришло.
Есть n вопросов с t вариантами ответов, из которых один правильный.
Ai - человек набрал i баллов
Bk - правильный ответ под номером k
Нужно найти P(Bk | Ai) для каждого ответа для каждого вопроса
[math]P(Bk | Ai) = P(Ai | Bk) | P(Ai) * P(Bk)[/math] - формула Байеса
[math]P(Ai) = Pn(i)=C(i,n)*(1|t)^i*(1-1|t)^(n-i)[/math] - формула Бернули( не уверен что её можно использовать )
P(Bk) = 1/t - априорная вероятность( в следующей итерации заменяется на P(Bk | Ai) )
Вопрос, как найти P(Ai | Bk). Я нахожу также через формулу Бернули.
P(Ai | Bk) = [math]\left\{\!\begin{aligned}
& Pn-1(i) , otvet != k \\
& Pn-1(i-1) , otvet = k
\end{aligned}\right.[/math]

Когда i = 0 или n формулы :
P(A0 | Bk) = [math]\left\{\!\begin{aligned}
& Pn-1(i-1) , otvet != k \\
& 0 , otvet = k
\end{aligned}\right.[/math]

P(An | Bk) = [math]\left\{\!\begin{aligned}
& 0 , otvet != k \\
& 1 , otvet = k
\end{aligned}\right.[/math]

Написал код - работает только на первой итерации. Не могу понять как сделать правильно. Помогите пожалуйста.

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Применение формулы Байеса
СообщениеДобавлено: 15 июн 2020, 12:51 
В сети
Продвинутый
Зарегистрирован:
04 июн 2020, 01:04
Сообщений: 75
Cпасибо сказано: 8
Спасибо получено:
7 раз в 7 сообщениях
Очков репутации: 5

Добавить очки репутацииУменьшить очки репутации
Я не совсем понимаю, это — заданная вам кем-то теоретическая задача или личная практическая задача.
Если последнее, и для вычисления подключается компьютер, я бы сделал следующее.
Допустим, есть всего 15 вопросов, в каждом по 5 вариантов ответов, правильным может быть только один вариант, и в случае правильного ответа дается 1 балл. Также есть, допустим, 10 пройденных тестов.
Это дает [math]5^{15} \approx 30,5[/math] миллиардов возможных правильных комбинаций.
Делаем петлю на 30,5 миллиардов итераций (i). На каждой итерации запускаем внутреннюю петлю для 10 пройденных тестов (j). На каждой итерации внутренней петли проверяем, ответил ли респондент j на вопрос так, как предполагает итерация i. Если да, даем ему 1 балл. Так складываем баллы в течение итерации внутренней петли. И в конце каждой внутренней петли проверяем, соответствует ли рассчитанный балл реальному баллу. Если не соответствует, делаем break из внутреннего цикла и continue для внешнего. Если в рамках внешней итерации i не было ни одного брейка из внутренней итерации, помечаем её как возможную правильную комбинация ответов. Для такой проверки, например, в Python удобна синтаксическая конструкция for ... else.
После завершения внешней петли все комбинации вариантов ответов, которые были помечены как возможно плавильные, можно считать равновероятными.

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Применение формулы Байеса
СообщениеДобавлено: 15 июн 2020, 13:51 
Не в сети
Начинающий
Зарегистрирован:
17 апр 2020, 10:40
Сообщений: 17
Cпасибо сказано: 0
Спасибо получено:
6 раз в 5 сообщениях
Очков репутации: 2

Добавить очки репутацииУменьшить очки репутации
Желательны полные данные: количество вопросов в тесте, количество вариантов в вопросе и количество имеющихся тестов. Без этого выбрать оптимальный вариант выбрать затруднительно.

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Применение формулы Байеса
СообщениеДобавлено: 15 июн 2020, 18:31 
Не в сети
Начинающий
Зарегистрирован:
08 июн 2020, 21:35
Сообщений: 4
Cпасибо сказано: 0
Спасибо получено:
0 раз в 0 сообщении
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Bloodhound писал(а):
Желательны полные данные: количество вопросов в тесте, количество вариантов в вопросе и количество имеющихся тестов. Без этого выбрать оптимальный вариант выбрать затруднительно.

Количество вопросов, количество вариантов ответа не имеют значения и влияют только на необходимое количество решённых тестов для достижения максимального балла. Можете выбрать любые цифры. Если вам так будет удобнее, возьмите 20 вопросов в тесте в каждом по четыре ответа, а количество имеющихся тестов 30.

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Применение формулы Байеса
СообщениеДобавлено: 15 июн 2020, 18:38 
Не в сети
Начинающий
Зарегистрирован:
08 июн 2020, 21:35
Сообщений: 4
Cпасибо сказано: 0
Спасибо получено:
0 раз в 0 сообщении
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
ipgmvq писал(а):
Я не совсем понимаю, это — заданная вам кем-то теоретическая задача или личная практическая задача.
Если последнее, и для вычисления подключается компьютер, я бы сделал следующее.
Допустим, есть всего 15 вопросов, в каждом по 5 вариантов ответов, правильным может быть только один вариант, и в случае правильного ответа дается 1 балл. Также есть, допустим, 10 пройденных тестов.
Это дает 515≈30,5
515≈30,5
миллиардов возможных правильных комбинаций.
Делаем петлю на 30,5 миллиардов итераций (i). На каждой итерации запускаем внутреннюю петлю для 10 пройденных тестов (j). На каждой итерации внутренней петли проверяем, ответил ли респондент j на вопрос так, как предполагает итерация i. Если да, даем ему 1 балл. Так складываем баллы в течение итерации внутренней петли. И в конце каждой внутренней петли проверяем, соответствует ли рассчитанный балл реальному баллу. Если не соответствует, делаем break из внутреннего цикла и continue для внешнего. Если в рамках внешней итерации i не было ни одного брейка из внутренней итерации, помечаем её как возможную правильную комбинация ответов. Для такой проверки, например, в Python удобна синтаксическая конструкция for ... else.
После завершения внешней петли все комбинации вариантов ответов, которые были помечены как возможно плавильные, можно считать равновероятными.

Спасибо за развёрнутый ответ. Алгоритм выглядит не очень эффективным, но простым. Попробую реализовать.

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Применение формулы Байеса
СообщениеДобавлено: 15 июн 2020, 21:25 
Не в сети
Начинающий
Зарегистрирован:
17 апр 2020, 10:40
Сообщений: 17
Cпасибо сказано: 0
Спасибо получено:
6 раз в 5 сообщениях
Очков репутации: 2

Добавить очки репутацииУменьшить очки репутации
Числа нужны, хотя бы для того, чтобы понять подходит ли брутфорс, подобно приведённому выше, либо же действительно нужно искать что-то хитрое. Для приведённых цифр (20 по 4) брутфорс все еще возможен

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Применение формулы Байеса
СообщениеДобавлено: 15 июн 2020, 22:08 
Не в сети
Начинающий
Зарегистрирован:
08 июн 2020, 21:35
Сообщений: 4
Cпасибо сказано: 0
Спасибо получено:
0 раз в 0 сообщении
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Это скорее академическая задача, поэтому брутфорс недопустим.

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Применение формулы Байеса
СообщениеДобавлено: 16 июн 2020, 05:26 
В сети
Продвинутый
Зарегистрирован:
04 июн 2020, 01:04
Сообщений: 75
Cпасибо сказано: 8
Спасибо получено:
7 раз в 7 сообщениях
Очков репутации: 5

Добавить очки репутацииУменьшить очки репутации
Если тот, кто сформулировал эту теоретическую задачу, не настаивает на том, что это задача по статистике, я бы тоже её такой не считал. Мне пока ещё кажется, это задача больше по информатике и вычислительной математике.
В предложенном в открывающем посте этой темы подходе предполагается, что вероятность P(Bk) для вопроса 1 независима от P(Bk) (с произвольным k) для вопроса 2, от P(Bk) (с произвольным k) для вопроса 3, от P(Bk) (с произвольным k) для вопроса 4 и т.д. И что человек принимая решение о том, какой из ответов выбрать на вопрос 1, будет делать это независимо от такого решения для вопросов 2, 3 и т.п.
Т.е., например, если есть всего три вопроса, по три ответа на каждый, и полученное решение:
Вопрос 1: ответ (a) — 0%, ответ (b) — 25%, ответ (c) — 75%
Вопрос 2: ответ (a) — 10%, ответ (b) — 90%, ответ (c) — 0%
Вопрос 3: ответ (a) — 40%, ответ (b) — 0%, ответ (c) — 60%
то решающий будет выбирать ответ на 1-й вопрос независимо от того, какой он выберет ответ на 2-й и 3-й вопрос. А ситуация может быть такой (и наверняка такая), что ответ (с) в первом вопросе допустим только при условии ответа (a) в третьем. И чтобы просто описать эти взаимные условные вероятности нужен n-валентный тензор [math]m \times m\,\times\, ...\,\times\,m[/math] (где n — это количество вопросов, а m — количество ответов на каждый вопрос).
Мне представляется, что в теоретическом решении самым простым выражением результата всё равно будет набор правильных равновероятных комбинаций. И упрощение брутфорса будет строится скорее всего за счёт предварительного более быстро исключения точно невозможных ответов и фиксацией точно правильных ответов.
Например, если у нас есть два решения теста из 10 вопросов, по 5 ответов в каждом, каждый из которых набрал по 9 баллов, и ответы:
1-е решение: 1-a, 2-a, 3-a, 4-a, 5-a, 6-a, 7-a, 8-a, 9-a, 10-a
2-е решение: 1-a, 2-a, 3-a, 4-a, 5-a, 6-a, 7-a, 8-a, 9-a, 10-b
То мы точно знаем, что решения 1-a, 2-a, 3-a, 4-a, 5-a, 6-a, 7-a, 8-a, 9-a правильные, а решения 10-a и 10-b неверные
и наш брутфорс будет иметь три внешних цикла:
1-a, 2-a, 3-a, 4-a, 5-a, 6-a, 7-a, 8-a, 9-a, 10-c
1-a, 2-a, 3-a, 4-a, 5-a, 6-a, 7-a, 8-a, 9-a, 10-d
1-a, 2-a, 3-a, 4-a, 5-a, 6-a, 7-a, 8-a, 9-a, 10-e

Вернуться к началу
 Профиль  
Cпасибо сказано 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему      Страница 1 из 1 [ Сообщений: 8 ]

 Похожие темы   Автор   Ответы   Просмотры   Последнее сообщение 
Применение формулы Байеса

в форуме Теория вероятностей

Eric

6

1049

30 апр 2011, 19:20

Интересная задача на применение формулы Байеса

в форуме Теория вероятностей

Randomize

7

1762

17 ноя 2012, 01:20

Задачи на применение теоремы Байеса

в форуме Теория вероятностей

deledzis

2

369

14 апр 2019, 22:53

Задача на применение формул полной вероятности и Байеса

в форуме Теория вероятностей

Nikolay_K

0

342

25 ноя 2014, 16:39

ФОРМУЛЫ ПОЛНОЙ ВЕРОЯТНОСТИ И БАЙЕСА

в форуме Теория вероятностей

82nb

2

936

10 ноя 2014, 19:15

Как расписать вероятности в задаче на формулы Байеса?

в форуме Комбинаторика и Теория вероятностей

alekscooper

9

348

14 окт 2016, 20:57

Задача на полную вероятность/формулы Байеса.

в форуме Теория вероятностей

Nikitadr

5

83

14 май 2020, 16:10

Задачу на формулу полной вероятности или формулы Байеса

в форуме Теория вероятностей

Xander

1

547

23 янв 2011, 17:57

Применение формулы для нахождения дифференциала 2 порядка

в форуме Дифференциальное исчисление

brom

2

172

15 апр 2017, 22:28

Применение формулы включений и исключений 3 множеств

в форуме Комбинаторика и Теория вероятностей

HellDiablo322

1

122

28 июн 2019, 07:09


Часовой пояс: UTC + 3 часа [ Летнее время ]



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Яндекс.Метрика

Copyright © 2010-2020 MathHelpPlanet.com. All rights reserved