http://blog.csdn.net/pb09013037/article/details/41446575
如何針對某個分類問題決定使用何種機器學習算法中跌? 當然,如果你真心在乎準確率埂伦,最好的途徑就是測試一大堆各式各樣的算法(同時確保在每個算法上也測試不同的參數(shù)),最后選擇在交叉驗證中表現(xiàn)最好的思恐。倘若你只是想針對你的問題尋找一個“足夠好”的算法沾谜,或者一個起步點,這里給出了一些我覺得這些年用著還不錯的常規(guī)指南壁袄。
訓練集有多大类早?
如果是小訓練集,高偏差/低方差的分類器(比如樸素貝葉斯)要比低偏差/高方差的分類器(比如k最近鄰)具有優(yōu)勢嗜逻,因為后者容易過擬合涩僻。然而隨著訓練集的增大,低偏差/高方差的分類器將開始具有優(yōu)勢(它們擁有更低的漸近誤差)栈顷,因為高偏差分類器對于提供準確模型不那么給力逆日。
你也可以把這一點看作生成模型和判別模型的差別。
一些常用算法的優(yōu)缺點
樸素貝葉斯: 巨尼瑪簡單萄凤,你只要做些算術就好了室抽。倘若條件獨立性假設確實滿足,樸素貝葉斯分類器將會比判別模型靡努,譬如邏輯回歸收斂得更快坪圾,因此你只需要更少的訓練數(shù)據。就算該假設不成立惑朦,樸素貝葉斯分類器在實踐中仍然有著不俗的表現(xiàn)兽泄。如果你需要的是快速簡單并且表現(xiàn)出色,這將是個不錯的選擇漾月。其主要缺點是它學習不了特征間的交互關系(比方說病梢,它學習不了你雖然喜歡甄子丹和姜文的電影,卻討厭他們共同出演的電影《關云長》的情況)梁肿。
邏輯回歸: 有很多正則化模型的方法蜓陌,而且你不必像在用樸素貝葉斯那樣擔心你的特征是否相關。與決策樹與支持向量機相比吩蔑,你還會得到一個不錯的概率解釋钮热,你甚至可以輕松地利用新數(shù)據來更新模型(使用在線梯度下降算法)。如果你需要一個概率架構(比如簡單地調節(jié)分類閾值烛芬,指明不確定性隧期,或者是要得得置信區(qū)間)痴奏,或者你 以后 想將更多的訓練數(shù)據 快速 整合到模型中去,使用它吧厌秒。
決策樹: 易于解釋說明(對于某些人來說 —— 我不確定我是否在這其中)。它可以毫無壓力地處理特征間的交互關系并且是非參數(shù)化的擅憔,因此你不必擔心異常值或者數(shù)據是否線性可分(舉個例子鸵闪,決策樹能輕松處理好類別A在某個 特征維度x的末端 ,類別B在中間暑诸,然后類別A又出現(xiàn)在特征維度x前端的情況 )蚌讼。它的一個缺點就是不支持在線學習,于是在新樣本到來后个榕,決策樹需要全部重建篡石。另一個缺點是容易過擬合,但這也就是諸如隨機森林(或提升樹)之類的集成方法的切入點西采。另外凰萨,隨機森林經常是很多分類問題的贏家(通常比支持向量機好上那么一點,我認為)械馆,它快速并且可調胖眷,同時你無須擔心要像支持向量機那樣調一大堆參數(shù),所以最近它貌似相當受歡迎霹崎。
支持向量機: 高準確率珊搀,為避免過擬合提供了很好的理論保證,而且就算數(shù)據在原特征空間線性不可分尾菇,只要給個合適的核函數(shù)境析,它就能運行得很好。在動輒超高維的文本分類問題中特別受歡迎派诬±拖可惜內存消耗大,難以解釋千埃,運行和調參也有些煩人憔儿,所以我認為隨機森林要開始取而代之了。
然而放可。谒臼。。
盡管如此耀里,回想一下蜈缤,好的數(shù)據卻要優(yōu)于好的算法,設計優(yōu)良特征是大有裨益的冯挎。假如你有一個超大數(shù)據集底哥,那么無論你使用哪種算法可能對分類性能都沒太大影響(此時就根據速度和易用性來進行抉擇)。
再重申一次我上面說過的話,倘若你真心在乎準確率趾徽,你一定得嘗試多種多樣的分類器续滋,并且通過交叉驗證選擇最優(yōu)。要么就從Netflix Prize(和Middle Earth)取點經孵奶,用集成方法把它們合而用之疲酌,妥妥的。