大數據分析到底需要多少種工具?
摘要
JMLR雜志上最近有一篇論文,作者比較了179種不同的分類學習方法(分類學習算法)在121個數據集上的性能,發現Random Forest(隨機森林)和SVM(支持向量機)分類準確率最高,在大多數情況下超過其他方法。本文針對“大數據分析到底需要多少種工具?”這一問題展開討論,總結機器學習領域多年來積累的經驗規律,繼而導出大數據分析應該采取的策略。
1.分類方法大比武
大數據分析主要依靠機器學習和大規模計算。機器學習包括監督學習、非監督學習、強化學習等,而監督學習又包括分類學習、回歸學習、排序學習、匹配學習等(見圖1)。分類是最常見的機器學習應用問題,比如垃圾郵件過濾、人臉檢測、用戶畫像、文本情感分析、網頁歸類等,本質上都是分類問題。分類學習也是機器學習領域,研究最徹底、使用最廣泛的一個分支。
圖1 機器學習分類體系
最近、Fernández-Delgado等人在JMLR(Journal of Machine Learning Research,機器學習頂級期刊)雜志發表了一篇有趣的論文。他們讓179種不同的分類學習方法(分類學習算法)在UCI 121個數據集上進行了“大比武”(UCI是機器學習公用數據集,每個數據集的規模都不大)。結果發現Random Forest(隨機森林)和SVM(支持向量機)名列第一、第二名,但兩者差異不大。在84.3%的數據上、Random Forest壓倒了其它90%的方法。也就是說,在大多數情況下,只用Random Forest 或 SVM事情就搞定了。
2.幾點經驗總結
大數據分析到底需要多少種機器學習的方法呢?圍繞著這個問題,我們看一下機器學習領域多年得出的一些經驗規律。
l 大數據分析性能的好壞,也就是說機器學習預測的準確率,與使用的學習算法、問題的性質、數據集的特性包括數據規模、數據特征等都有關系。
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.
來自:http://blog.sina.com.cn/s/blog_7ad48fee0102vb9c.html