資料採礦技術日趨成熟和複雜,隨著互連網發展以及大批海量資料的到來,之前傳統的依靠spss、SAS等視覺化檢視實現資料採礦建模已經越來越不能滿足日常需求,依據美國對資料科學家(data scientist)的要求,想成為一名真正的資料科學家,編程實現演算法以及編程實現建模已經是必要條件;目前很多從事資料採礦工作的人,大多都是出身非電腦專業,本身對編程基礎比較低,所以找到一門快速上手而又高效的程式設計語言是至關重要的,好的工具和程式設計語言可以起到事半功倍的效果。
目前在資料採礦演算法方面用的最多的程式設計語言有:Java、C++、C、Python、R等等
由於筆者本身屬於數理統計出身,複雜而進階的語言對我來說性價比並不高,所以想從頭對Java、C++、C開始學起,浪費的時間和精力與收穫明顯不成正比。所以Python和R語言成了最佳選擇。對於同樣和我背景相似的資料從業人員,我強烈推薦從這兩者選擇其一。
原因有三:
第一:Python和R本身在資料分析和資料採礦方面都有比較專業和全面的模組,很多常用的功能,比如矩陣運算、向量運算等都有比較進階的用法,所以使用起來產出比大;
第二:這兩門語言對於平台方面適用性比較廣,linux、window都可以使用,並且代碼可移植性還算不錯的。
第三:對於學數理統計的人來說,應該大多用過MATLAB以及mintab等工具,Python和R比較貼近這些常用的數學工具,使用起來有種親切感
至於Python和R兩者如何選擇,本人有點粗淺認識:
這兩個工具都很方便,不需要非常高深的編程能力,都適合演算法開發,有大量的package供你使用。
Python入門簡單,而R則相對比較難一些(純個人感覺,依據每個人之前的經驗,可能不同的體驗)。
R做文本挖掘現在還有點弱,當然它的優點在於函數都給你寫好了,你只需要知道參數的形式就行了,有時候即使參數形式不對,R也能“智能地”幫你適應。這種簡單的軟體適合想要專註於業務的人。
Python幾乎都可以做,函數比R多,比R快。它是一門語言,R更像是一種軟體,所以python更能開發出flexible的演算法。
Python適合處理大量資料,而R則在這方面有很多力不從心,當然這麼說的前提是對於編程基礎比較一般的童鞋,對於大牛來說,多靈活運用向量化編程的話,R的速度也不會太差。
論效能,Python介於C/C++/Java這些進階語言與R語言之間,雖然效能不及那些進階語言,但是一般日常的資料用Python基本都能實現,對於效能要求不挑剔的人來說,足夠了
python 你需要安裝numpy,pandas,scipy,cython,statsmodels,matplotlib 等一系列的程式包,還需要安裝ipython互動環境,單獨用python直接做計量分析統計函數是沒有函數支援的;R是基於統計分析的,效能和效率上要略遜於python。R的優勢在於統計學和資料計算和分析上要優越於python。
Python語言編程的代碼可讀性高,整體美觀,屬於簡單粗暴性質的,短時間內少量代碼可實現複雜功能;R的文法很奇怪,各種包並不遵守文法規範,導致使用起來經常感覺蛋疼;R程式最終看起來沒有Python那麼簡潔美觀。
從全面性方面,我認為Python的確勝過R。無論是對其他語言的調用,和資料來源的串連、讀取,對系統的操作,還是正則表達和文文書處理,Python都有著明顯優勢。畢竟,python本身是作為一門電腦程式設計語言出現的,而R本身只是源於統計計算。所以從語言的全面性來說,兩者差異顯著。
python是machine learning領域的人用的較多。據我所知,做marketing research, econometrics, statistics的人幾乎沒有用python的
當然了,現在學編程比以前可簡單了多了。有句話不是這麼說的麼,“我不生產代碼,我只是stackoverflow的搬運工”。。。
以上僅僅是個人感悟,如表述不當,歡迎指出,拍磚的手下留情哦