使用的就是mitchell的那本ML中關于naive bayesian classifier講解用到的
數據。20個郵件組的郵件,共約20000條記錄。
主要是實踐了下naive bayesian classifier。做了兩個集合的實驗,包括全集和書中實踐的小集合(3個特定的郵件組集合)。
全集上最后的準確率可以達到83.7%。而使用小集合對比書中的(89%-90.5%),可以達到91.3%的準確率。
其中有一些需要注意的:
1. 對低頻概率的光滑操作很重要。主要用于計算P(w|g)時在w頻次很低的情況下。
如果沒有光滑,答案整個就被誤差毀了,直接準確率掉到20%以下。
如果使用P(w|g)=(C(g,w)+1)/(C(g,all_w)+C(words_in_g))可以保證結果達到預期水平
如果使用P(w|g)=(C(g,w)+1)/(C(g,all_w)+C(words))結果還更好些。這似乎和預期不是很符合。
2. 對stopword的選取。
使用idf作為選擇標準(不取log)。剛開始選定的覆蓋文章范圍在0.6才去除。后來發(fā)現一直到1/12都能保證單調遞增。效果不錯。
3. 既然bayesian是逆概,還嘗試了正向概率計算求答案,也是使之相互獨立。準確率在75%左右。懷疑是模型本身并不是reasonable的。(就是比naive bayesian還不靠譜)
從誤分類的數據來看,有些確實是無法很好分類。同時后續(xù)改進還有這么一些方法:
1. 低頻詞的影響。
2. 調整模型,使之更好去識別。這在看論文。看看是否可行。
同時今天還看了一篇介紹bayesian的一些應用之處的
文章。講的很廣泛,把很多知識都串一起了。很好!