Конспект по «Машинному обучению». Теория вероятностей. Формула Байеса



    Теория вероятностей. Формула Байеса


    Пусть проводится некоторый эксперимент.

    $w_1, ..., w_N$элементарные события (элементарные исходы эксперимента).
    $\Omega = \{w_i\}_{i =1}^N$пространство элементарных событий (совокупность всевозможных элементарных исходов эксперимента).

    Определение 1:

    Система множеств $\Sigma$ называется сигма-алгеброй, если выполняются следующие свойства:

    1. $\Omega \in \Sigma;$
    2. $A \in \Sigma \Rightarrow \overline{A} \in \Sigma;$
    3. $A_1, A_2, ... \in \Sigma \Rightarrow \bigcup\limits_{i=1}^\infty A_i \in \Sigma.$

    Из свойств 1 и 2 определения 1 следует, что $\emptyset \in \Sigma$. Из свойств 2 и 3 определения 1 следует, что $\bigcap\limits_{i=1}^\infty A_i \in \Sigma\space($ т.к. $A_i \in \Sigma \Rightarrow_{св.2} \overline{A_i} \in \Sigma \Rightarrow_{св.3} \bigcup\limits_{i=1}^\infty \overline{A_i} \in \Sigma \Rightarrow_{св.2} \\ \Rightarrow_{св.2} \overline{\bigcup\limits_{i=1}^\infty \overline{A_i}} \in \Sigma \Rightarrow \bigcap\limits_{i=1}^\infty A_i \in \Sigma).$

    Определение 2:

    • $A$событие $\forall A \in \Sigma;$
    • $P\colon \Sigma \to \mathbb R $вероятностная мера (вероятность), если:
      1. $P(\Sigma) = 1;$
      2. $\forall A \in \Sigma \space\space P(A) \geqslant 0;$
      3. $\{A_i\}_{i=1}^\infty, \space A_i \in \Sigma, \space A_i \cap A_j = \emptyset$ при $i \not= j \Rightarrow P(\bigcup\limits_{i=1}^\infty A_i) = \sum\limits_{i=1}^\infty P(A_i).$

    Свойства вероятности:

    1. $P(A) \leqslant 1;$
    2. $P(A) = 1-P(\overline{A});$
    3. $P(\emptyset) = 0;$
    4. $A \subseteq B \Rightarrow P(A) \leqslant P(B);$
    5. $P(A \cup B) = P(A) + P(B)-P(A \cap B);$
    6. $\forall \{A_i\}_{i=1}^N \\ \space\space P(\bigcup\limits_{i=1}^N A_i) = \sum\limits_{i=1}^NP(A_i)-\sum\limits_{i < j} P(A_i \cap A_j) + \sum\limits_{i < j < k}P(A_i \cap A_j \cap A_k)-... +\\+ (-1)^{n-1}P(A_1 \cap A_2 \cap ... \cap A_n);$
    7. $\forall \{A_i\}_{i=1}^\infty\colon( A_{i+1} \subseteq A_i,\space \bigcap\limits_{i=1}^\infty A_i = \emptyset) \space\space\space \lim\limits_{i \to \infty}P(A_i) = 0.$

    Определение 3:

    $(\Omega, \Sigma, P)$вероятностное пространство.

    Определение 4:

    $\forall A,B \in \Sigma: P(B) > 0 $
    $\qquad P(A|B) = \frac{P(AB)}{P(B)}$условная вероятность события $A$ при условии события $B$.

    Определение 5:

    Пусть для $\{A_i\}_{i=1}^N$, где $\forall i \in \overline{1,N} A_i \in \Sigma$, выполняется $\forall i,j \in \overline {1,N} \space A_i \cap A_j = \emptyset$ и $\bigcup\limits_{i=1}^N A_i = \Omega$. Тогда $\{A_i\}_{i=1}^N$ называется разбиением пространства элементарных событий.

    Теорема 1 (формула полной вероятности):

    $\{A_i\}_{i=1}^N$ — разбиение пространства элементарных событий, $\forall i \in \overline{1,N} \space P(A_i) > 0$.
    Тогда $\forall B \in \Sigma \quad P(B) = \sum\limits_{i=1}^NP(B|A_i)P(A_i)$.

    Теорема 2 (формула Байеса):

    $\{A_i\}_{i=1}^N$ — разбиение пространства элементарных событий, $\forall i \in \overline{1,N} \space P(A_i) > 0$.

    Тогда $\forall B \in \Sigma\colon P(B) > 0 \quad P(A_i|B) = \frac{P(B|A_i)P(A_i)}{\sum\limits_{i=1}^N P(B|A_i)P(A_i)} = \frac{P(B|A_i)P(A_i)}{P(B)}$.

    С помощью формулы Байеса можно переоценить априорные вероятности ($P(A_i)$), исходя из наблюдений ($P(B|A_i)$), и получить совершенно новое представление о реальности.

    Пример:

    Предположим, что имеется тест, который применяется к человеку индивидуально и определяет: заражён он вирусом «X» или нет? Будем считать, что тест завершился успехом, если он вынес правильный вердикт для конкретного человека. Известно, что этот тест имеет вероятность успеха 0.95, а 0.05 — это вероятность как ошибки первого рода (false positive, т.е. тест вынес положительный вердикт, а человек здоров), так и ошибки второго рода (false negative, т.е. тест вынес отрицательный вердикт, а человек болен). Для ясности, положительный вердикт = тест «сказал», что человек заражён вирусом. Также, известно, что данным вирусом заражён 1% населения. Пусть некоторый человек получил положительный вердикт теста. С какой вероятностью он действительно болен?

    Обозначим: $t$ — результат теста, $d$ — наличие вируса. Тогда по формуле полной вероятности:

    $P(t=1) = P(t=1|d=1)P(d=1)+P(t=1|d=0)P(d=0).$

    По теореме Байеса:

    $P(d=1|t=1)=\frac{P(t=1|d=1)P(d=1)}{P(t=1|d=1)P(d=1)+P(t=1|d=0)P(d=0)}=\\=\frac{0.95\times0.01}{0.95\times0.01+0.05\times0.99}=0.16$

    Получается, что вероятность оказаться заражённым вирусом «X» при условии положительного вердикта теста равна 0.16. Почему такой результат? Изначально, человек с вероятностью 0.01 заражён вирусом «X» и еще с вероятностью 0.05 тест ошибётся. То есть, в случае, когда всего 1% населения заражён данным вирусом, вероятность ошибки теста, равная 0.05, оказывает существенное влияние на вероятность того, что человек действительно болен при условии, что тест дал положительный результат.

    Список используемой литературы:


    • «Основы теории вероятностей. Учебное пособие», М.Е. Жуковский, И.В. Родионов, МФТИ, МОСКВА, 2015;
    • «Глубокое обучение. Погружение в мир нейронных сетей», С. Никуленко, А. Кадурин, Е. Архангельская, ПИТЕР, 2018.

    Комментарии 20

      0

      Отлично! Тут все формулы отображаются корректно, причем в том же самом броузере!

        0
        Не понимаю, от чего это зависит???
        +3
          0
          Спасибо
          0
          Я, наверное, что-то пропустил на Хабре? Это так принято стало делать много маленьких зарисовок из учебника? Не понимаю как так… Вроде же авторский текст должен быть. Или пометка «перевод» и т.п. Я если не прав — поправьте, в упор не понимаю что изменилось на ресурсе
            +1
            Диссонирующий вывод. С одной стороны, есть тест, который в 95% случаях даёт правильный результат. И этот тест говорит, что пациент заражён. С вероятностью 95% (мы не знаем какую логику оценки использует тест). С другой стороны по формуле получается, что вероятность того, что он действительно заражён всего 16%. Можете объяснить?
              0
              Так как всего 1% населения заражён этим вирусом, то 5% ошибки теста играют существенную роль.
              Если предположить, что тест заканчивается успехом в 99.5% случаях, то в результате получается вероятность, равная 0.67 (вероятность того, что пациент действительно заражён).
              И наоборот, предположим, что 10% населения заражены этим вирусом, и пусть в 95% случаях тест заканчивается успехом. Тогда в результате получается вероятность, равная 0.68 (вероятность того, что пациент действительно заражён).
              Если предположить, что 50% населения заражены, то итоговая вероятность (при 95% случаях — успех) равна 0.95. Получается, уже довольно высокая точность.
                0
                А давайте на реальном примере? Возьмём туберкулёз. Возможно, приведу не самый достоверный источник, но точные данные искать лень, а для общего представления достаточно.
                Вот ссылка: ТЫЦ
                Итак, в 2018 году показатель новых зарегистрированных больных 44.4 на 100 000 человек. Это 0.0444%. Новые тесты достигают показателя точности 98%. То есть, приходит больной в лабораторию, сдаёт анализ и ему говорят: вы больны с вероятностью 98%. А он берёт вашу формулу, пересчитывает и говорит… «не, ребят, я болен с вероятностью около 2%.»
                1. Лечить будем?

                2. Вопрос с подковыркой: а если 2 раза тест сделает (независимо, в 2-х разных лабораториях) и оба раза тест покажет положительный результат, то какова вероятность, что всё же болен?
                  0
                  Исходя из формулы Байеса, при условиях, перечисленных выше, чтобы вероятность того, что человек действительно болен, была 0.5, точность теста должна быть 99.9556%. Другой вопрос, какое значение вероятности говорит о том, что надо лечить? Возможно, значение 0.02 превышает этот порог…
                  Для ответа на второй вопрос необходимо пересчитать условные вероятности, используемые в формуле Байеса, для случая когда даны два ответа теста. При условиях, описанных в примере статьи, так как эти события независимы, то, например, вероятность P{(t_1 = 1, t_2 = 1) | (d_1 = 1, d_2 = 1)} = P{t_1 = 1 | d = 1} * P{t_2 = 1 | d = 1} = 0.95 * 0.95 = 0,9025‬ и P{(t_1 = 1, t_2 = 1) | (d_1 = 0, d_2 = 0)} = P{t_1 = 1 | d = 0} * P{t_2 = 1 | d = 0} = 0.05 * 0.05 = 0,0025. d_1 = d_2 = d, так как рассматриваем два положительных результата теста для одного человека (а он либо болен, либо нет). Итоговая вероятность равна
                  [P{(t_1 = 1, t_2 = 1) | (d_1 = 1, d_2 = 1)} * P{d = 1}] / [(P{(t_1 = 1, t_2 = 1) | (d_1 = 1, d_2 = 1)} * P{d = 1} + P{(t_1 = 1, t_2 = 1) | (d_1 = 0, d_2 = 0)} * P{d=0})] = (0.9025 * 0.01) / (0.9025 * 0.01 + 0.0025 * 0.99) = 0.78
                    0
                    не, ребят, я болен с вероятностью около
                    Очень может так и быть. Поэтому диагноз ставят не только по одному тесту, а по совокупности тестов и симптомам (клинически):
                    www.rmj.ru/articles/ftiziatriya/DIAGNOSTIKA_TUBERKULEZA_ORGANOV_DYHANIYa
                      0
                      Я не утверждал, что тест — это единичное измерение. Тест может быть комплексным. Каждое измерение имеет какую-то погрешность. Пусть, сделали 10 измерений различных параметров (и назвали это «тест на туберкулёз») и по совокупности они дают вероятность того, что пациент болен 98%. Видите, к чему я клоню?
                        0
                        Как формула работает ARad внизу хорошо расписал.
                          0
                          Да, я видел, спасибо. Но вас я спрашивал не про это. Вам я указывал на то, что состав теста неопределён и вполне может включать в себя всё, что угодно, вплоть до дополнительных расчётов.
                          Ситуация: есть тест 'А', он даёт точность 95%, есть тест 'В', он тоже даёт точность 95%. Один из этих тестов использует статистику по заболеваниям (формула Байеса уже применена). Пациенту просто говорят результат: вы больны с вероятностью 95%. Очевидно, что для одного из тестов дальнейшее применение формулы Байеса приведёт к неправльным результатам. Отсюда вывод: для того, чтобы понять результат, надо абсолютно точно знать как устроен тест и что именно он показывает. Какое значение вы подразумеваете под словами «точность теста»?
                  +1
                  Например проверили всего 2000 человек. Из них всего 20 больных.
                  Тогда тест даст следующие результат:
                  1980 * 0.95 = 1881 здоровых
                  1980 * 0.05 = 99 ложно больных
                  20 * 0.95 = 19 больных
                  20 * 0.05 = 1 ложно здоровых

                  Получается тест определил 99 + 19 = 118 человек как больных. Из них всего 19 он определил верно. 19 / 118 это примерно 16% что человек действительно больной.
                    0
                    Ять! Лучшее объяснение Байеса которое я видел!
                      0
                      Спасибо, отличная иллюстрация. Получается, что для уникального события теста с точностью 95% недостаточно для постановки диагноза, а вот для постановки диагноза на, скажем, цитомегаловирус или герпес, достаточно будет аппарата с точностью 60-70%.
                      Применяя формулу выходит, что только для болезней, которыми заражены 50% жителей тест будет отвечать своей точности. Вот именно это и контринтуитивно. Возможно, я не до конца понимаю значение термина «точность теста». Попробуете объяснить?
                        0
                        95% точности значит что в из 100 человек он для 95 из них выдаст правильный ответ.
                        Из примера выше:
                        1980 * 0.95 = 1881 здоровых
                        и 20 * 0.95 = 19 больных тест определил верно

                        и для 5% неверно
                        1980 * 0.05 = 99 ложно больных
                        20 * 0.05 = 1 ложно здоровых

                        Но вот вероятность что определенный больным человек реально больной зависит от распространенности болезни.

                        Если вас определили здоровым то вероятность неверного результата:
                        1 ложно здоровый разделить на (1881+1) т.е. 1 человек на 1882 что достаточно много тоже, но меньше 5%
                          0
                          Спасибо.
                          Кажется, вы в последнем расчете на лишнюю сотню домножили. Вероятность оказаться больным, в случае если тест вас определил как здорового, из вашего примера выходит 0.053%.
                            0
                            Во первых у вас и без теста вероятность всего 1%.
                            Во вторых 5% это в 19 раз меньше чем 95%, получается что после теста вероятность уменьшается еще примерно в 19 раз. 1% / 19 это примерно 0,0526315789473684%. Но это не точный, а интуитивный ответ. А точный по формуле Байеса считайте будет как раз в районе 0,053%.
                            Т.е. 1 человек на 1882 определенный тестом как здоровый будет больным.
                    0

                    А как считается процент ложных результатов? Чтобы определить, верный результат или ложный, нужен еще один тест. А у него есть твоя погрешность. И так далее.


                    Не могу понять.

                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                    Самое читаемое