- 一線互聯網公司對 AI 工程師的要求是什么樣的?
- 我應當掌握哪些 AI 技能樹?
- 從事 AI 工作一定要有碩士、博士的知識儲備嗎?
- 從零學習人工智能真的需要5年以上時間嗎?
- 系統化學習和實戰中總結哪個更高效?
如何成為一名數據科學家?
? ? ? 在回答這個問題之前,希望你先想想另外一個問題:為什么要成為數據科學家?當然,如果你是為了10萬美元的年薪也無可厚非,但是我衷心希望你能將這個職業和自己的價值感掛鉤。因為成為數據科學家的路途會很辛苦,但如果你將其看成是實現個人價值的一種方式,那么追尋目標才能帶來長久的成就感,在這個過程中會感到快樂并且動力十足。?
一、數據科學家應掌握的技能包
? ? ? ?要回答“如何成為……”這樣的問題,首先當然需要知道想要成為的對象是個什么樣子。圖1 是一個數據科學家的技能表。
?
? ? ? ?首先編程能力是數據科學家需要的基本技能。數據讀取、整合、建模分析和可視化的整個環節都需要用到這些工具。在業界環境中,整個數據鏈大概分為5塊:?
1. 云端數據存儲系統。比如亞馬遜的云服務 AWS,大數據可以用分布式存儲在 S3中。AWS 更像是一個生態系統,里面有數據庫,也可以在上面運行一些代碼,比如實時從社交網站上爬取數據儲存在云端數據庫中。?
2. 安全門。讀寫數據都需要經過這道安全門,這個部分主要是由公司的 IT 部門建立。安全門有3種限制訪問權限的方式: IP 地址:只接受從特定 IP 地址的訪問;職能:比如只有頭銜是數據科學家和數據工程師的人有權限;用戶名密碼。公司常常會同時使用上面3種方法,也就是有特定職能,從特定 IP 地址,通過用戶名和密碼訪問。數據工程師會訓練數據科學家穿越這重重安全門。這里對數據科學家的計算機要求并不高,只需要知道一些基本的 Linux 就可以,苦活累活都讓工程師們包攬了。
3. SQL 客戶端。數據科學家需要通過 SQL 從數據庫中讀取相應數據。根據數據庫的不同,使用 SQL 的類型和語法也略有不同,但大體上非常相似。掌握基本的數據庫讀取操作是非常必要的。
4. 數據分析。現在使用最廣的數據分析語言是 R 和 Python,熟練使用至少其中一門語言幾乎成為數據科學家的標配。只會 SAS 行不?不行。當然,這些都只是工具,工具是解決問題的手段,而非目的。你必須要有一個能用來進行數據分析的工具,偏好因人而異,但選擇工具的時候最好考慮工具的靈活和可擴展性。
5. 結果報告。這里會用到基于 D3.js 的交互可視化,Rmarkdown 自動化報告以及 Shiny 應用。
? ? ? 數據科學家需要另外掌握的一個重要的技能是分析建模。圖2 是數據流程構架圖,這個模塊可以進一步細分成下面幾個:?
? ? ? 數據科學家應該具備基本的概率統計知識,能夠熟練進行 t 檢驗,開方檢驗,擬合優度檢驗,方差分析。能夠清楚地解釋 Spearman 秩相關和 Pearson 相關之間的區別。熟悉抽樣、概率分布、實驗設計相關概念。了解貝葉斯統計(很快就能在白板上寫下貝葉斯定理)。不是所有的應用數據科學領域都需要用到貝葉斯,即使你所處的行業用得很少,了解貝葉斯的基本概念也是很有必要的。使用“貝葉斯”這個詞的方式有很多。但其主要代表了一種解釋概率的特別方式。用流行的術語表達,貝葉斯推斷不外乎計算在某假設下事情可能發生的方式的數目。事情發生方式多的假設成立的可能性更高。一旦我們定義了假設,貝葉斯推斷強制施行一種通過已經觀測到的信息進行純邏輯的推理過程。所以,在很多應用場景中,貝葉斯也更加合適。?機器學習相關技能。知道什么是有監督學習,什么是無監督學習。知道重要的聚類、判別和回歸方法。知道基于罰函數的模型,關聯法則分析。常用的黑箱模型:隨機森林、自適性助推、神經網絡模型。如果從事心理相關的應用的話(如消費者認知調查),還需要知道基本的潛變量模型,如探索性因子分析、驗證性因子分析、結構方程模型。在應用過程中還需要加強對模型中誤差的來源分類的理解,知道相應誤差的應對方法。當前存在的機器模型太多,理解模型誤差可以幫助你有效地通過嘗試少量模型找到足夠好的那個。?除了技術能力以外,還需要其他一些非技術的能力。這些包括將實際問題轉化成數據問題的能力,這一過程需要交流,也就要求良好的交流溝通能力。關注細節,分析是一個需要細心和耐心的職業。還有就是展示結果的能力,如何讓沒有分析背景的客戶理解模型的結果,并且最終在實踐中應用模型的結論。這個單子還可以一直列下去。看起來是不是不只一點嚇人?其實這個技能單是動態的,你一開始不必具有上面列出的所有技能,但在工作過程中,需要不斷的學習成長。一個優秀的數據科學家不是通過數據找到標準答案的人,而是那個接受和適應這個充滿不確定性的世界,給出有用方案的人。一個成熟的數據科學家面對分析項目時會看到多種可能性和多種分析方法,給出結果后依舊時刻關注這個結果,不停地保持小幅度頻繁更新。再次強調自學能力和成為一個終生學習者是優秀的數據科學家的必要條件。
二、如何獲取上述技能?
? ? ? ?現在你對數據科學家需要具備的技能應該有個大致的概念了。接下來的問題是如何獲取這些技能。這個問題的答案部分取決于你的專業背景。當前數據科學家的背景其實很雜,這里主要著眼于數學、統計、計算機或其它定量分析學科(電子工程、運籌學等)本科以上學歷的情況。數學統計背景的學生,需要加強計算機方面能力的培養。而計算機背景的學生需要更多地了解統計理論。如果是其他定量分析學科,可能需要同時加強這兩者。其他專業的學生成為數據科學家有兩種情況:從事和自己專業相關行業公司的數據分析。比如在一些精準農業應用的公司,會常常看到數據科學家是生態學博士,或者土壤學博士。其實這些人不能算是廣義上的數據科學家。因為他們處理的問題局限于非常特定的領域,對生態和土壤的了解的要求高于對數據分析的要求。雖然是其他專業,但是本身有著很強的計算機技能,比如物理學專業的學生會成為數據科學家或者量化交易員,這因為他們通常具有很好的編程能力。
? ? ? ?關于數據科學家的學位背景,根據2017年的統計數據,美國的數據科學家41%有博士學位,49%有碩士學位,只有10%是本科。研究生博士期間的課題最好偏向機器學習、數據挖掘或預測模型。其次需要的是數據庫操作技能。在工作中通常需要用 SQL 從數據庫讀取數據。對于統計或者數學專業的學生,在校期間可能不需要使用 SQL,因此不太熟悉。這沒有關系,我也是工作以后才開始使用 SQL 的。但你要確保自己至少精通一種程序語言,之后遇到需要用到的新語言可以迅速學習。現在有大量的 MOOC 課程,以及一些在線的數據科學視頻,都是提升自己的很好方法。?
三、在數據科學的應用中有哪些常見誤區?會用函數跑模型就可以了?
會開車的只是司機,要當汽車工程師,僅靠會開車是不行的。這點放在數據科學領域也是一樣。不需要你背下模型背后的所有數學公式,但是至少需要學過一遍,讓你可以翻著書解釋模型機理。
模型精確度越高越好?
在實際應用中需要同時考慮收益和成本。如果模型精確度是90%,但是提高到95%需要復雜得多的模型。因此需要大量的計算設備投入,同時帶來的邊際收益很小的話,滿足于精確度小的模型就好了。模型選擇和評估可能是數據分析流程中最難的環節。
技術過硬就是尚方寶劍?
人常常是不理性的,我們的行為和對周遭的態度受感情的影響。我們總是會對所有的事情加上自己的主觀判斷。當然,你公司的同事,領導看待你的方式也受到主觀的影響。很遺憾,這個主觀的感受通常更多的來自于你作為人的部分,而不是機器的部分。你覺得自己技術好是一件事情,領導覺得你技術好是另一件事情,領導覺得你的技術是有用的那又是新的一件事情了。所以“做技術”不等于“情商低點沒關系”。技術不斷更新,被泡沫裹挾著失去方向?
不斷升級將會是一種常態,這不僅僅是數據科學,你必須這么做,因為所有的東西都在升級,就像軍備競賽一樣,升級已經成為事物本身的存在方式。面對不懂的技術,要么就說不懂,要么就去學。其實你真正鼓起勇氣,開始認真去學習這門技術的時候,會發現其實沒有那么神秘。當然,馬上又會有新的神秘的東西出現,這個過程又會重復。但你就是在這樣循環反復中成長的,產品是這樣,人也是這樣。
四、數據科學領域現狀
我們從數據上看看數據科學的現狀吧。從最大的職業社交網站領英( LinkedIn )的數據看來,數據科學家職位的年薪在7.5萬~17萬美元之間,中位數是11.3萬美元。其中雇傭數據科學家的公司主要集中在微軟、IBM、Fackbook、亞馬遜、Google這些計算機互聯網公司,圖3 為前10名雇傭數據科學家最多的公司。
數據科學家所處的行業也集中在科技或者研究性組織,圖4是排名前10的行業。
不同公司的數據科學團隊架構不一樣。主要有如下2種:
1. 獨立式。獨立的數據科學部門,會有一個數據科學總監這樣的領導角色領導。這通常在研究所或者公司科研型的部門。對于數據科學家而言,在這樣部門的優點是能夠和很多其他數據科學家有技術上的交流,也有明確的職業軌道。
缺點是,很難脫穎而出,需要和很多其他科學家競爭一些資源(比如培訓會議的機會)。
2. 嵌入式。數據科學家各自嵌入到不同的職能部門中。常見的是市場部的數據科學家。領導者就是傳統的市場總監。在這樣的團隊優勢在于直接和公司高層接觸,影響商業決策。因為獨特很容易脫穎而出獲取很多行業內培訓和會議的機會,而且市場部是核心部門,如果你想在這個公司發展,這是很好的地方。缺點就是,無法和其他數據科學家交流,很多東西需要自己決策,周圍人只能選擇相信或者不相信你,但不能給出特別的幫助。久了會有在專業上落后的危險,所以需要充分利用在市場部的培訓會議資源,積極參與數據科學家社區。最大的缺點是沒有清晰的職業軌跡,因為在市場內部的分析團隊不會太大。如果你的職業目標是最后管理一個大團隊或者職能的話,這可能不能滿足你的目標。但其職位本身從初級到高級的跨度可以很大。
數據科學家這個職位還比較新,所以從團隊建設和職業軌跡上都還在發展,具有很好的前景。
希望你能成為一個不斷思考,終生學習的數據科學家!