大數據研究常用軟體工具與研究方法
大數據研究常用軟體工具與應用場景
如今,大數據日益成為研究行業的重要研究目標。面對其高數據量、多維度與異構化的特點,以及分析方法思路的擴展,傳統統計工具已經難以應對。工欲善其事,必先利其器。眾多新的軟體分析工具作為深入大數據洞察研究的重要助力,也成為數據科學家所必須掌握的知識技能。然而,現實情況的複雜性決定了並不存在解決一切問題的終極工具。實際研究過程中,需要根據實際情況靈活選擇最合適的工具(甚至多種工具組合使用),才能更好的完成研究探索。
然而,現實情況的複雜性決定了並不存在解決一切問題的終極工具。實際研究過程中,需要根據實際情況靈活選擇最合適的工具(甚至多種工具組合使用),才能更好的完成研究探索。
為此,本文針對研究人員(非技術人員)的實際情況,介紹當前大數據研究涉及的一些主要工具軟體(因為相關軟體眾多,只介紹常用的),並進一步闡述其應用特點和適合的場景,以便於研究人員能有的放矢的學習和使用。
【基礎篇】
? 傳統分析/商業統計
Excel、SPSS、SAS 這三者對於研究人員而言並不陌生。
◆ Excel 作為電子表格軟體,適合簡單統計(分組/求和等)需求,由於其方便好用,功能也能滿足很多場景需要,所以實際成為研究人員最常用的軟體工具。其缺點在於功能單一,且可處理數據規模小(這一點讓很多研究人員尤為頭疼)。這兩年Excel在大數據方面(如地理可視化和網路關係分析)上也作出了一些增強,但應用能力有限。
SPSS(SPSS Statistics)和SAS作為商業統計軟體,提供研究常用的經典統計分析(如回歸、方差、因子、多變數分析等)處理。
◆ SPSS 輕量、易於使用,但功能相對較少,適合常規基本統計分析
◆ SAS 功能豐富而強大(包括繪圖能力),且支持編程擴展其分析能力,適合複雜與高要求的統計性分析。
上述三個軟體在面對大數據環境出現了各種不適,具體不再贅述。但這並不代表其沒有使用價值。如果使用傳統研究方法論分析大數據時,海量原始數據資源經過前期處理(如降維和統計匯總等)得到的中間研究結果,就很適合使用它們進行進一步研究。
? 數據挖掘
數據挖掘作為大數據應用的重要領域,在傳統統計分析基礎上,更強調提供機器學習的方法,關注高維空間下複雜數據關聯關係和推演能力。代表是SPSS Modeler(注意不是SPSS Statistics,其前身為Clementine)
SPSS Modeler 的統計功能相對有限, 主要是提供面向商業挖掘的機器學習演算法(決策樹、神經元網路、分類、聚類和預測等)的實現。同時,其數據預處理和結果輔助分析方面也相當方便,這一點尤其適合商業環境下的快速挖掘。不過就處理能力而言,實際感覺難以應對億級以上的數據規模。
另一個商業軟體 Matlab 也能提供大量數據挖掘的演算法,但其特性更關注科學與工程計算領域。而著名的開源數據挖掘軟體Weka,功能較少,且數據預處理和結果分析也比較麻煩,更適合學術界或有數據預處理能力的使用者。
【中級篇】
? 通用大數據可視化分析
近兩年來出現了許多面向大數據、具備可視化能力的分析工具,在商業研究領域,TableAU無疑是卓越代表。
TableAU 的優勢主要在於支持多種大數據源/格式,眾多的可視化圖表類型,加上拖拽式的使用方式,上手快,非常適合研究員使用,能夠涵蓋大部分分析研究的場景。不過要注意,其並不能提供經典統計和機器學習演算法支持,因此其可以替代Excel, 但不能代替統計和數據挖掘軟體。另外,就實際處理速度而言,感覺面對較大數據(實例超過3000萬記錄)時,並沒有官方介紹的那麼迅速。
? 關係分析
關係分析是大數據環境下的一個新的分析熱點(比如信息傳播圖、社交關係網等),其本質計算的是點之間的關聯關係。相關工具中,適合數據研究人員的是一些可視化的輕量桌面型工具,最常用的是Gephi。
Gephi 是免費軟體,擅長解決圖網路分析的很多需求,其插件眾多,功能強且易用。我們經常看到的各種社交關係/傳播譜圖, 很多都是基於其力導向圖(Force directed graph)功能生成。但由於其由java編寫,限制了處理性能(感覺處理超過10萬節點/邊時常陷入假死),如分析百萬級節點(如微博熱點傳播路徑)關係時,需先做平滑和剪枝處理。而要處理更大規模(如億級以上)的關係網路(如社交網路關係)數據,則需要專門的圖關係資料庫(如GraphLab/GraphX)來支撐了,其技術要求較高,此處不再介紹。
? 時空數據分析
當前很多軟體(包括TableAU)都提供了時空數據的可視化分析功能。但就使用感受來看,其大都只適合較小規模(萬級)的可視化展示分析,很少支持不同粒度的快速聚合探索。
如果要分析千萬級以上的時空數據,比如新浪微博上億用戶發文的時間與地理分布(從省到街道多級粒度的探索)時,推薦使用NanoCubes(http://www.nanocubes.net/)。該開源軟體可在日常的辦公電腦上提供對億級時空數據的快速展示和多級實時鑽取探索分析。下圖是對芝加哥犯罪時間地點的分析,網站有更多的實時分析的演示例子
? 文本/非結構化分析
基於自然語言處理(NLP)的文本分析,在非結構化內容(如互聯網/社交媒體/電商評論)大數據的分析方面(甚至調研開放題結果分析)有重要用途。其應用處理涉及分詞、特徵抽取、情感分析、多主題模型等眾多內容。
由於實現難度與領域差異,當前市面上只有一些開源函數包或者雲API(如BosonNLP)提供一些基礎處理功能,尚未看到適合商業研究分析中文文本的集成化工具軟體(如果有誰知道煩請通知我)。在這種情況下,各商業公司(如HCR)主要依靠內部技術實力自主研發適合業務所需的分析功能。
【高級篇】
前面介紹的各種大數據分析工具,可應對的數據都在億級以下,也以結構化數據為主。當實際面臨以下要求:億級以上/半實時性處理/非標準化複雜需求,通常就需要藉助編程(甚至藉助於Hadoop/Spark等分散式計算框架)來完成相關的分析。如果能掌握相關的編程語言能力,那研究員的分析能力將如虎添翼。
當前適合大數據處理的編程語言,包括:
◆ R語言——最適合統計研究背景的人員學習,具有豐富的統計分析功能庫以及可視化繪圖函數可以直接調用。通過Hadoop-R更可支持處理百億級別的數據。相比SAS,其計算能力更強,可解決更複雜更大數據規模的問題。
◆ Python語言——最大的優勢是在文本處理以及大數據量處理場景,且易於開發。在相關分析領域,Python代替R的勢頭越來越明顯。
◆ Java語言——通用性編程語言,能力最全面,擁有最多的開源大數據處理資源(統計、機器學習、NLP等等)直接使用。也得到所有分散式計算框架(Hadoop/Spark)的支持。
前面的內容介紹了面向大數據研究的不同工具軟體/語言的特點和適用場景。這些工具能夠極大增強研究員在大數據環境下的分析能力,但更重要的是研究員要發揮自身對業務的深入理解,從數據結果中洞察發現有深度的結果,這才是最有價值的。
TAG:顧建文教授醫學科普 |