全文共4047字,預計學習時長8分鐘
數據科學的熱浪席捲大多數行業,如《哈佛商業評論》所述,數據科學家已成為21世紀最性感的工作。
雖然市場對經驗豐富的數據科學家的需求越來越大,但對這份工作的描述大都很模糊。此外,很多招聘經理對數據科學和數據分析或數據工程的定義都很寬泛。行業標準的缺乏讓許多想要轉行至數據科學的專業人士十分困擾。
了解有關人工智慧和機器學習的信息非常關鍵,但是沒有任何指導,人們很難知道該從哪裡下手。
本文的作者是Zoopla的一名數據科學家,他將詳細分享自己從分析師到數據科學的職業生涯中學到的經驗。
打好紮實的數學基礎
大多數機器學習算法都是建立在多變量微積分、線性代數和非線性代數的基礎上的。熟練的數據科學家能夠從數學層面改變電腦程式,從而真正推動模型性能提高。掌握數學技能很重要,尤其是統計學和線性代數。具備學習和理解機器學習技術的能力是成為一名數據科學家的必要條件。無論讀的是心理學、數學、博士還是在線課程都不重要,學會數學就好。
目前有很多數據科學家擁有博士學位,但這並不是鐵律。
秘訣1:關注自身的能力而非背景
作為一名數據科學家,經常要將困難、開放、定義模糊的問題一步步分解。這是讀碩士的3到6年間不斷培養的技能。但這種技能也可以從工作中鍛鍊。
教機器前先自學
數據分析師報告、總結並解釋過去和現在的信息,以為業務服務。這與數據科學家截然不同。數據科學家負責總結數據,從而預測未來或作出決策。他們的核心任務是訓練、測試和優化機器學習算法,因此技能也集中在機器學習建模上。
初學者可以在各媒體平臺上瀏覽博客文章,找到可以指導解決特定問題的方法。以下是一些有用的文章:
· 模式識別與機器學習——Bishop(被稱為機器學習聖經)
· 機器學習課程——Hal Daumé III
· 神經網絡與深度學習——Michael Nielsen
理論和繁雜的方程式有時會讓人不知所措,但不應該是讓人離開這個領域的原因。你可以邊閱讀邊寫代碼。例如,試著從頭構建一個單層感知器(一種最簡單的一種神經網絡)來完全理解書中讀到的內容。
秘訣2:應用所學的科學方法
網上也有許多課程在理論和實踐上各有偏重,涵蓋了機器學習的基本原理。推薦一些實用的課程:
· Coursera 機器學習課程由該領域的領軍人物Andrew Ng講授,涵蓋一些基礎知識。用Python而不是Octave/Matlab來做作業會更好,因為如果有很強的Python技能,會在就業市場上處於更有利的位置。
· Fast.ai課程由機器學習名人傑裡米·霍華德(Jeremy Howard)和雷切爾·託馬斯(Rachel Thomas)博士創建。課程以啟發式教學為理念,更側重實際應用。
· 史丹福大學(Stanford university)分享了一系列人工智慧課程材料。
這些課程的目標既不是記住公式和推導,也不是逐頁閱讀書和講稿。學習的目標應該是掌握大多數模型和算法以不同方式處理的基本概念。比如,神經網絡中的drop-out層、消失梯度、信號/噪聲關係。獲得將問題與基本原理聯繫起來的能力,將使你成為一名優秀的應用數據科學家,而這正是許多僱主想要的。
科學研究
秘訣3:為業務設置和問題選擇正確方法
數據科學家的真正技能是,知道手頭的業務問題需要什麼樣的技術和機器學習方法。
這個領域過去的十年裡蓬勃發展。作為一名數據科學專業人士,不斷學習新知識是成功的必要條件。強烈建議閱讀已發表的學術論文,還有不同科技公司和該領域關鍵人物的機器學習/人工智慧方面的博客。需要解決沒有提供即時方案的抽象問題時,所學會派上用場。通過研究現有情況找到正確的解決方案,工作就完成了80%。
安德烈·卡帕西(Andrej Karpathy)在史丹福大學cs231n課程上說得很好,「不要逞英雄」。商業世界期望人們快速交付(失敗),因此,如果可能的話,不要重新發明輪子,而應該站在巨人的肩膀上。
「如果說我看得更遠,那是因為我站在巨人的肩膀上」——艾薩克·牛頓(1775)
提高編程技能
數據分析師用數據來幫助企業做出明智決策。他們精通SQL、Excel和Tableau或Power BI等可視化工具。而數據科學家需要構建強大的模型來推斷和解決大規模業務問題,因此需要提升編程技能。學習編程永遠不會太晚。
Python正成為世界上最流行的程式語言,並擁有無數經過良好測試且不斷更新的數據科學庫。所以大多數數據科學團隊都在尋找會Python的人。所以,如果不懂Python,那就報名參加網絡課程學習一些基礎知識。不要忽略PEP8之類的格式指南,耐心學習,因為多實踐才會有期望的成果。此外,學習如何使用Jupyter對加快工作流程和數據/模型探索十分關鍵。
秘訣4:一直持續不斷練習,讓編程技能更快更好更強
會編程有魔法
參加黑客馬拉松、kaggle競賽、進行個人編碼項目都是提高編程技能的方式。從分析中找到並把握住數據科學機會有助於在當前工作中獲得經驗。學習預測和異常檢測的算法也有助於推動從數據分析師發展為數據科學家。本文作者在這個行業的第一個數據科學項目是設計自動完成某電商網站搜索查詢的算法。這個項目的靈感就來自他還在做初級分析師時報告的關於搜索和購物車的一些有趣的分析。
掌握軟體工程技能
如果想讓自己的模型有生產的可能,軟體工程技能非常必要。出於方法和法律原因,培養一種旨在通過自動化重現項目和結果的編碼態度至關重要。在擁有成熟數據科學文化的公司中,有的人創建原型,有的人編寫生產代碼,還有的人負責部署。實際上,無論公司規模大小,都不太可能獲得所有需要的支持,僅僅知道統計數據不足以交付數據科學項目。
秘訣5:儘早將自己的項目步驟自動化
因此,初級數據科學願望清單可能是這樣的:
· 可重現數據管道(如在spark和python中):是否有必須重現以前做過的分析的經歷?創建邏輯數據流(如原始(不可變數據)->中間(正在進行的工作)->處理(最終特性))和使用Makefile將節省自己和同事的時間。我和我的團隊都是cookiecutter的忠實粉絲,它提供了像這樣的邏輯項目結構。
· 培訓和評分的端到端自動化:模型大多數時候是鮮活的有機體,需要新的預測,並且數據可能會發生變化,所以要再訓練、評分和完善。然後必須將模型參數、秘密和隨機種子放入配置文件中,將DS項目分解為不同的元素並應用modularity。如創建可在訓練和評分時使用的共享特性庫。
· 單位測試範圍:人人都想要無憂無慮的睡眠和不受打擾的假期。所以為了確保穩健性,為項目編寫測試是很重要的。
· 構建API提供預測:為了表達想法和模型需要證明概念,這時通常需要REST API。如果不想使用Python之外的其他語言,那麼可以使用帶有Swagger UI的Flask和Flasgger。Swagger對於記錄並可視化基於REST的網絡服務非常有用。
· ECS部署或生產環境的數據科學解決方案的容器化:Docker可以隔離項目及其依賴項,在環境之間移動模型,並且每次以完全相同的方式運行代碼以達到100%的可重現性。這將有助於與DevOps和工程師的協作,這樣他們就能使用打包好的容器作為黑盒,無需了解數據科學。
將科學翻譯成領域內語言
通過在數據中尋找代理或者讓它成為機器學習中的潛在因素,研究數據的主題專家可以克服如業務失蹤或定義KPI等障礙。數據科學通常會造成業務中斷,因此需要說服高層領導以獲得適當的支持和資源。
有人說,讓業務中的所有利益相關者都能理解算法是一種藝術。因而需要不斷學習如何闡釋建立的算法,並向他人展示其重要性。正如畢馬威(KPMG)現任數據科學與工程主管麗貝卡波普(Rebecca Pope)在「矽谷女性圓桌會議」(Women of Silicon Roundabout)上強調的,「永遠記住,你(而非你的代碼)是有影響力的。人們不買算法,他們相信你和你的能力。」因此,要關注並花時間培養將數學轉換成垂直行業的視覺敘事的能力。
秘訣6:用垂直行業術語來溝通工作
沒人懂我……一名數據科學家正在解釋深度學習
正是成長的時機
從事新興職業雖然艱難,但更令人興奮。找到一個有助於成長的團隊,擁有像海綿一樣的頭腦,將會加速通往成功的旅程。理想情況下,你的上級會理解你的日常工作和想要達到的目標。不然也可從團隊或公司之外尋找所需的額外指導,如求助大學校友或教授,或者網上友好的數據科學家。聚會和會議也可能很有啟發性,有助於找到良師益友。
秘訣7:記住,沒有教科書或課程比導師更重要
綜上所述,要想在數據科學領域開始職業生涯,應該關注的技能包括統計學、多變量微積分和線性代數、機器學習、編程技能、軟體工程和可視化技能。
數據科學維恩圖 繪製:Steven Geringer Raleigh, NC.
留言 點讚 關注
我們一起分享AI學習與發展的乾貨
歡迎關注全平臺AI垂類自媒體 「讀芯術」