Во время просмотра новостей вы, вероятно, столкнулись с прогнозами погоды, согласно которым вероятность выпадения снега составляет 75%. Вы когда-нибудь задумывались, откуда у них такой процент? Или вы понимаете, что они имеют в виду? Это сложные утверждения, особенно с точки зрения частотника. Вам может быть трудно объяснить, выпадет ли снег или нет.
По словам Байесиана, такой подход объясним, и они дают решение для такого рода утверждений. Подход Байесиана к вероятности объясняет, что вы можете измерить вероятность, основываясь на вероятности события. Вот почему Байесян уверен в вероятности события.
Простыми словами, байесианин не совсем уверен в том, во что он верит, но он уверен в событии. Однако, будучи байесианином, вы становитесь более уверенными в том, во что верите, после сбора данных и интерпретации связи между этими данными.

Что такое PyMC3

PP или вероятностное программирование позволяет кодировать спецификации байесовских моделей. PyMC3 является открытой и обновленной версией PyMC2. PyMC3 – это основа вероятностного программирования. С помощью PyMC3 framework вы можете описывать свои модели с мощным, читаемым и интуитивно понятным синтаксисом. Синтаксис похож на естественный синтаксис статистиков.
Этот фреймворк позволяет использовать алгоритмы Маркова цепочки Монте-Карло. Эти алгоритмы являются инструментом нового поколения для сэмплинга и сегментации, например, No-U-Turn Sampler, самонастраивающийся вариант Monte Carlo Гамильтона и т.п. Вы можете работать с этими сэмплерами со сложным апостериорным и высокоразмерным распределением. Эти алгоритмы помогут Вам в работе со сложными и подробными моделями без необходимости в обширных знаниях и специализации на сложных алгоритмах.

Байесовская сеть с PyMC3

С помощью вероятностных моделей можно вычислить вероятности события и определить связь между различными переменными. Например, если вы создаете модель, охватывающую все возможные случаи и вероятности, вам понадобятся большие объемы данных. Сеть упростит допущения благодаря условной независимости и повысит эффективность всех случайных переменных. Хотя шаги просты, в этом случае вы можете взять пример Наива Бэйеса.
Вы можете создать модель для сохранения уже известной вам условной зависимости среди случайных условной независимости и переменных в различных случаях.
Байесовские сети являются моделями для вероятностных графиков, захватывающими известную вам условную зависимость и направляющими значения в графическом представлении. Пропущенные связи можно найти с помощью условных зависимостей модели.
Байесовские сети позволяют вам с помощью полезных инструментов генерировать доменные графики и визуализировать вероятностную модель. Кроме того, это поможет вам просмотреть отношения ваших случайных величин. Более того, она указывает причину этих вероятностей с помощью доказательств. Байесовская сеть имеет два основных преимущества:
– Во-первых, Байесовская сеть позволяет вам понять, как вы можете создать и приспособить вашу модель в соответствии с вашими требованиями. Однако, прежде чем выполнять эту деятельность, вы должны понять концепцию и рабочий механизм, лежащий в основе модели.
– Во-вторых, вы можете проверить производительность модели там, где у нас уже есть выходные данные. Например, можно проверить неопределенность и значения. Это поможет нам понять точность модели.
Ниже мы поймем, как Python стимулирует ваши данные с помощью свойств, которые у нас уже есть.

PyMC3 с Python

Использование Python для вероятностного программирования дает вам многочисленные преимущества. Вот некоторые преимущества PyMC3 с Python:
– Совместимость с несколькими платформами
– Читаемый, чистый и выразительный синтаксис.
– Расширяемость с помощью Сайтона, Фортрона, С и С++.
– Простая интеграция с научными библиотеками
С помощью этих функций и качества PyMC3 можно легко написать пользовательские статистические распределения, функции преобразования и выборки для байесовского анализа.

Пример PyMC3 с Python

Вы можете проверить следующий пример из граната, который является пакетом Python. В этом примере мы используем данные пациентов с COVID и курильщиков, чтобы узнать, сколько людей окажется в больнице. Вы можете понять концепцию из следующего примера:
импортная осина гранатовая

smokeD = pg.DiscreteDistribution({‘yes’: 0.25, ‘no’: 0.75})
covidD = pg.DiscreteDistribution({‘yes’: 0.1, ‘no’: 0.9}))
hospitalD = pg.ConditionalProbabilityTable(
[“да”, “да”, “да”, 0.9], [“да”, “да”, “нет”, 0.1],
[“да”, “нет”, “да”, 0.1], [“да”, “нет”, “нет”, 0.9],
[“нет”, “да”, “да”, 0.9], [“нет”, “да”, “нет”, 0.1],
[“нет”, “нет”, “да”, 0.01], [“нет”, “нет”, “нет”, 0.99]]],
[smokeD, covidD])

дым = pg.Node(smokeD, name=”smokeD”)
covid = pg.Node(covidD, имя=”covidD”)
больница = pg.Node(hospitalD, name=”hospitalD”)

model = pg.BayesianNetwork(“Ковидный коллайдер”)
model.add_states(smoke, covid, hospital)
model.add_edge(дым, больница)
model.add_edge(covid, hospital)
model.bake()
Вы могли бы вычислить P(covid|smoking, больница) = 0.5 с помощью
model.predict_proba({‘smokeD’: ‘да’, ‘hospitalD’: ‘да’))
и P(covid|¬ smoking, hospital)=0.91 with
model.predict_proba({‘smokeD”: ‘нет’, ‘hospitalD’: ‘yes’}

Будущее PyMC3

Мы ожидаем серьезных изменений в подходе PyMC3. Теперь мы можем собирать графики Theano в JAX и использовать MCMC сэмплер на основе JAX. Это означает, что мы можем изменить кодировку бэкэнда на JAX без каких-либо изменений в кодах PyMC3. Кроме того, мы можем использовать молниеносную выборку для огромных моделей с помощью сэмплеров на базе JAX.
Удивительная особенность этой возможности заключается в том, что вам не придется менять существующий код для модели PyMC3, чтобы запускать свои модели на современном оборудовании, современном бэкэнде и сэмплерах на базе JAX. Такой подход и изменения обеспечат удивительную скорость без дополнительных затрат.
С ростом внимания TF и PyTorch к динамическим графикам в Python больше нет адекватных статических библиотек. Кроме того, существует множество преимуществ статики перед динамическими графами. Именно поэтому мы рассматриваем Theano как мощную и зрелую библиотеку будущего. Этот фреймворк получит больше тяги в будущем, так как вы сможете получать доступ и модифицировать все виды представления графов. Вы можете выполнить Theano для множества современных интерфейсов бэкэнда.

Заключение

PyMC3 помогает решать базовые байесовские статистические прогнозы и проблемы умозаключений. В этой статье мы понимаем PyMC3 и его использование. Кроме того, мы понимаем, как Bayesian Networks и Python помогают создавать сложные модели с помощью PyMC3.