原文地址:http://blog.sina.com.cn/s/blog_7ad48fee0102vb9c.htmlhtml
摘要算法
JMLR雜誌上最近有一篇論文,做者比較了179種不一樣的分類學習方法(分類學習算法)在121個數據集上的性能,發現Random Forest(隨機森林)和SVM(支持向量機)分類準確率最高,在大多數狀況下超過其餘方法。本文針對「大數據分析到底須要多少種工具?」這一問題展開討論,總結機器學習領域多年來積累的經驗規律,繼而導出大數據分析應該採起的策略。dom
1.分類方法大比武機器學習
大數據分析主要依靠機器學習和大規模計算。機器學習包括監督學習、非監督學習、強化學習等,而監督學習又包括分類學習、迴歸學習、排序學習、匹配學習等(見圖1)。分類是最多見的機器學習應用問題,好比垃圾郵件過濾、人臉檢測、用戶畫像、文本情感分析、網頁歸類等,本質上都是分類問題。分類學習也是機器學習領域,研究最完全、使用最普遍的一個分支。工具
圖1 機器學習分類體系性能
最近、Fernández-Delgado等人在JMLR(Journal of Machine Learning Research,機器學習頂級期刊)雜誌發表了一篇有趣的論文。他們讓179種不一樣的分類學習方法(分類學習算法)在UCI 121個數據集上進行了「大比武」(UCI是機器學習公用數據集,每一個數據集的規模都不大)。結果發現Random Forest(隨機森林)和SVM(支持向量機)名列第1、第二名,但二者差別不大。在84.3%的數據上、Random Forest壓倒了其它90%的方法。也就是說,在大多數狀況下,只用Random Forest 或 SVM事情就搞定了。學習
2.幾點經驗總結大數據
大數據分析到底須要多少種機器學習的方法呢?圍繞着這個問題,咱們看一下機器學習領域多年得出的一些經驗規律。ui
l 大數據分析性能的好壞,也就是說機器學習預測的準確率,與使用的學習算法、問題的性質、數據集的特性包括數據規模、數據特徵等都有關係。url
l 通常地,Ensemble方法包括Random Forest和AdaBoost、SVM、Logistic Regression 分類準確率最高。
l 沒有一種方法能夠「包打天下」。Random Forest、SVM等方法通常性能最好,但不是在什麼條件下性能都最好。
l 不一樣的方法,當數據規模小的時候,性能每每有較大差別,但當數據規模增大時,性能都會逐漸提高且差別逐漸減少。也就是說,在大數據條件下,什麼方法都能work的不錯。參見圖2中Blaco & Brill的實驗結果。
l 對於簡單問題,Random Forest、SVM等方法基本可行,可是對於複雜問題,好比語音識別、圖像識別,最近流行的深度學習方法每每效果更好。深度學習本質是複雜模型學習,是從此研究的重點。
l 在實際應用中,要提升分類的準確率,選擇特徵比選擇算法更重要。好的特徵會帶來更好的分類結果,而好的特徵的提取須要對問題的深刻理解。
圖2 不一樣機器學習方法在數據集增大時的學習曲線。
3.應採起的大數據分析策略
創建大數據分析平臺時,選擇實現若干種有表明性的方法便可。固然,不只要考慮預測的準確率,還有考慮學習效率、開發成本、模型可讀性等其餘因素。大數據分析平臺當然重要,同時須要有一批可以深刻理解應用問題,自如使用分析工具的工程師和分析人員。
只有善工利器,大數據分析才能真正發揮威力。
參考文獻
[1] Manuel Fernández-Delgado, Eva Cernadas, Senén Barro, Dinani Amorim; Do we Need Hundreds of Classifiers to Solve Real World Classification Problems? Journal of Machine Learning Research 15(Oct):3133−3181, 2014.
[2] Banko, Michele, and Eric Brill. "Scaling to very very large corpora for natural language disambiguation." Proceedings of the 39th Annual Meeting on Association for Computational Linguistics. Association for Computational Linguistics, 2001.