文本分類模型比較與選擇
經常在面試過程中被問到:「你是否嘗試了其他方法」或者「你還了解其他的方法嗎?」,在遇到這種問題時,一個我認為是初級者的回答是「我還使用了某某某方法」。我本身對研究各種分類方法沒有特別大的興趣,所以往往會回答「我沒用過其他方法,效果恐怕也一般。」但是這樣的回答雖然是實踐總結出來的事實,但往往會使你丟失掉一次機會,或者會讓面試你的人覺得你沒什麼水平。被迫或者說也是用證據來證明在演算法上改進來提升分類的效果不太可行,因此特意搜集並整理了這篇文章。
模型選擇經驗
在《信息檢索導論》這本書中有下邊的幾條分類演算法選擇原則,當然這裡也有我自己實踐的心得。
- 一個普遍的事實是,採用領域相關的文本特徵在效果上會比採用新的機器學習方法獲得更大的提升。
- Jackson和Moulinier(2002年)指出:「對數據的理解是分類成功的關鍵之一」。
- 當面對一個具體的分類需求時,第一個要問的問題是:訓練數據(已準確標註的數據)有多少?如果有足夠的時間用於系統實現的話,那麼大部分時間可能要花在數據的準備上。
- 在沒有標註數據的情況下,一般首先採用編製規則的方法分類數據。一個基本合理的時間長度是每個類別需要標註兩天時間。
- 在已標註數據較少的情況下,一般採用高偏差低方差的分類器比如樸素貝葉斯分類器,這樣可以有效避免過擬合。當然,無論採用何種模型,模型的質量始終會因訓練數據有限而受到不利影響。
- 快速標註數據的方法有bootstraping方法。將分類器有所猶豫的文本交給人工進行標註。
- 快速進行錯誤糾正的方法是在分類器之上,再建立一個基於布爾規則的分類器(人工干預)
- 如果具有極大規模的數據,那麼分類器的選擇也許對最後的效果沒有什麼影響。在這種情況下,一般可以從訓練模型擴展性和運行效率這兩方面來選擇分類演算法。
- 一個通用的經驗法則是,訓練數據規模每增加一倍,那麼分類器的效果將得到線性提高。
- 對於類別數目很多的分類問題,應當採用多類別分類器比如樸素貝葉斯,或者對類目體系分層以達到性能和效果的提升。
- 從特徵選擇上下功夫,比如抽取短語特徵。比如將實體特徵(ISBN號,化學式等)按照類別統一編號。