Подтвердить что ты не робот

Псевдокод для Network-only-bayes-classifier

Я пытаюсь реализовать набор инструментов классификации для одномерных сетевых данных с помощью igraph и python.

Однако мой вопрос на самом деле является скорее вопросом алгоритмов в области реляционной классификации вместо программирования.

Я следую "Классификация в сетевых данных" .

Мне сложно понять, что этот документ относится к "классификатору байесов сети" (NBC), который является одним из реляционных классификаторов, описанных в документе.

Я реализовал классификатор Naive Bayes для текстовых данных, используя ранее представленное представление функций слов. И идея Naive Bayes по текстовым данным ясна на мой взгляд.

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

NBC объясняется на стр. 14 на в документе,

enter image description here

Резюме:

Мне нужен псевдокод "Network-Only Bayes Classifier" (NBC), описанный в paper, стр. 14.

Обозначение псевдокода:

  • Позвонить vs список вершин в графе. len(vs) - это длина. vs[i] - i-я вершина.
  • Предположим, что у нас есть одномерный и двоичный сценарий, т.е. vs[i].class либо 0, либо 1, и нет никакой другой данной функции node.
  • Предположим, что мы запускаем локальный классификатор до того, чтобы каждый node имел начальную метку, которая вычисляется локальным классификатором. Меня интересует только часть реляционного классификатора.
  • Позвоните v вершину, которую мы пытаемся предсказать, а v.neighbors() - список вершин, которые являются соседями v.
  • Предположим, что все веса ребер 1.

Теперь мне нужен псевдокод для:

def NBC(vs, v):
   # v.class is 0 or 1
   # v.neighbors is list of neighbor vertices
   # vs is the list of all vertices

   # This function returns 0 or 1

Edit:

Чтобы облегчить вашу работу, я сделал этот пример. Мне нужен ответ для последних двух уравнений.

4b9b3361

Ответ 1

В словах...

Вероятность, что node x_i принадлежит классу c, равна:

  • Вероятность окрестности x_i (называемая N_i), если x действительно принадлежал классу c; Умножается на...
  • Вероятность самого класса c; Разделено на...
  • Вероятность самой окрестности N_i (из node x_i).

Что касается вероятности окрестности N_i (of x_i), если x должен принадлежать классу c, то он равен:

  • A продукт с некоторой вероятностью; (какая вероятность?)
  • Вероятность того, что некоторая node (v_j) окрестности (N_i) принадлежит классу c, если x действительно принадлежит классу c
    • (поднят до веса края, соединяющего проверяемый node и node, который классифицируется... но вас это не интересует... пока). (Обозначения немного отсюда, я думаю, почему они определяют v_j, а затем никогда не используют его?... Каким бы ни было).
  • Наконец, умножьте product of some probability на некоторый 1/Z. Зачем? Поскольку все p являются вероятностями и поэтому лежат в диапазоне от 0 до 1, но веса w могут быть любыми, что означает, что в конец, расчетная вероятность может быть вне диапазона.

  • Вероятность того, что некоторый x_i принадлежит классу c GIVEN THE ДОКАЗАТЕЛЬСТВО ОТ ЕГО СОСЕДСТВА - это задняя вероятность. (ПОСЛЕ что-то... Что это такое?... см. Ниже)

  • Вероятность появления окрестности N_i, если x_i принадлежащий классу c, является вероятностью.

  • Вероятность самого класса c является предварительной вероятностью. ПЕРЕД чем-то... Что это такое? Доказательство. Предварительная говорит о вероятности класса без каких-либо доказательств но апостериор говорит вам о вероятности событие (что x_i относится к c). ДАЛЕЕ ДОКАЗАТЕЛЬСТВО ОТ ЕГО СОСЕДИ.

Предварительное, может быть субъективным. То есть, полученное с помощью ограниченных наблюдений или быть информированным мнением. Другими словами, это не должно быть распределение населения. Он должен быть достаточно точным, не совсем известным.

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

Внутри продукта (заглавная буква Pi во втором уравнении, которое выражает вероятность) у вас есть условное. Условным является вероятность того, что окрестность node принадлежит некоторому классу, если x принадлежит классу c.

В типичном применении Наивный байесовский классификатор, то есть document классификация (например, спам-почта), условие, что an email is spam GIVEN THE APPEARANCE OF SPECIFIC WORDS IN ITS BODY является производным огромной базой данных наблюдений или огромной базой данных электронных писем, которые мы действительно знаем, /strong > , к какому классу они принадлежат. Другими словами, я должен иметь представление о том, как выглядит спам-электронное письмо и, в конечном итоге, большинство спам-писем сходится к какой-то общей теме (я - официальный представитель банка, и у меня есть денежная возможность для вас, дайте мне ваши банковские реквизиты для перевода денег вам и сделайте вас богатыми...).

Без этого знания мы не можем использовать правило Байеса.

Итак, чтобы вернуться к вашей конкретной проблеме. В вашем PDF-документе у вас есть вопросительный знак при выводе продукта.

Совершенно верно.

Итак, реальный вопрос: какова вероятность вашего графика/данных?

(... или. Откуда вы собираетесь его извлечь? (очевидно, либо большое количество известных наблюдений ИЛИ), но и некоторые знания об этом явлении., какова вероятность того, что node заражен, учитывая, что часть его окрестности тоже заражена)).

Надеюсь, это поможет.