如何選擇機器學習分類器?

jopen 10年前發布 | 25K 次閱讀 機器學習

英文原文:Choosing a Machine Learning Classifier

  你知道如何為你的分類問題選擇合適的機器學習算法嗎?當然,如果你真正關心準確率,那么最佳方法是測試各種不同的算法(同時還要確保對每個算法 測試不同參數),然后通過交叉驗證選擇最好的一個。但是,如果你只是為你的問題尋找一個“足夠好”的算法,或者一個起點,這里有一些我這些年發現的還不錯 的一般準則。

  你的訓練集有多大?

  如果訓練集很小,那么高偏差/低方差分類器(如樸素貝葉斯分類器)要優于低偏差/高方差分類器(如k近鄰分類器),因為后者容易過擬合。然而,隨著訓練集的增大,低偏差/高方差分類器將開始勝出(它們具有較低的漸近誤差),因為高偏差分類器不足以提供準確的模型。

  你也可以認為這是生成模型與判別模型的區別。

  一些特定算法的優點

  樸素貝葉斯的優點:超級簡單,你只是在做一串計算。如果樸素貝葉斯(NB)條件獨立性假設成立,相比于邏輯 回歸這類的判別模型,樸素貝葉斯分類器將收斂得更快,所以你只需要較小的訓練集。而且,即使 NB 假設不成立,樸素貝葉斯分類器在實踐方面仍然表現很好。如果想得到簡單快捷的執行效果,這將是個好的選擇。它的主要缺點是,不能學習特征之間的相互作用 (比如,它不能學習出:雖然你喜歡布拉德·皮特和湯姆·克魯斯的電影,但卻不喜歡他們一起合作的電影)。

  邏輯回歸的優點:有許多正則化模型的方法,你不需要像在樸素貝葉斯分類器中那樣擔心特征間的相互關聯性。與 決策樹和支撐向量機不同,你還可以有一個很好的概率解釋,并能容易地更新模型來吸收新數據(使用一個在線梯度下降方法)。如果你想要一個概率框架(比如, 簡單地調整分類閾值,說出什么時候是不太確定的,或者獲得置信區間),或你期望未來接收更多想要快速并入模型中的訓練數據,就選擇邏輯回歸。

  決策樹的優點:易于說明和解釋(對某些人來說—我不確定自己是否屬于這個陣營)。它們可以很容易地處理特征 間的相互作用,并且是非參數化的,所以你不用擔心異常值或者數據是否線性可分(比如,決策樹可以很容易地某特征x的低端是類A,中間是類B,然后高端又是 類A的情況)。一個缺點是,不支持在線學習,所以當有新樣本時,你將不得不重建決策樹。另一個缺點是,容易過擬合,但這也正是諸如隨機森林(或提高樹)之 類的集成方法的切入點。另外,隨機森林往往是很多分類問題的贏家(我相信通常略優于支持向量機),它們快速并且可擴展,同時你不須擔心要像支持向量機那樣 調一堆參數,所以它們最近似乎相當受歡迎。

  SVMs 的優點:高準確率,為過擬合提供了好的理論保證,并且即使你的數據在基礎特征空間線性不可分,只 要選定一個恰當的核函數,它們仍然能夠取得很好的分類效果。它們在超高維空間是常態的文本分類問題中尤其受歡迎。然而,它們內存消耗大,難于解釋,運行和 調參也有些煩人,因此,我認為隨機森林正漸漸開始偷走它的“王冠”。

  然而…

  盡管如此,回憶一下,更好的數據往往打敗更好的算法,設計好的特征大有裨益。并且,如果你有一個龐大數據集,這時你使用哪種分類算法在分類性能方面可能并不要緊(所以,要基于速度和易用性選擇算法)。

  重申我上面說的,如果你真的關心準確率,一定要嘗試各種各樣的分類器,并通過交叉驗證選擇最好的一個。或者,從 Netflix Prize (和 Middle Earth)中吸取教訓,只使用了一個集成方法進行選擇。

  翻譯: 伯樂在線 - yixingqingkong

  譯文鏈接: http://blog.jobbole.com/67671/

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!