越來越多的應用涉及到大數(shù)據(jù),不幸的是所有大數(shù)據(jù)的屬性,包括數(shù)量、速度、多樣性等等都是描述了數(shù)據(jù)庫不斷增長的復雜性。那么大數(shù)據(jù)給我們帶來了什么好處呢?大數(shù)據(jù)最大的好處在于能夠讓我們從這些數(shù)據(jù)中分析出很多智能的、深入的、有價值的信息。
最近比較了179種不同的分類學習方法(分類學習算法)在121個數(shù)據(jù)集上的性能,發(fā)現(xiàn)Random Forest(隨機森林)和SVM(支持向量機)分類準確率最高,在大多數(shù)情況下超過其他方法。本文針對“大數(shù)據(jù)分析到底需要多少種工具?”
分類方法大比武
大數(shù)據(jù)分析主要依靠機器學習和大規(guī)模計算。機器學習包括監(jiān)督學習、非監(jiān)督學習、強化學習等,而監(jiān)督學習又包括分類學習、回歸學習、排序學習、匹配學習等(見圖1)。分類是最常見的機器學習應用問題,比如垃圾郵件過濾、人臉檢測、用戶畫像、文本情感分析、網(wǎng)頁歸類等,本質(zhì)上都是分類問題。分類學習也是機器學習領域,研究最徹底、使用最廣泛的一個分支。
圖1機器學習分類體系
最近、Fernández-Delgado等人在JMLR(Journal of Machine Learning Research,機器學習頂級期刊)雜志發(fā)表了一篇有趣的論文。他們讓179種不同的分類學習方法(分類學習算法)在UCI 121個數(shù)據(jù)集上進行了“大比武”(UCI是機器學習公用數(shù)據(jù)集,每個數(shù)據(jù)集的規(guī)模都不大)。結果發(fā)現(xiàn)Random Forest(隨機森林)和SVM(支持向量機)名列第一、第二名,但兩者差異不大。在84.3%的數(shù)據(jù)上、Random Forest壓倒了其它90%的方法。也就是說,在大多數(shù)情況下,只用Random Forest 或 SVM事情就搞定了。
幾點經(jīng)驗總結
大數(shù)據(jù)分析到底需要多少種機器學習的方法呢?圍繞著這個問題,我們看一下機器學習領域多年得出的一些經(jīng)驗規(guī)律。
大數(shù)據(jù)分析性能的好壞,也就是說機器學習預測的準確率,與使用的學習算法、問題的性質(zhì)、數(shù)據(jù)集的特性包括數(shù)據(jù)規(guī)模、數(shù)據(jù)特征等都有關系。
一般地,Ensemble方法包括Random Forest和AdaBoost、SVM、LogisTIc Regression 分類準確率最高。
沒有一種方法可以“包打天下”。Random Forest、SVM等方法一般性能最好,但不是在什么條件下性能都最好。
不同的方法,當數(shù)據(jù)規(guī)模小的時候,性能往往有較大差異,但當數(shù)據(jù)規(guī)模增大時,性能都會逐漸提升且差異逐漸減小。也就是說,在大數(shù)據(jù)條件下,什么方法都能work的不錯。參見圖2中Blaco & Brill的實驗結果。
對于簡單問題,Random Forest、SVM等方法基本可行,但是對于復雜問題,比如語音識別、圖像識別,最近流行的深度學習方法往往效果更好。深度學習本質(zhì)是復雜模型學習,是今后研究的重點。
在實際應用中,要提高分類的準確率,選擇特征比選擇算法更重要。好的特征會帶來更好的分類結果,而好的特征的提取需要對問題的深入理解。
應采取的大數(shù)據(jù)分析策略
建立大數(shù)據(jù)分析平臺時,選擇實現(xiàn)若干種有代表性的方法即可。當然,不僅要考慮預測的準確率,還有考慮學習效率、開發(fā)成本、模型可讀性等其他因素。大數(shù)據(jù)分析平臺固然重要,同時需要有一批能夠深入理解應用問題,自如使用分析工具的工程師和分析人員。
只有善工利器,大數(shù)據(jù)分析才能真正發(fā)揮威力。
在工具學習上,入門工具推薦兩類:SQL(Structured Query Language)、Microsoft Office Excel,進階工具推薦:SPSS ClemenTIne/Python。
1、SQL
SQL是數(shù)據(jù)提取工具,大中型企業(yè)都會建立自己的數(shù)據(jù)庫系統(tǒng),常用數(shù)據(jù)會建立數(shù)據(jù)報表系統(tǒng)(常說的BI系統(tǒng),即business intelligence),供業(yè)務人員使用。但深入業(yè)務分析需要更多的底層數(shù)據(jù),報表系統(tǒng)里沒有呈現(xiàn)的數(shù)據(jù),這時就需要使用SQL工具提取數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)。
SQL工具很多,有oracle、mysql、sqlserver、hive等,除了細微差異,大多數(shù)SQL語句都通用。
SQL工具學習很容易,真正需要下功夫的是對數(shù)據(jù)庫表結構的了解。從常用數(shù)據(jù)表了解,摸清數(shù)據(jù)指標及含義,建立起表結構間關系,完成日常工作數(shù)據(jù)提取工作為要。有精力的童鞋可以再去探索非常用數(shù)據(jù)表。
2、Microsoft Office Excel
Excel應該是所有數(shù)據(jù)分析師的入門工具。除了一些常用功能使用外,就是使用數(shù)據(jù)透視表和多學習內(nèi)嵌函數(shù),能省去不少工作量。除了數(shù)據(jù)量級處理有限外,Excel功能強大不能僅僅用強大來形容。高階Excel學習,可以繼續(xù)了解宏使用。
3、SPSS ClemenTIne/Python
在數(shù)據(jù)分析進階路上,還有一類工具是:數(shù)據(jù)建模工具,如SPSS ClemenTIne、R、Python等。大數(shù)據(jù)時代,數(shù)據(jù)維度過于豐富,數(shù)據(jù)量級過于龐大,對于未知數(shù)據(jù)探索,手動計算發(fā)現(xiàn)數(shù)據(jù)關系的工作量已經(jīng)過于繁重,交給這些數(shù)據(jù)模型工具就簡單多了。其內(nèi)嵌了大量精細的數(shù)據(jù)算法,我們需要做的就是掌握統(tǒng)計理論,掌握算法原理,輸入規(guī)范的數(shù)據(jù),等待模型的結果。當然,對模型的掌握,結論的解讀,業(yè)務的理解,都是使用建模工具必須要學習的
下面我總結了分析大數(shù)據(jù)的5個方面。
1. Analytic Visualizations(可視化分析)
不管是對數(shù)據(jù)分析專家還是普通用戶,數(shù)據(jù)可視化是數(shù)據(jù)分析工具最基本的要求。可視化可以直觀的展示數(shù)據(jù),讓數(shù)據(jù)自己說話,讓觀眾聽到結果。
2. Data Mining Algorithms(數(shù)據(jù)挖掘算法)
可視化是給人看的,數(shù)據(jù)挖掘就是給機器看的。集群、分割、孤立點分析還有其他的算法讓我們深入數(shù)據(jù)內(nèi)部,挖掘價值。這些算法不僅要處理大數(shù)據(jù)的量,也要處理大數(shù)據(jù)的速度。
3. Predictive Analytic Capabilities(預測性分析能力)
數(shù)據(jù)挖掘可以讓分析員更好的理解數(shù)據(jù),而預測性分析可以讓分析員根據(jù)可視化分析和數(shù)據(jù)挖掘的結果做出一些預測性的判斷。
4. Semantic Engines(語義引擎)
我們知道由于非結構化數(shù)據(jù)的多樣性帶來了數(shù)據(jù)分析的新的挑戰(zhàn),我們需要一系列的工具去解析、提取、分析數(shù)據(jù)。語義引擎需要被設計成能夠從“文檔”中智能提取信息。
5. Data Quality and Master Data Management(數(shù)據(jù)質(zhì)量和數(shù)據(jù)管理)
數(shù)據(jù)質(zhì)量和數(shù)據(jù)管理是一些管理方面的最佳實踐。通過標準化的流程和工具對數(shù)據(jù)進行處理可以保證一個預先定義好的高質(zhì)量的分析結果。
假如大數(shù)據(jù)真的是下一個重要的技術革新的話,我們最好關注大數(shù)據(jù)能給我們帶來的好處,而不僅僅是挑戰(zhàn)。