勵志篇:IT屌絲如何成為數(shù)據(jù)科學(xué)家?
數(shù)據(jù)科學(xué)家被《財富》雜志譽為21世紀(jì)最性感的職業(yè),但遺憾的是大多數(shù)企業(yè)里都沒有真正的數(shù)據(jù)科學(xué)家人才。根據(jù)麥肯錫報告,僅僅在美國市場,2018年大數(shù)據(jù)人才和高級分析專家的人才缺口將高達(dá)19萬。此外美國企業(yè)還需要150萬位能夠提出正確問題、運用大數(shù)據(jù)分析結(jié)果的大數(shù)據(jù)相關(guān)管理人才。
那么,對于不同職業(yè)經(jīng)歷和專業(yè)背景的IT人士來說,如何才能盡快轉(zhuǎn)型,加入數(shù)據(jù)科學(xué)家的鉆石王老五的行列呢?
Ofer Mendelevitch近日在Hortonworks官方博客發(fā)表文章給出了自己的觀點。
Mendelevitch認(rèn)為無論是Java程序員還是業(yè)務(wù)分析師都有機會成為數(shù)據(jù)科學(xué)家,以下是他對不同人群給出的具體建議:
Java程序員
作為Java開發(fā)者,你對軟件工程的規(guī)則已經(jīng)了然于心,能夠設(shè)計軟件系統(tǒng)執(zhí)行復(fù)雜任務(wù)。數(shù)據(jù)科學(xué)正是關(guān)于開發(fā)“數(shù)據(jù)產(chǎn)品”的一門科學(xué),主要是基于數(shù)據(jù)和算法的軟件系統(tǒng)。
對于Java程序員來說,第一步需要了解機器學(xué)習(xí)的各種算法:現(xiàn)在有哪些算法,都能解決哪些問題以及如何實現(xiàn)。另外還需要學(xué)習(xí)使用R和Matlab等建模工具,此外WEKA、Vowpal Wabbit和OpenNLP等庫也為大多數(shù)常見算法提供了經(jīng)過驗證的實現(xiàn)方法。如果你還不太熟悉Hadoop,學(xué)習(xí)map-reduce、Pig、Hive和Mahout將很有幫助。
Python程序員
如果你是Python程序員,對軟件開發(fā)和腳本編寫一定很熟悉,也許已經(jīng)在使用很多數(shù)據(jù)科學(xué)中常見的庫例如NumPy和SciPy。
Python對數(shù)據(jù)科學(xué)應(yīng)用的支持很好,尤其是NumPy/Scipy, Pandas, Scikit-learn, IPython 等用于探索性分析的庫,以及可視化方面的Matplotlib。
在處理大型數(shù)據(jù)集方面,多學(xué)些Hadoop及其與Python的流式集成。
統(tǒng)計學(xué)家與應(yīng)用科學(xué)家
如果你有統(tǒng)計學(xué)或者機器學(xué)習(xí)的背景,那么你很可能很多年前就開始使用諸如R, Matlab 或 SAS進(jìn)行回歸分析、聚類分析等機器學(xué)習(xí)相關(guān)任務(wù)。
R、Matlab和SAS是很強大的統(tǒng)計分析和可視化工具,對于很多機器學(xué)習(xí)算法都有很成熟的實現(xiàn)方法。
但是,這些工具通常被用于做數(shù)據(jù)勘探和模型開發(fā),很少單獨用來開發(fā)產(chǎn)品級的數(shù)據(jù)產(chǎn)品。在開發(fā)端到端的數(shù)據(jù)產(chǎn)品時,大多數(shù)情況下,你需要需要同時用到其他軟件模塊如Java、Python等,并與Hadoop等數(shù)據(jù)平臺整合。
顯然,熟悉一門或者多門現(xiàn)代編程語言,例如Python或Java是你的首要任務(wù)。此外,與有經(jīng)驗的數(shù)據(jù)工程師緊密合作將有助于更好地理解他們開發(fā)生產(chǎn)級數(shù)據(jù)產(chǎn)品所用到的工具和方法。
業(yè)務(wù)分析師
如果你的背景是SQL,那么說明你已經(jīng)跟數(shù)據(jù)打交道很多年了,你很清楚如何通過數(shù)據(jù)獲取業(yè)務(wù)分析結(jié)果。Hive能讓你以你熟悉的SQL語言訪問Hadoop上的大數(shù)據(jù)集,因此是你步入大數(shù)據(jù)殿堂的首選。
數(shù)據(jù)產(chǎn)品通常需要使用SQL無法勝任的高級機器學(xué)習(xí)和統(tǒng)計,因此對于業(yè)務(wù)分析師來說,進(jìn)入數(shù)據(jù)科學(xué)領(lǐng)域的第二個重要步驟就是在理論層面深入了解此類算法(例如推薦引擎、決策樹、NLP),并熟悉目前的實現(xiàn)工具如Mahout, WEKA,或Python的 Scikit-learn。
Hadoop開發(fā)者
作為Hadoop開發(fā)者,你一定已經(jīng)了解了大數(shù)據(jù)集和集群計算的復(fù)雜性。你還可能熟悉Pig、Hive、HBase并有豐富的Java經(jīng)驗。
第一步,你需要深入了解機器學(xué)習(xí)和統(tǒng)計,以及這些算法面向大數(shù)據(jù)集的高效實現(xiàn)方法。Mahout是個不錯的開始,可以在Hadoop上實現(xiàn)上述很多算法。
另外一個需要關(guān)注的領(lǐng)域是數(shù)據(jù)清理(data cleanup),很多算法在建模前都會為數(shù)據(jù)分配基本結(jié)構(gòu)。但不幸的是,現(xiàn)實中數(shù)據(jù)大多很“臟”,清理這些數(shù)據(jù)是數(shù)據(jù)科學(xué)中一項很繁重的工作。Hadoop通常是建模前大規(guī)模數(shù)據(jù)清理和預(yù)處理的工具選擇。
總結(jié)
通向數(shù)據(jù)科學(xué)殿堂之路不可能一帆風(fēng)順,你必須學(xué)習(xí)很多新規(guī)則、編程語言,更重要的是還要積累實戰(zhàn)經(jīng)驗。這些都需要時間、精力和投入,但最終你會發(fā)現(xiàn)一切都物超所值。
via:ctocio
- 目前還沒評論,等你發(fā)揮!