2012-06-04 99 views
0

我在找寫在C/C++爲使用OpenCV的一個多項樸素貝葉斯分類多項樸素貝葉斯爲OpenCV的

我在尋找算法(或現成的實現),因爲它會更有幫助,因爲我試圖瞭解它是如何工作的?

+0

Google對此有何看法? – karlphillip

+0

有些東西[在這裏](http://www.emgu.com/wiki/index.php/Normal_Bayes_Classifier_in_CSharp),但我不確定它是否與您正在尋找的算法相同。 – karlphillip

回答

1

樸素貝葉斯分類器是一種衆所周知的分類算法。特別是在文本分類領域,所以我會拿它來解釋。

假設我們每個文件可以用文字{w1,w2,w3, ... , wn} 的集合來表示每個文件屬於某個預定義的類的一些培訓文檔{d1 , d2 , d3 , ... , dm}(以二進制的情況(c_0,c_1)這裏) 我們的任務是一些新的輸入分類將文件d分成c_0c_1類。

一個直觀的方法是採取最大似然估計: 就是

output c_0 if P(d | c_0) > P(d | c_1) and vice versa. 

所以我們d的定義中,我們可以通過

P(d | c_0) = P({w1,w2,w3...,wn} | c_0) 

寫的標準,因爲計算這個聯合給定類的概率是如此複雜。所以我們做出一個強有力的假設,即語言在課堂上是相互獨立的。 這樣導致我們

P(d | c_0) = P({w1,w2,w3...,wn} | c_0) = P(w1|c_0)*P(w2|c_0)*P(w2|c_0)...*P(wn|c_0) 

每個P(w | c)可以很容易地計算詞的頻率計數w的C類。

這個強有力的假設是名爲「天真」的原因,因爲我們只是天真地爲每個單詞進行系列乘法。

終於採取answer = argmax P(d | c_0) , P(d | c_1)將結束該算法

我在您的域名猜你在找什麼類似於文本分類,除非你需要提取的特徵是不同的。