Наивная байесовская реализация и вывод данных из меток классов - PullRequest
2 голосов
/ 24 февраля 2011

Есть ли у кого-нибудь указатели на реализацию наивного байесовского классификатора, предпочтительно на C. У меня есть 5-мерный набор двоичных данных. Метки класса также являются двоичными. Я использовал наивный байесовский классификатор в Matlab с хорошими результатами. Тем не менее, есть ли какой-нибудь алгоритм машинного обучения и его реализация, позволяющая мне выводить данные из меток классов? Здесь в этом случае я хочу, чтобы пятимерные двоичные данные были выведены из метки двоичного класса. Выборка данных [1 1 0 1 0] и класс 0.

Ответы [ 2 ]

2 голосов
/ 27 февраля 2011

Поскольку у вас есть набор двоичных данных, вот хорошая реализация с использованием C:

http://users.ics.tkk.fi/jhollmen/BernoulliMix/

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

А вот вопрос, который вы задали, вот мое понимание.

Что делает наивный байесовский классификатор (NBC), это предсказывать P (C | X) с учетом некоторых данных и метки.Согласно теореме Байеса,

P(C|X) = \frac{P(X|C)P(C)}{P(X)}

, что означает, что все, что вы можете сделать, предсказать класс неизвестных данных.И наоборот, то, что вы хотите сделать, это P (X | C).Следовательно, вы можете обучить свою модель следующим образом:

P(X|C) = \frac{P(C|X)P(X)}{P(C)}

Соответственно, вы должны принять распределение для ваших данных ... и тому подобное, поэтому, это может быть настолько точным, если у вас неверное предположениес вашими данными.В вашем случае у вас есть бинарные атрибуты X, которые необходимо оценить из класса меток, если вы предполагаете, что атрибуты независимы, то, что вам нужно, это примерно так:

P(C|X_1,X_2,X_3,X_4,X_5) \proportional P(X_1|C)P(X_2|C)P(X_3|C)P(X_4|C)P(X_5|C)P(C)

, что не так просторешить .....

0 голосов
/ 24 февраля 2011

Посмотрите на этот пакет R-проекта:

http://www.stat.ucl.ac.be/ISdidactique/Rhelp/library/e1071/html/naiveBayes.html

http://cran.r -project.org / web / packages / e1071 /index.html

Вы отметили [C]: возможно связать R с вашими собственными C-программами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...