2011-02-24 5 views
2

Quelqu'un at-il des pointeurs vers l'implémentation du classificateur Naive Bayes, de préférence en C. J'ai un ensemble de données binaires en 5 dimensions. Les étiquettes de classe sont également binaires. J'ai utilisé Naive Bayes Classifier dans Matlab avec de bons résultats. Cependant, y a-t-il un algorithme d'apprentissage automatique et sa mise en œuvre qui me permettent d'inférer des données à partir des étiquettes de classe? Ici, dans ce cas, je veux des données binaires en cinq dimensions déduites d'une étiquette de classe binaire. Un échantillon de données [1 1 0 1 0] et la classe est 0.Naive Bayes Implémentation et déduction des données des étiquettes de classes

Répondre

2

Comme vous avez un ensemble de données binaires, voici une belle mise en œuvre en utilisant C:

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

Il est un logiciel open source que nous utilisons actuellement dans notre cours, vous pouvez réellement vérifier comment il a mis en œuvre l'algorithme .

Et à propos de la question que vous avez posée, voici ma compréhension. Ce que le classificateur naïf de bayes (NBC) fait est de prédire P (C | X) donné quelques données et étiquette.

Selon le théorème de Bayes,

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

ce qui signifie que tout ce que vous pouvez faire avec prédire la classe de données inconnues. Inversement, ce que vous voulez faire est P (X | C). Par conséquent, vous pouvez former votre modèle comme celui-ci,

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

Par conséquent, vous devez assumer la distribution de vos données ... et des trucs comme ça, par conséquent, il pourrait être si précis, si vous avez une hypothèse erronée avec votre Les données. En vous cas, vous avez des attributs binaires X qui voulaient être estimée à partir de la classe d'étiquettes, si vous assumez les attributs sont indépendants, ce que vous devez est comme ça,

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) 

qui est pas si facile à résoudre. ....

Questions connexes