Введение

В этой статье я представлю байесовскую сеть и основные понятия с соответствующими уравнениями и примерами. Байесовская сеть представляет собой графическую модель (DAG — направленный ациклический граф), основанную на определениях вероятности и рассматривающую условные зависимости между переменными и событиями (вероятность наступления события). Прежде чем продолжить изучение байесовской сети, позвольте мне дать некоторые основные определения.

Терминология

  • Совместная вероятность.Вычисление вероятности двух событий вместе в одно и то же время называется совместной вероятностью.
  • Условная вероятность.Условная вероятность — это вероятность события (от случайной величины), основанная на другом событии. Чтобы иметь условную вероятность, нам нужно вычислить совместную вероятность и вероятность предыдущего события. Условное распределение возникает, когда есть некоторые данные о связанных переменных.
  • Предельная вероятность:вероятность предельного распределения набора случайных величин. В отличие от условной вероятности, она не зависит от значений других переменных.
  • Нормализация. – это метод масштабирования, при котором подмножество переменной масштабируется до определенного диапазона (например, от нуля до единицы).
  • Маргинализация: определяется как суммирование вероятных значений переменной для анализа предельного вклада других событий.

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

Байесовская сеть — это сеть, включающая связь между различными узлами, в которой каждый узел является случайной величиной, а тип связи определяет условную вероятность между переменными. На следующем рисунке у нас может быть простая байесовская сеть.

Вероятность Z при данном W будет следующей;

Есть два важных аспекта байесовской сети: определение совместного распределения в задаче и вычисление запросов.
Здесь у нас есть условное распределение, которое необходимо для вычисления вероятностей запросов.

Существует несколько стратегий для нахождения результата запроса с вышеуказанной вероятностью, включая исключение переменных, фильтрацию частиц и подход Гиббса.

Обратите внимание, что при расчете важно нормировать условную вероятность.

Исключение переменных

Исключение переменных является полезным подходом в вероятностных сетевых моделях, таких как цепь Маркова и байесовские сети. Идея состоит в том, чтобы применить факторинг к переменным. Вы можете учитывать конкретную переменную, чтобы преобразовать часть уравнения вероятности в функцию. Однако этот метод потребует времени и ресурсов.

Выборка Гиббса

В выборке Гиббса мы выбираем случайную переменную и берем выборку из переменной по всем другим условным свойствам или свойствам марковского покрытия. Выборка переменной проверяется на все возможности марковского одеяла.

В качестве резюме:

Байесовская сеть — это направленный ациклический граф, который показывает условные зависимости между различными переменными. Узлы описывают переменные, а ребра означают условную связь.

Выполнение

Чтобы реализовать причинно-следственную модель на основе структуры DAG, необходимо рассмотреть следующие шаги;

  • Подгонка набора данных к DAG
  • Вернуть условные вероятности
  • Вычислите запрос, используя один из вышеуказанных методов.
  • Предсказать причинно-следственную связь

Вы можете построить DAG, указав ребра. и используя множество методов Python для его получения. Ниже приведен один пример DAG, который показывает, что набор данных имеет четыре функции, а DAG имеет одно ребро.

Имея зависимости, вы можете написать условную вероятность. И примените библиотеку Python или R для вычисления логического вывода.

R Пример

{r}
# R code
library(bnlearn)

data = read.csv()
fit <- bn.fit(net, data, method="bayes")
fit

Пример Python

df = pandas.read_csv()
bn_model = bnlearn.structure_learning.fit(df, methodtype='naivebayes', root_node="0")
DAG = bn.make_DAG(bn_model)

query = bnlearn.inference.fit(DAG, variables=['1','2'], evidence={'0':1}, verbose=0)

Полезные ресурсы

  • Хорошая практика моделирования байесовских сетей, здесь
  • Байесовские сети 1 — Вывод | Stanford CS221: AI (осень 2019), здесь
  • Практический пример Python, здесь