Наука данных с нуля (23 частью серии)
Обзор
Этот пост – глава 6 в продолжении моего покрытия Наука данных с нуля Джоэл Грус . Мы будем работать на пути к пониманию условной вероятности путем понимания предшествующих концепций, таких как маргинальные и совместные вероятности.
В конце мы свяжем все концепции вместе через код. Для тех, кто наклонен, вы можете перейти к коду к нижней части этого поста.
Испытание
Первая задача в этом разделе отличается между Два Условные вероятностные выписки.
Вот установка. У нас есть семья с двумя (неизвестными) детьми с двумя допущениями. Во-первых, каждый ребенок одинаково может быть мальчиком или девушкой. Во-вторых, гендер второго ребенка – независимый пола первого ребенка.
Результат 1: Какова вероятность события «Оба дети являются девочками» (B) Условно на мероприятии «Старший ребенок – это девушка» (G)?
Вероятность для оператора составляет примерно 50% или (1/2).
Результат 2: Какова вероятность события «Оба детьми являются девочками» (B) Условно на мероприятии «По крайней мере один из детей – это девушка» (L)?
Вероятность для выписки два составляет примерно на 33% или (1/3).
Но на первый взгляд они выглядят похожими.
Предельные и совместные вероятности
Книга прыгает прямо к условному вероятностям, но сначала мы должны посмотреть на маргинальный и совместное вероятности. Тогда мы создадим Объединенные вероятности стол и сумма вероятности, чтобы помочь нам выяснить различия. Затем мы …| резюме с Условные вероятности Отказ
До чего-либо, нам нужно реализовать ситуацию, которую у нас есть одна из Независимость Отказ Пол одного ребенка – независимый второго ребенка.
Интуиция для этого сценария будет отличаться от зависимый ситуация. Например, если мы нарисуем две карты из колоды (без замены), вероятности разные. Вероятность рисования одного короля ♠ ♠ ️ составляет (4/52) и вероятность нанесения второго короля ♣ ️ (3/51); Вероятность второго события (второй король) является зависимый на результате первого розыгрыша.
Вернуться к двум неизвестным детям.
Можно сказать, что вероятность того, что первый ребенок, являющийся либо мальчиком, либо девушкой – 50/50. Более того, вероятность второго ребенка, которая является независимый первого, это Также 50/50. Помните, наше первое предположение в том, что Каждый ребенок одинаково может быть мальчиком или девушкой .
Давайте положим эти цифры в таблицу. Проблемы (1/2), показанные здесь, называются маргинальный вероятности (обратите внимание, как они на полях стола).
Поскольку у нас есть два пола (много как две стороны перевернутой монеты), мы можем интуитивно выяснить все Возможные результаты:
- Первый ребенок (мальчик), второй ребенок (мальчик)
- Первый ребенок (мальчик), второй ребенок (девушка)
- Первый ребенок (девушка), второй ребенок (мальчик)
- Первый ребенок (девушка), второй ребенок (девушка)
Есть 4 возможных результата Таким образом, вероятность получения любой из четырех результатов составляет (1/4). Мы можем на самом деле написать эти вероятности в середине стола, Совместные вероятности :
Рекомендействию, вероятность того, что первый ребенок, являющийся либо мальчиком, либо девочкой, составляет 50/50, достаточно просто. Вероятность второго ребенка, являющегося либо мальчиком, либо девушкой, также 50/50. При положении в стол это дало предельная вероятность Отказ
Теперь мы хотим узнать вероятность сказать: «Первый ребенок – мальчик и второй ребенок, являющийся девушкой». Это Совместная вероятность потому что это вероятность того, что первый ребенок принимает определенный пол (мальчик) И Второй ребенок принимает определенный пол (девушка).
Если два события являются независимый и в этом случае они есть, их Совместные вероятности являются Продукт вероятностей каждый происходит Отказ
Вероятность первого ребенка, являющегося мальчиком (1/2) и Второй ребенок – это девушка (1/2); Продукт каждой предельной вероятности представляет собой совместную вероятность (1/2 */4).
Это можно повторить для других трех совместных вероятностей.
Условная возможность
Теперь мы попадаем в Условная вероятность что является вероятностью одного события происходит (то есть, второй ребенок, являющийся мальчиком или девочкой) Учитывая, что или на условном, что Другое событие произошло (то есть, первый ребенок – мальчик).
На данный момент это может быть хорошая идея, чтобы начать писать утверждения вероятности Похожие Как это выражено в математике.
Совместная вероятность является продукт каждого отдельного события (предполагая, что они являются независимыми событиями). Например, у нас могут быть два отдельных события:
- P (1-й): 1/2
- P (2nd): 1/2
Вот их Совместная вероятность :
- P (1-й, 2-й)
- P (1-й) * P (2nd)
- (1/2 */4)
Есть отношения между Условный вероятности и совместное вероятности.
Вот их Условная вероятность :
- P (2-й | 1-й)
- P (1-й, 2-й)/P (1-й)
Это работает:
- (1/4)//2 или
- (1/4) */2
Другими словами, вероятность того, что второй ребенок – мальчик, учитывая, что первый ребенок – это мальчик, по-прежнему 50% (это подразумевает, что по отношению к условным вероятность, если события являются независимый это не отличается от одного события).
Теперь мы готовы решать два результата, поставленных в начале этого поста.
Результат 1: Какова вероятность события «Оба дети являются девочками» (B) Условно на мероприятии «Старший ребенок – это девушка» (G)?
Давайте сломаемся. Сначала мы хотим вероятность того, что «оба детями являются девочками». Мы возьмем продукт двух событий; Вероятность того, что первый ребенок – это девушка (1/2) и вероятность того, что второй ребенок – это девушка (1/2). Так для оба Ребенок, чтобы быть девочками, 1/2 */4
- P (1-й, 2-й)/4
Во-вторых, мы хотим, чтобы это было Учитывая, что «Пожилой ребенок – это девушка».
- P (1-й)/2
Условная вероятность :
- P (1-й, 2-й)/P (1-й)
- (1/4)/(1/2) = (1/4) * (2/1) = (2/4) = 1/2 или грубо 50%
Теперь давайте сломаем второй результат:
Результат 2: Какова вероятность события «Оба детьми являются девочками» (B) Условно на мероприятии «По крайней мере один из детей – это девушка» (L)?
Опять же, мы начинаем с «Оба детей – это девочки»:
- P (1-й, 2-й)/4
Тогда у нас есть «При условии, что хотя бы один из детей – это девушка». Мы ссылаемся на Объединенная вероятностная таблица Отказ Мы видим, что при попытке выяснить вероятность того, что «по крайней мере один из детей – это девушка», мы исключаем сценарий, где оба Дети мальчики. Это на самом деле Комплимент к по крайней мере один ребенок – это девушка Отказ Оставшиеся 3 из 4 вероятностей, соответствуют условию.
Вероятность, по меньшей мере, одного детей, являющаяся девушкой:
- (1/4) + (1/4) +/4
Так:
- P (1-й, 2-й)/P («По крайней мере один ребенок – это девушка»)
- (1/4)/(3/4) = (1/4) * (4/3) = (4/12) = 1/3 или грубо 33%
Ключ убрать
Когда два события являются независимый их Совместная вероятность это продукт каждого события:
- P (E, F) (E) * ПФ)
Их условный Вероятность – это Совместная вероятность разделен на условное (то есть, p (f)).
- P (E | F) (e, f)/p (f)
И так для наших двух проблемных сценариев, у нас есть:
Вызов 1:
- Б, что обе дети – девочки
- Г, что старше Дети – это девушка
Это может быть указано как: (B, G)/P (G)
Вызов 2:
- Б, что обе дети – девочки
- Я это хотя бы один Дети – это девушка
Это может быть указано как: (B, L)/P (L)
Код Python
Теперь, когда у нас есть интуиция и разработала проблему на бумаге, мы можем использовать код для выражения условной вероятности:
import enum, random class Kid(enum.Enum): BOY = 0 GIRL = 1 def random_kid() -> Kid: return random.choice([Kid.BOY, Kid.GIRL]) both_girls = 0 older_girl = 0 either_girl = 0 random.seed(0) for _ in range(10000): younger = random_kid() older = random_kid() if older == Kid.GIRL: older_girl += 1 if older == Kid.GIRL and younger == Kid.GIRL: both_girls += 1 if older == Kid.GIRL or younger == Kid.GIRL: either_girl += 1 print("P(both | older):", both_girls / older_girl) # 0.5007089325501317 print("P(both | either):", both_girls / either_girl) # 0.3311897106109325
Мы видим, что код подтверждает нашу интуицию, глядя на каждый из Совместные вероятности
either_girl #7,464 / 10,000 ~ roughly 75% or 3/4 probability that there is at least one girl both_girls #2,472 / 10,000 ~ roughly 25% or 1/4 probability that both children are girls older_girl #4,937 / 10,000 ~ roughly 50% or 1/2 probability that the first child is a girl
Пробой кода
Вызов 1:
- P (b | g) (b, g)/p (g) или более явно:
- P (оба_girls | (оба_girls)/p (stear_girl)
Вызов 2:
- P (b | l) (b, l)/p (l) или более явно:
- P (оба_girls | (оба_girls)/p (либо_girl)
Условный вероятности Условный заявления в коде.
Во-первых, мы устанавливаем случайную функцию, которая назначает Random.Choice
Метод назначить гендерное такое, что каждый ребенок (то есть, Kid
экземпляр класса) одинаково, вероятно, будет мальчиком или девочкой Отказ Это первое предположение о нашем сценарии.
import enum, random class Kid(enum.Enum): BOY = 0 GIRL = 1 def random_kid() -> Kid: return random.choice([Kid.BOY, Kid.GIRL])
Далее мы создаем переменные, представляющие Совместные распределения ; Одна переменная для обеих детей, являющихся девочками ( оба_girls
), одна переменная для только Старший ребенок Будучи девушкой ( still_girl
), и один для хотя бы один Ребенок – это девушка ( IN_GIRL
).
Сначала вероятность любого одного ребенка, являющегося девушкой (1/2), соответствует нашему предположению, мы ожидаем:
older_girl #4,937 / 10,000 ~ roughly 50% or 1/2 probability that the first child is a girl
Напомним, что когда мы возьмем Продукт каждый Ребенок – это девушка (1/2), мы можем выяснить совместную вероятность оба Ребенок – это девушка (1/4). Таким образом, мы ожидаем:
both_girls #2,472 / 10,000 ~ roughly 25% or 1/4 probability that both children are girls
Наконец, вспомните, что если мы пытаемся рассчитать, что По крайней мере, один (из двух) детей – это девушка , мы можем исключить вероятность (1/4), что оба детей – уход за мальчиками (1/4 + 1/4 +/4) (см. Таблицу выше). Таким образом, мы ожидаем:
either_girl #7,464 / 10,000 ~ roughly 75% or 3/4 probability that there is at least one girl
Чтобы прибыть на числа, которые мы видим выше, мы создаем 10000 Симуляции Сценариев, где 1-й ребенок и 2-й ребенок (см. Таблицу выше), являются случайным образом пола в каждом сценарии и условно фильтруют через код, чтобы увидеть, являются ли определенные результаты Правда
Отказ
random.seed(0) for _ in range(10000): younger = random_kid() older = random_kid() if older == Kid.GIRL: older_girl += 1 if older == Kid.GIRL and younger == Kid.GIRL: both_girls += 1 if older == Kid.GIRL or younger == Kid.GIRL: either_girl += 1
Это моделирование дает совместные вероятности, которые затем используются для поиска условных вероятностей двух результатов выше:
print("P(both | older):", both_girls / older_girl) # 0.5007089325501317 print("P(both | either):", both_girls / either_girl) # 0.3311897106109325
Для получения дополнительной информации о науке о данных, машинном обучении, R, Python, SQL и многое другое, Найди меня в Twitter Отказ
Наука данных с нуля (23 частью серии)
Оригинал: “https://dev.to/paulapivat/conditional-probability-with-python-concepts-tables-code-3e4k”