2016-09-08

數據科學家:如何躋身「最性感職業」?

自從2012年哈佛商業評論刊出《數據科學家:21世紀最性感的職業》這篇文章後,Data Scientist頓時從小眾專業領域躍入公眾視野,成為大數據時代人才爭戰的焦點。

數據科學家的來源,以資訊科學、統計與應用數學等科系背景為主。但由於數據科學結合了統計學、資料探勘、資料庫、平行運算、機器學習、數據視覺化、以及多種程式語言,並非單一專業背景所能應付,加上技術工具演化速度太快,別說學校教育追趕不上,就連在職人士的學習壓力也甚大。

數據科學近年的突飛猛進,主要的助推力包括:
  1. 以MapReduce為基礎的Hadoop平台崛起,將大數據分拆成小塊,藉由平行、分散式運算,快速節省資料處理的時間。
  2. 服務於大數據的非關聯式資料庫誕生,如HBase、MongoDB等。
  3. 功能強大的數據分析軟體問世,如R、Matlab、Octave。
  4. 自然語言處理等高級文本分析技術不斷進化,有助於從非結構化的文本資料(如社群網站留言)提取信息和商業智能。
  5. 機器學習與資料探勘技術,為模式辨識、尋找關聯、挖掘潛藏信息提供犀利的工具。 

也正由於涉及多門跨領域專業,《The Definitive Guide to Becoming a Data Scientist》的作者Z. Voulgaris,為數據科學家所需掌握的基本技能開出下列一長串清單:
  1. 資料分析能力
    • 資料清洗
    • 建立數學模型
    • 統計分析
    • 開發或運用機器學習演算法
    • 檢驗模型是否正確
    • 數據視覺化
  2. 程式語言能力
    • 至少精通一種數據分析工具(R∕Matlab∕SPSS∕SAS)
    • 至少精通一種物件導向的程式語言
  3. 資料管理能力
    • 熟悉Hadoop(包括Hive、HBase、HDFS及MapReduce)
    • 熟稔傳統的SQL與新興的NoSQL等資料庫管理系統
  4. 商業知識
    • 充分瞭解公司的運作流程、商業模式及所屬產業領域
  5. 軟實力
    • 善於溝通,分析成果能被非技術人員理解

建立強大的「軍火庫」

在數據科學家的「軍火庫」中,兵器是多多益善,其中最重要的有以下幾類:

  • Hadoop:它幾乎已成為大數據的同義詞,包含眾多家族成員,像是MapReduce平行運算架構、HDFS分散式檔案系統、Pig程式語言、類似SQL資料查詢語言的Hive、機器學習與資料探勘的Mahout、Hadoop平台專用資料庫HBase等,共同構成一個完整的生態系統。當然,Hadoop並非數據科學家的唯一選擇,運作速度更快的Storm、Spark,也開始挑戰Hadoop的霸權地位。
  • 數據分析工具:老牌的統計軟體SPSS、SAS功能較受侷限,在大數據領域領航的是R和Matlab,兩者的語法和功能函數相近,但最大差別在於Matlab是昂貴的商業軟體,R則是免費開放程式碼,因此成為數據科學界最受歡迎的語言。R學習簡單、直觀好用,有各式各樣的軟體包或函數庫可運用,而且GUI(圖形使用介面)與繪圖功能做得很好,所以擁有龐大的使用者社群,不斷向其貢獻新內容。
  • 程式語言:數據科學家至少要會一種物件導向的程式語言,不論Python、C++、Java、C#、Perl、Ruby皆可,其中Python是特別流行的選擇,因為學習相對簡單,而且有眾多工具包幫你處理各種問題,可節省許多寫程式的時間。當然,C++、Java、C#的功能更強、運行速度非常快,特別適合處理大規模數據,但缺點是不像Python、R那樣有漂亮的GUI,視覺化較為遜色。除了這幾種程式語言之外,兼具物件導向與函數型語言特性的Scala,在大數據領域也有一定的佔有率。
  • 資料庫:大數據的主要特色,就是包含大量非結構化∕半結構化的資料,因此資料庫方面,在以結構化查詢語言(SQL)為基礎的關聯式資料庫(RDMBS)之外,湧現眾多新興的NoSQL資料庫,它們從早期的「No SQL」(不用SQL),後來演變為「Not only SQL」(不只用SQL),結合關聯式與非關聯式資料庫的優點。因此對於想從事數據科學的人,SQL仍是不可廢的基本功。
  • 數據視覺化:數據科學家所做的報表,既要有科學的嚴謹度,也要容易被外人所理解,在視覺呈現上要能讓人「一目瞭然」知道數據的意義。雖然數據分析軟體也都能提供不錯的視覺化工具,但若能增加一些專用工具,視覺效果會更出色。目前應用最廣的是Tableau,而Flare、Qlikview、Spotfire、InZite、Birst也都各擅勝場。


學習路徑與專業拼圖

數據科學家來自不同背景,每種人都掌握了一小部份拼圖,必須在職涯發展過程中,學習補強其它不足的專業,才能建立完整的專業拼圖。Voulgaris提出以下的學習路徑建議:


  • 軟體工程師出身者
    首先要學習向量化運算,這是R和Matlab很重要的概念。再來是學習高級的統計分析技巧,以及資料探勘、機器學習、預測分析等數據處理的新知識;如果還不知道什麼是集群分析、模式識別,最好多花一點時間用心學。此外還得稍微熟悉一下數據視覺化工具,因為大部分的程式語言都無法提供美觀、高品質的數據視覺呈現。
  • 統計背景出身者
    統計學的樣本數,無法和大數據相提並論。因此首先必須熟悉MapReduce架構及配套工具,主要是Hadoop(包括Pig、Hive)或Spark。如果沒時間學這麼多東西,或許可以試著用現成整合好的分析平台如IBM的BigInsights。而寫程式的能力也不可或缺,除了R語言外,至少還要學習一種物件導向的程式語言,其中Python是很好的入門,若是能通曉C++更佳,再搭配一些IDE(整合開發環境)像是Eclipse,使用起來會更得心應手。可以試著用這些新學會的語言,寫一些你以往在統計工作中用過的算法。除此之外,還需要懂得資料庫操作語言,先從SQL起步,再進一步學習NoSQL。
  • 資料庫管理師出身者
    本身已經精通SQL,學習可由近而遠,先從Hadoop生態系統的資料查詢語言Hive切入,試著動手建立一個HBase資料庫,同時延伸學習其他NoSQL語言。由於所學背景缺乏統計學與機器學習的訓練,因此這方面需要投注較多精力。若想節省時間,並且讓學習過程更有樂趣,可以一邊看書學習統計與數據分析,一邊在R、Matlab實作練習。最後是要熟悉資料視覺化工具的運用,使數據意義更容易為外界理解。


作者:臧聲遠/Career就業情報公司顧問

 (本文內容為作者個人觀點,不代表本部立場)

沒有留言:

張貼留言