如何成為一名資料科學家
資料科學家是近幾年出現的名詞(但是實際上已經存在於好幾十年),像是這篇“搶佔2013全球最性感行業”,以及曾經寫過的“資料科學家 vs 資料工程師“,甚至很誇張的”美企業搶資料科學家,兩年資歷年薪上看30萬美元“,讓很多人對資料科學家抱持的不同的幻想,在一般介紹資料科學的投影片中,最常出現的是下面這張圖:
主要是要闡述資料科學家主要必須具備的技能包括Hacking,Math,以及產業經驗.大部份在談資料科學家的文章也是從技術以及分析角度出發來談論培養資料科學家的過程,像是這篇我覺得很清楚的”How to become a data scients“.但是因為我是顧問業背景出身,所以想從另外一個方向來談談資料科學家的養成,特別是在商業環境中的資料科學家.
技術力
我們先來談談大家比較常聽到的技術好了,技術聽起來是個很高的門檻,又要會架硬體又要搞軟體.從架分散式系統到寫分散式演算法,又是R又是Python又是SQL什麼的,對於很多非資工出身的人的確很眼花撩亂.但是凡事總有個輕重緩急,不可能從底層系統到應用都自己一手包辦,要切入的話總得先從最關鍵的地方下手.對於資料科學家,我認為在技術這端,並不需要真正自己從無到有架系統,只要了解基本的系統架構以及能力限制就行.首先要做的事情其實是要了解不同技術工具在整個”資料科學“的生產流程中所扮演的角色以及基本的使用方式.
如果把“資料科學”當成是資料科學家主要要生產的產品,那我們可能不用去瞭解每台生產工具內部如何運作,但是卻要非常熟悉整個生產流程應該如何串接.例如資料來源要從哪裡來,面對結構或非結構的資料,有什麼辦法可以處理或存放?針對不同的資料原料,有什麼適當的分析工具可以使用?當產出一包資料分析結果後,可以用什麼方式包裝成產品?除了從結構面了解生產流程外,最好能規劃出良好的生產系統和檢核流程(透過 ETL 或是 CI 工具),確保資料產品能夠定期定量以及高品質的產出.
分析力
那在這個生產流程中,關鍵的分析方式以及原料篩選,就需要靠分析力來處理.分析學家有兩個關鍵武器 — 數學以及研究方法,透過嚴謹的研究設計以及數學分析來尋找最適合分析方式.如果只有技術但是不會分析,就會發生只有資料產出,但是不知道如何解釋的悲劇.無法解釋資料是很恐怖的事情,最恐怖的地方在於對局結果沒有 sense,跑出錯誤的結果還找不到原因.在程式中繞了半天結果錯誤可能是一開始的資料就不正確. 分析力必須培養辨識原料好壞以及設計關鍵演算法的能力,才能確保資料從輸入到輸出都有好的品質.
在資料處理的過程中,不是只有建模才是分析,現在一些 XNN 之類的流行,彷彿資料只要拿來丟到模型裡就好,但其實在實務上,前處理還是必不可少.從原始資料開始,每一步的處理過程,其實都是分析再分析,濃縮再濃縮、提煉再提煉的結果.
商務力
最後關鍵的商業力.產品如果不賣,不見得是東西不好,而是沒有拿出去賣.資料科學家(特別是商業模式中的)所使用的技術和分析方式,都會受到商業模式的影響,也都必須合乎商業模式.例如一個以中年婦女為主要客群的成衣業者,最應該優先發展的技術並不該是即時的網路廣告分析模型,而是精準的商品推薦系統.另外對於已經有基本上百萬消費者的企業來說,可能不會嘗試還在測試中的科技,而會選擇穩定的商業產品.例如可口可樂和 google 對於技術以及分析的發展方向一定會完全不同.這一切並不是技術的好外,而是商業模式的差異.
同時在一家企業中,不是只有演算法和推薦模型才能幫助公司賺錢.公司的業務、行政流程,也都可以透過資料的搜集和分析,來找到可以優化的點,讓資料科學能夠應用在方方面面來幫助企業成長.
結語
最後再回到技術力上.海德格曾說“技術是世界的解蔽(〈技術的追問〉海德格爾選集) ”,技術本身會影響人觀看世界的方式(http://zh.wikipedia.org/wiki/海德格尔的思想).當我們還在使用1.44Mb 碟片的時候,絕對不會想到有什麼 Big Data 演算法或是個人化資料.但是當目前技術發展到資料空間以 PB 來算,處理和讀取資料的速度也開始利用分散式架構來處理,ram 也越來越大進入 in memory 計算的時候,絕對也會影響人們的分析方式以及商業模式.
當我們將商業的角度擺入,來思考資料科學家的任務和定位時,又會得到不一樣的看法,以及需要琢磨的面向.