作為一直想入門數(shù)據(jù)分析的童鞋們來說,如何選定一門面向數(shù)據(jù)分析的編程語言或工具呢?注意是數(shù)據(jù)分析,而不是大數(shù)據(jù)哦,數(shù)據(jù)分析是基礎了。
數(shù)據(jù)分析的工具千萬種,綜合起來萬變不離其宗。無非是數(shù)據(jù)獲取、數(shù)據(jù)存儲、數(shù)據(jù)管理、數(shù)據(jù)計算、數(shù)據(jù)分析、數(shù)據(jù)展示等幾個方面。而被提到頻率最高的如Excel、R、Python、SPSS、SAS、SQL等。那么,這些工具本身到底有什么特點呢,應該如何合理的使用來解決數(shù)據(jù)分析的各種問題?
最簡單的是EXCEL,它不僅是簡單的而且是必備的。正所謂初級學圖表,中級學函數(shù)透視表,高級學習VBA。EXCEL功能的強大只有那些正真學過它的人才能知道,我們反對任何關于EXCEL復雜,不實用的說法。在學完VBA之后,EXCEL幾乎能解決你在日常工作中遇到的所有問題。EXCEL是你成為數(shù)據(jù)分析師的必備條件。
對于一個初級的數(shù)據(jù)分析師來說,剛開始如果能精通SQL與Excel再會點SPSS之類的就差不多了。SPSS對用戶的要求是只要會點擊菜單就可以了,有編程窗口但是一般沒人用,用戶多是受到過一些統(tǒng)計訓練的,但不需要高深的分析能力,市場調研用的比較多,統(tǒng)計專業(yè)的學生一般要求掌握。
再往后,你可能就需要精通一門統(tǒng)計分析軟件了,一般說來如果是互聯(lián)網行業(yè)可能R語言是最為流行,因為R語言是開源的,不過上手還是需要長期的學習;SPSS界面友好型,不過一般是市場研究用的比較多,如果你會用SPSS編程,其實功能還是比較強大的,建議如果想先練手可以學這個,上手快;SAS一般是金融企業(yè)特別是銀行業(yè)和醫(yī)學統(tǒng)計,銀行業(yè)人員有一些是用SAS做統(tǒng)計,一般是銀行業(yè)內部人做的,另一種是給銀行業(yè)做數(shù)據(jù)挖掘的公司,不過正版一年也要上百萬,不是土豪也用不起,而且SAS學習沒人指導很難學;所以看童鞋們的選擇,想在傳統(tǒng)或者咨詢公司做的SPSS比較合適,想去金融特別是銀行業(yè)SAS不錯,想進互聯(lián)網公司學R語言可能是比較明智。
再就是Python。Python在這些工具里面是綜合功能最強大的,但是這些功能分散在第三方庫里面,沒有得到有機的整合,所以學習成本還是比較高的。Python與R不同,Python是一門多功能的語言。數(shù)據(jù)統(tǒng)計是更多是通過第三方包來實現(xiàn)的。具體來說,常用的Python在統(tǒng)計上面的Package有這樣一些:
1、Numpy與Scipy。這兩個包是Python之所以能在數(shù)據(jù)分析占有一席之地的重要原因。其中Numpy封裝了基礎的矩陣和向量的操作,而Scipy則在Numpy的基礎上提供了更豐富的功能,比如各種統(tǒng)計常用的分布和算法都能迅速的在Scipy中找到。
2、Matplotlib。這個Package主要是用來提供數(shù)據(jù)可視化的,其功能強大,生成的圖標可以達到印刷品質,在各種學術會議里面出鏡率不低。依托于Python,可定制性相對于其他的圖形庫更高。還有一個優(yōu)點是提供互動化的數(shù)據(jù)分析,可以動態(tài)的縮放圖表,用做Adhoc
analysis非常合適。
3、Scikit Learn。非常好用的MachineLearning庫,適合于用于快速定制原型。封裝幾乎所有的經典算法,易用性極高。
4、Python標準庫。這里主要是體現(xiàn)了Python處理字符串的優(yōu)勢,由于Python多功能的屬性和對于正則表達式的良好支持,用于處理文本是再合適不過的了。
Python是一套比較平衡的語言,各方面都可以,而R是在統(tǒng)計方面比較突出。R的優(yōu)勢在于有包羅萬象的統(tǒng)計函數(shù)可以調用,特別是在時間序列分析方面(主要用在金融分析與趨勢預測)無論是經典還是前沿的方法都有相應的包直接使用;相比Python在這方面貧乏不少。Python的優(yōu)勢在于其膠水語言的特性,一些底層用C寫的算法封裝在Python包里后性能非常高效。
總之R和SAS是專業(yè)性比較強的統(tǒng)計軟件,統(tǒng)計專業(yè)學生必備,SPSS是更大眾化的統(tǒng)計軟件,Python不是統(tǒng)計軟件,而是一種可以用來做各種事情的語言。R和Python現(xiàn)在越來越受到各大公司的喜歡,也必定會成為將來的發(fā)展趨勢。Python的功能可遠遠不止用來分析數(shù)據(jù),它可以用來開發(fā),建站,寫個小APP什么的。我們所知道的果殼網,知乎,DROPBOX等可都是用Python寫得哦。如果你能同時學會Python和R,在數(shù)據(jù)科學領域肯定就游刃有余了。
名稱
特點
適用場景
出現(xiàn)頻數(shù)
1
Excel
一般非大量數(shù)據(jù)分析的人員可以滿足大部分需求
財務、金融、產品經理等一般數(shù)據(jù)量處理需求
較高,作為普通技能
2
R語言
兼容性強,語言程序化也強,在編程語言方面需要投入的精力比Python大,但適用面較廣
最常用數(shù)據(jù)分析工具之一,兼容性強
高頻工具之一
3
Python
Life is too short,I use Python
以語言簡單,注重數(shù)據(jù)分析的高效著稱,尤其是在文本處理等數(shù)據(jù)結構化方面有很好優(yōu)勢
編程類數(shù)據(jù)分析,如文本字符等非結構化數(shù)據(jù)的處理
高頻工具之一
4
SQL
數(shù)據(jù)庫處理和分析的必備技能,屬于數(shù)據(jù)庫方面的基本工具
側重數(shù)據(jù)庫方面,如數(shù)據(jù)倉庫等,作為Oracle等數(shù)據(jù)庫方面的基礎知識不可或缺
高頻工具之一
5
SPSS
統(tǒng)計分析功能強大,側重于統(tǒng)計分析類模型
建模能力已經不局限于統(tǒng)計了,在預測、機器學習方面也有很多包
頻率一般
6
SAS
金融大數(shù)據(jù)分析
金融風控建模較多
金融投資數(shù)據(jù)建模常用工具之一
7
Matlab
矩陣計算等數(shù)學專用建模工具
強大的各種工具包,以及仿真能力
側重于數(shù)據(jù)本身的計算,院校科研用的較多
總的來說,不同工具各有擅場,最關鍵的當然還在于業(yè)務的掌握和數(shù)學方法的掌握(統(tǒng)計學和機器學習等核心方法)。但磨刀不誤砍柴工,把基本工具掌握熟練了百利無一弊。而當你要做大數(shù)據(jù)分析的時候,還會用到Hadoop等工具(實際上這些工具都是可以結合Hadoop大數(shù)據(jù)平臺聯(lián)合起來用的,后面專題介紹)。而且,工具不是萬能的,業(yè)務和數(shù)據(jù)建模方法才是萬法之源。不要被工具迷花了眼哦!