Классификация байесовской сети

Я нахожусь в процессе изучения байесовской сети для классификации на Matlab, и я застрял на простом (я думаю) шаге:

So for a naive bayes classifier like for the iris data set, the class is on the top node like this:

        class
/ \ feature1 feature2

Так что все в порядке, я понимаю, почему класс является причиной функций, это нормально, я понимаю, почему класс сам по себе имеет априор.

Но в случае ненаивной байесовской сети, например:

cause1      cause2
     |  \        /
     |  consequence
     |    /
     class


В той ситуации, что не наивно, как пойдёт приора, как её настроить? Как мне получить классификацию из этого? Спасибо (:

PS: Я смотрю на BNT для сети.


person Pedro.Alonso    schedule 20.07.2013    source источник


Ответы (1)


Предполагая, что все упомянутые вами переменные являются категориальными, а направления краев - сверху вниз:

До этого:

В первом наивном байесовском примере таблица условной вероятности (CPT) «класса» состоит исключительно из его априорного распределения, поскольку она является корневым узлом, то есть не имеет родителей. Если «класс» может принимать 2 состояния (например, черное и белое), его CPT будет состоять из 2 значений.

Во втором примере байесовской сети (BN) CPT «класса» зависит от «причины1» и «следствия». Допустим, «следствие» имеет 3 состояния, «причина1» имеет 4 состояния и, как и прежде, «класс» имеет 2 состояния. В этом случае CPT «класса» будет содержать 3*4*2 значения. Когда вы изучаете этот CPT, вы можете включить свои предыдущие убеждения в виде распределения Дирихле (если все переменные являются категориальными). В качестве примера того, как включить ваши предыдущие убеждения в процесс оценки максимального правдоподобия, взгляните на эти превосходные слайды лекций.

Вывод: (или то, что вы называете «классификацией»)

В соответствии с классификацией в примере 1 вы можете использовать правило Байеса для вычисления P («класс» = белый) и P («класс» = черный). Во втором (BN) примере вам нужно будет использовать алгоритм распространения убеждений, исключения переменных или дерева соединений, чтобы обновить апостериорные вероятности узла «класс» на основе наблюдаемых вами узлов.

здесь. Кроме того, набор инструментов BNT поставляется с краткими примерами «вывода», в которых используется функция дерева соединений, которую вы можете найти в папке .../examples.

Наконец, некоторые люди могут не согласиться, но что касается BN, я бы посоветовал не интерпретировать A -> B строго как «A вызывает B», поскольку причинно-следственный аспект BN, особенно в области структурного обучения, открыт для многих дискуссий. .

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

person Zhubarb    schedule 29.07.2013
comment
Итак, давайте, если я хочу классифицировать сезон, в котором мы находимся, и я добавляю узел класса со значениями зима или лето в сеть дождевателей, а дно учитывает только то, облачно или солнечно, как мне это сделать - person Pedro.Alonso; 29.07.2013
comment
Извините, я имел в виду, учитывая, что облачно и/или дождливо, я дам некоторую вероятность того, что будет облачно и дождливо, и это даст мне, что, скорее всего, зима, можно ли это сделать? Если да, то как? Спасибо - person Pedro.Alonso; 29.07.2013
comment
Я задам другой вопрос, за него спасибо, вы мне очень помогли :) - person Pedro.Alonso; 30.07.2013
comment
stackoverflow.com/questions/17935919 / - person Pedro.Alonso; 30.07.2013
comment
@ Педро, я посмотрю на это в течение часа. - person Zhubarb; 30.07.2013