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