我有一個二進制分類問題,我需要在MATLAB中完成。有兩個類,訓練數據和測試數據問題來自兩個類,它們是從高斯分佈繪製的2d座標。在MATLAB中實現樸素貝葉斯算法 - 需要一些指導
的樣品是2D點,他們是像這些(1000個樣本爲A類和1000個樣本爲B類): 我只是張貼一些這裏:
5.867766 3.843014 5.019520 2.874257 1.787476 4.483156 4.494783 3.551501 1.212243 5.949315 2.216728 4.126151 2.864502 3.139245 1.532942 6.669650 6.569531 5.032038 2.552391 5.753817 2.610070 4.251235 1.943493 4.326230 1.617939 4.948345
如果有新的測試數據進入,我應該如何對測試樣本進行分類? P(Class/TestPoint)與P(TestPoint/Class)*(ProbabilityOfClass)成正比。
我不確定我們如何計算給定2D座標的P(Sample/Class)變量。現在,我使用公式
P(座標/類)=(座標 - 該類的平均值)/該類中點的標準差)。
但是,我沒有得到很好的測試結果與此。我做錯了什麼?
這些訓練樣本是如何: http://tinypic.com/r/nplvo0/5 大約有2000訓練樣本(1000從每個類)。我從每個類中選擇了100個隨機樣本,用它訓練了樸素貝葉斯分類器,並試圖預測剩下的類標籤。 這是我得到的結果。 http://tinypic.com/view.php?pic=2j1n7f9&s=5 很明顯,我錯了。我會嘗試使用Oli發佈的公式並在此處發佈結果。 – user1067334
http://tinypic.com/r/684lt4/5 這是我看到的公式中的分類。非常感謝:)我不知道我錯過了什麼,我可以應用高斯分佈的pdf來獲得屬於某個類的點的概率。 – user1067334
錯誤分類大大降低。再次感謝你。 – user1067334