IT屌絲如何成為資料科學家?

ctocio發表於2013-09-27

  資料科學家被《財富》雜誌譽為21世紀最性感的職業,但遺憾的是大多數企業裡都沒有真正的資料科學家人才。根據麥肯錫報告,僅僅在美國市場,2018年大資料人才和高階分析專家的人才缺口將高達19萬。此外美國企業還需要150萬位能夠提出正確問題、運用大資料分析結果的大資料相關管理人才。

  那麼,對於不同職業經歷和專業背景的IT人士來說,如何才能儘快轉型,加入資料科學家的鑽石王老五的行列呢?

  Ofer Mendelevitch近日在Hortonworks官方部落格發表文章給出了自己的觀點。

  Mendelevitch認為無論是Java程式設計師還是業務分析師都有機會成為資料科學家,以下是他對不同人群給出的具體建議:

  Java程式設計師

  作為Java開發者,你對軟體工程的規則已經瞭然於心,能夠設計軟體系統執行復雜任務。資料科學正是關於開發“資料產品”的一門科學,主要是基於資料和演算法的軟體系統。

  對於Java程式設計師來說,第一步需要了解機器學習的各種演算法:現在有哪些演算法,都能解決哪些問題以及如何實現。另外還需要學習使用RMatlab等建模工具,此外WEKAVowpal WabbitOpenNLP等庫也為大多數常見演算法提供了經過驗證的實現方法。如果你還不太熟悉Hadoop,學習map-reduce、PigHiveMahout將很有幫助。

  Python程式設計師

  如果你是Python程式設計師,對軟體開發和指令碼編寫一定很熟悉,也許已經在使用很多資料科學中常見的庫例如NumPySciPy

  Python對資料科學應用的支援很好,尤其是NumPy/Scipy, Pandas, Scikit-learn, IPython 等用於探索性分析的庫,以及視覺化方面的Matplotlib

  在處理大型資料集方面,多學些Hadoop及其與Python的流式整合。

  統計學家與應用科學家

  如果你有統計學或者機器學習的背景,那麼你很可能很多年前就開始使用諸如R, MatlabSAS進行迴歸分析、聚類分析等機器學習相關任務。

  R、Matlab和SAS是很強大的統計分析和視覺化工具,對於很多機器學習演算法都有很成熟的實現方法。

  但是,這些工具通常被用於做資料勘探和模型開發,很少單獨用來開發產品級的資料產品。在開發端到端的資料產品時,大多數情況下,你需要需要同時用到其他軟體模組如Java、Python等,並與Hadoop等資料平臺整合。

  顯然,熟悉一門或者多門現代程式語言,例如Python或Java是你的首要任務。此外,與有經驗的資料工程師緊密合作將有助於更好地理解他們開發生產級資料產品所用到的工具和方法。

  業務分析師

  如果你的背景是SQL,那麼說明你已經跟資料打交道很多年了,你很清楚如何通過資料獲取業務分析結果。Hive能讓你以你熟悉的SQL語言訪問Hadoop上的大資料集,因此是你步入大資料殿堂的首選。

  資料產品通常需要使用SQL無法勝任的高階機器學習和統計,因此對於業務分析師來說,進入資料科學領域的第二個重要步驟就是在理論層面深入瞭解此類演算法(例如推薦引擎、決策樹、NLP),並熟悉目前的實現工具如Mahout, WEKA,或Python的 Scikit-learn

  Hadoop開發者

  作為Hadoop開發者,你一定已經瞭解了大資料集和叢集計算的複雜性。你還可能熟悉Pig、Hive、HBase並有豐富的Java經驗。

  第一步,你需要深入瞭解機器學習和統計,以及這些演算法面向大資料集的高效實現方法。Mahout是個不錯的開始,可以在Hadoop上實現上述很多演算法。

  另外一個需要關注的領域是資料清理(data cleanup),很多演算法在建模前都會為資料分配基本結構。但不幸的是,現實中資料大多很“髒”,清理這些資料是資料科學中一項很繁重的工作。Hadoop通常是建模前大規模資料清理和預處理的工具選擇。

  總結

  通向資料科學殿堂之路不可能一帆風順,你必須學習很多新規則、程式語言,更重要的是還要積累實戰經驗。這些都需要時間、精力和投入,但最終你會發現一切都物超所值。

  這裡有很多你可能會用到的學習參考書籍培訓簡報

相關文章