如何爲實際的分類應用選擇合適的分類器?若是你很關心分類的精度,那麼最好的選擇是逐個嘗試不一樣的分類器並採用不一樣的參數,從中選擇最好的一個。若是你只是想大體瞭解一下分類結果,那麼本文接下來給出幾個挑選原則。算法
(1)你的數據集有多大?框架
若是數據集較小,high bias/low variance類型的分類器(例如naive bayes)比low bias/high variance分類器(例如kNN)更有優點,由於後者容易致使過擬合。然而隨着訓練集的增加,則low bias/high variance分類器更好,由於其漸進偏差更小,而此時high bias/low variance分類器不能提供足夠準確的分類模型。函數
(2)各分類器的特色。性能
naive bayes分類器的特色:若是nb分類器的條件獨立性假設成立,則naive bayes分類器比logistic regression等discriminative model性能更好,不須要過多的訓練集。即使是此假設不成立,naive bayes分類器的實際效果仍然很好,而且能簡單快速的得出分類結果。其主要缺點是不能學習特徵間的關係。學習
Logistic Regression分類器的特色:相比於Naive Bayes分類器,不須要考慮特徵間的關聯問題,同時能夠規範化模型。相比於決策樹或SVM分類器,LR的分類結果具備很好的機率解釋,且當訓練數據增長時,能夠利用在線梯度降低法很容易的更新模型。當你須要一個機率框架(經過調節分類器的閾值獲得置信區間)或你但願未來可以接受更多訓練數據並快速更新分類模型時,能夠使用LR分類器。翻譯
決策樹分類器的特色:很容易解釋分類結果,可以處理特徵間的關聯,非參數化,不須要考慮異常樣本或數據是否爲線性可分的,其缺點是不支持在線學習,因此當訓練集中有新樣本加入時,須要重建決策樹模型。另外,該分類器容易過擬合(這是隨機森林等組合方法共同的問題,隨機森林在不少方面比其餘分類器較好,其速度快且具備較好的可擴展性,同時不須要像SVM同樣調整大批參數)設計
SVM分類器的特色:精度較好,且對於過擬合具備理論保證。若是採用合適的核函數,則能夠支持非線性可分的數據分類。在文本分類等高維分類應用中普遍使用。然而SVM分類器是內存密集型,且訓練獲得的分類模型難以解釋,運行和調參比較麻煩。blog
然而,更好的訓練數據每每比更好的算法更重要,同時設計更好的特徵集合也對分類結果有較大的影響。若是你有大量的數據集,那麼不一樣的分類算法對於分類結果的影響不大,因此你須要選擇速度最快或最容易使用的分類算法。若是你比較關心分類的準確度,那麼你最好嘗試多種分類器並選擇效果最好的一個。內存
翻譯自http://blog.echen.me/2011/04/27/choosing-a-machine-learning-classifier/io