IT屌絲如何成為數據科學家?
數據科學家被《財富》雜志譽為 21 世紀最性感的職業,但遺憾的是大多數企業里都沒有真正的數據科學家人才。根據麥肯錫報告,僅僅在美國市場,2018 年大數據人才和高級分析專家的人才缺口將高達 19 萬。此外美國企業還需要 150 萬位能夠提出正確問題、運用大數據分析結果的大數據相關管理人才。
那么,對于不同職業經歷和專業背景的 IT 人士來說,如何才能盡快轉型,加入數據科學家的鉆石王老五的行列呢?
Ofer Mendelevitch 近日在 Hortonworks 官方博客發表文章給出了自己的觀點。
Mendelevitch 認為無論是 Java 程序員還是業務分析師都有機會成為數據科學家,以下是他對不同人群給出的具體建議:
Java 程序員
作為 Java 開發者,你對軟件工程的規則已經了然于心,能夠設計軟件系統執行復雜任務。數據科學正是關于開發“數據產品”的一門科學,主要是基于數據和算法的軟件系統。
對于 Java 程序員來說,第一步需要了解機器學習的各種算法:現在有哪些算法,都能解決哪些問題以及如何實現。另外還需要學習使用R和 Matlab 等建模工具,此外 WEKA、Vowpal Wabbit 和 OpenNLP 等庫也為大多數常見算法提供了經過驗證的實現方法。如果你還不太熟悉 Hadoop,學習 map-reduce、Pig、Hive 和 Mahout 將很有幫助。
Python 程序員
如果你是 Python 程序員,對軟件開發和腳本編寫一定很熟悉,也許已經在使用很多數據科學中常見的庫例如 NumPy 和 SciPy。
Python 對數據科學應用的支持很好,尤其是 NumPy/Scipy, Pandas, Scikit-learn, IPython 等用于探索性分析的庫,以及可視化方面的 Matplotlib。
在處理大型數據集方面,多學些 Hadoop 及其與 Python 的流式集成。
統計學家與應用科學家
如果你有統計學或者機器學習的背景,那么你很可能很多年前就開始使用諸如R, Matlab 或 SAS 進行回歸分析、聚類分析等機器學習相關任務。
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 通常是建模前大規模數據清理和預處理的工具選擇。
總結
通向數據科學殿堂之路不可能一帆風順,你必須學習很多新規則、編程語言,更重要的是還要積累實戰經驗。這些都需要時間、精力和投入,但最終你會發現一切都物超所值。