為什么你不應該成為一名數據科學通才
大數據文摘出品
編譯:周家樂、狗小白、蔣寶尚
數據科學家似乎個個都是全才,他們知識面很廣,即寫的了代碼,又分析的了業務,沒事還能整個數學模型調調參數。
似乎,數據科學家涉及的領域越廣,越能突出數據科學這份職業的價值。
但是,情況恰恰相反!
有著豐富的數據科學經驗的SharpestMinds聯合創始人Jeremie Harris告訴你,千萬不要成為一個數據科學通才!
以下是他以***人稱的論述,enjoy
我在公司幫新手規劃數據科學職業發展的時候,通常首先建議他們先去考慮一下自己想成為什么樣的數據科學家,而不是直接推薦一個新的庫或工具,或者一些寫簡歷的技巧給他們。
這個問題之所以如此重要,是因為數據科學涉及太多方面,以至于很難被一個人完全掌握。所以,對公司而言,與其雇一個什么都懂一點卻不精通的人,不如雇傭那些專才。
你可以試想一下你是一家計劃雇用數據科學家的公司。在你的腦海中幾乎存在一個需要尋求幫助才能解決的具體的問題,該問題需要一些相當專業的技術知識和項目經驗。例如,一些公司將簡單模型應用于大型數據集,一些公司將復雜模型應用于小型數據集,一些公司需要動態地訓練他們的模型,還有一些公司根本不使用傳統的模型。
解決上面例子中的每一個問題所需要的技能組合完全不同,而讓人感到特別奇怪的是,每一個有志于數據科學的人得到的建議往往是一樣的:“學習如何使用Python,構建一些分類/回歸/聚類的項目。”
其實,出現這一現象的原因是包括我在內的圈內人造成的。因為在閑聊、博客帖子中,我們把過多的東西放到“數據科學”中。
為生產建一個強健的數據通道?這是一個“數據科學問題”。創造一種新型的神經網絡?這是一個“數據科學問題”。
這往往導致有志于數據科學的人們失去對特定問題的深入研究,從而成為泛泛之輩。要知道,人才市場上已經滿是所謂的通才,他們很難再得到市場的青睞或取得突破。
但是,如果你自己不清楚都有哪類常見問題需要你去深入研究,那你就很難避免流于平庸。
我們把圈內出現的問題歸結為以下五類:
1. 數據工程師
職位描述:處理大量數據的公司,并管理數據通道。這意味著,當需要時,你要能確保有效地從數據源收集和檢索數據,并進行清理和預處理。
為什么它很重要:如果你只處理過相對小的(<5Gb)保存為.csv或.txt文件的數據集,那么你可能很難理解為什么會有一些人的全職工作是構建和維護數據管道。
這里有幾個原因:
- 一個50Gb的數據集對計算機的RAM來說太大了,所以你通常需要其他方法將其輸入到你的模型中。
- 處理這么大規模的數據需要花費大量時間,并且經常需要冗余存儲。管理數據的存儲也需要專門的技術訣竅。
要求:你將使用的技術包括Apache Spark、Hadoop和/或Hive,以及Kafka。你很可能還需要有一個扎實的SQL基礎。
你要處理的問題聽起來像:
“我如何構建一個能夠每分鐘處理10000個請求的數據管道?”
“如何清理數據集而不用將其全部加載到RAM中?”
2. 數據分析員
職位描述:將數據轉換成可指導業務發展的商業洞察力。你會是技術團隊和商業戰略、銷售或營銷團隊的橋梁。數據可視化將成為你日常工作的重要組成部分。
為什么它很重要:純技術人員通常很難理解為什么數據分析員如此重要,但事實是他們就是很重要。這些人需要將經過訓練和測試的模型和大量用戶數據轉換為讓人易于理解的形式,以便根據數據分析結論設計業務策略。數據分析員幫助確保數據科學團隊不會浪費時間在不能提供業務價值的問題上面。
要求:你將使用的技術包括Python、SQL、Tableau和Excel。你還需要成為一個好的溝通者。
你要處理的問題聽起來像:
“什么驅動了用戶的增長?”
“我們如何向管理層解釋,最近用戶費用的增加會減少客戶?”
3. 數據科學家
職位描述:清理和探索數據集,并做出有商業價值的預測。日常工作包括訓練和優化模型,并將它們部署到生產中。
為什么它很重要:當你有一大堆數據,以至于人類無法解析,同時這些數據也很珍貴以至于不能忽略它們時,你需要通過一些辦法從中提取一些可被接受的見解。這是數據科學家的基本工作:將數據轉換成可被理解的結論。
要求:你將使用的技術包括Python、scikit-learn、Pandas、SQL,可能還有Flask、Spark和/或TensorFlow/PyTorch。一些數據科學職位純粹是技術性的,但是大多數職位還需要你具有商業頭腦,這樣你就不會老想著去解決沒有人需要解決的問題。
你要處理的問題聽起來像:
“我們到底有多少種不同類型的用戶?”
“我們能建立一個模型來預測哪些產品能賣給哪些用戶嗎?”
4. 機器學習工程師
職位描述:建立、優化和部署機器學習模型到生產中。通常需要把機器學習模型當作API或組件來處理,把它們嵌入到全棧應用程序或硬件中,但是你也可能會被要求自行設計模型。
要求:使用的技術包括Python、JavaScript、scikit-learn、TensorFlow / PyTorch(和/或企業級深度學習框架)和SQL或MongoDB(通常用作app數據庫)。
你要處理的問題聽起來像:
“如何將這種Keras模型集成到我們的Javascript應用程序中?”
“如何減少推薦系統的預測時間和預測成本?”
5. 機器學習研究員
職位描述:尋找新的方法來解決數據科學和深度學習中的挑戰性問題。沒有現成的解決方案給你,需要自己去制定。
要求:你將使用的技術包括Python、TensorFlow/PyTorch和SQL。
你要處理的問題聽起來像:
“我如何才能提高我們模型的準確性,使之更接近***水平?”
“自定義優化程序有助于減少訓練時間嗎?”
這里列出的五種工作描述并不是在所有情況下都是獨立的。例如,在初創公司的早期,數據科學家可能還必須是數據工程師和數據分析師。但是,大多數工作都可以被劃分為這幾類工作中的一種,而且公司規模越大,數據科學工作的劃分越貼近這里所列出的類別。
總而言之,要記住的是,為了得到聘用,你***能培養一個更加專注的技能集:如果你只是想成為一名數據分析員,不要著急去學習TensorFlow;如果你是想成為一名機器學習研究人員,沒必要先去學習Pyspark。
相反,你需要考慮你想幫助公司創造什么樣的價值,并且讓自己善于創造這種價值。相對于任何其它方式,這是得到offer***的方式。
相關報道:
https://towardsdatascience.com/why-you-shouldnt-be-a-data-science-generalist-f69ea37cdd2c
【本文是51CTO專欄機構大數據文摘的原創文章,微信公眾號“大數據文摘( id: BigDataDigest)”】