search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

老司機用十幾年的職業閱歷告訴你:如何成為一名優質的數據科學家

開隨著「數據驅動」的價值越來越明顯,越來越多的企事業開始組建或擴大數據分析隊伍,「數據科學家」這個職位也越來越被大家關注。

  • 「數據科學家」是不是「統計師」更性感的版本?

  • 起碼得有統計、應用數學、計算機的背景?

  • 幹了5年的軟體開發,寫SQL如反掌觀紋,換行做數據科學家很容易吧?

  • 我們市場部也想更加「數字化」,但不懂編程,應該如何起步?

數據科學家的定義

經歷了一些不同階段的大數據項目之後,我意識到,在「數據科學家」這個角色沒定義好之前,「數據化」會遇到很多挑戰。這個角色的定義相當模糊,造成很多混淆--很像對「數字化」本身的混淆。

我翻閱了一下招聘網站上數據科學家的職責,有的專門通過統計和機器學習來建立預測模型,有的定義則更加寬泛。那麼到底「數據科學家」具備什麼樣的技能,能做哪些事?很多希望實現「數據驅動」的企業對數據科學家的期望比較籠統,並且在不斷修正中,這很正常,那麼,怎樣才能更好地為這一職位做好準備?

網上已經有很多種答案,本文並不想提出新的詮釋,而是盡量將最主流的觀點提供給大家,並結合現有的技術,為有志於成為數據科學家的朋友,提供建議。

定義一:數據科學家起碼是統計師

「數據科學家是對統計師更性感的稱謂」 -Nate Silver

Nate Silver是個著名的統計師,憑藉2008年美國總統競選中,成功地預測了所有50個州里的49個州競選結果,而一戰成名,並被《時代周刊》評為2009年度最有影響力的100人之一。

他說:「數據科學家是對統計師更性感的稱謂。......,數據科學家(這個稱謂)有點多餘,人們不應該批評「統計師」這個詞」。

不過,數據本身在變化——越來越多,越來越快,種類越來越豐富,統計師們用以前的辦法難以應對,所以數據科學家至少是比統計師們更善於編程的那些人。

定義二:數據科學家用編程和統計,將數據更有用

隨著數據分析和業務需求的發展,以及分工的細化,這個稱謂也在逐漸演化。 比如,Pandora的研究部門負責人Michael Hochester是這樣定義數據工程師的:

「數據科學家是一些能綜合運用編程和統計技術的人,他們致力於通過各種方式讓將數據更發揮作用。」他認為數據科學家分為兩類:

A類: 分析型

主要像統計學家那樣,進行靜態的數據分析,並能清洗數據。他們用不同辦法處理較大的數據集,可視化,非常熟悉某個領域,能很好解讀數據等等;分析型數據科學家也能通過寫代碼來處理數據,但不像工程師那樣專業。他們更擅長實驗設計,預測、建模、統計推斷和其他統計工作。結論會更直白,而不是像P值和置信區間那麼學術化。提煉出簡潔有力的結論,並傳達給其他人,是數據科學家常常被低估而異常重要的職責之一。

B類: 搭建型

除了統計知識之外,搭建型數據科學家編程很強,關注於用在線生產數據搭建模型,並和其他系統連接,實現自動更新結果、或自動和用戶互動,比如推薦系統(產品、你認識的人、廣告、電影、查詢結果等等)。

一個好的分析師具備哪些特點?

我最喜歡這個問題,網上的答案也五花八門。 有推薦一大堆技術的,有一大堆統計名詞的。 Monica Rogati的答案值得回味:她在《一個好的分析師由哪些條件組成?》里提出四點:

1. 務實

技術和模型是否最優,遠不如所帶來的影響更重要。 幾個星期的工作,是否能為公司帶來相應收益,結論能帶來多大的改變? 務實,意味著在開始之前搞清楚:1)可能的,和最有可能的結果;2)所需的時間、人力和資源。

花幾個星期研究一個新演算法,甚至學一個新技術,很能帶來成就感。但對公司來講,是不是真的比一個基於簡單的啟發法(Heuristics)的結論有用得多? 不考慮機會成本,就可能糾結於一個最多能帶來2%提升的難題,而忽略了能帶來20%提升的課題。

所以,當產品經理跟你講:「能不能幫忙把xxx產品今年的數據幫我匯總一下」,一定要問問用途,比如「為啥需要啊?」,「想看哪方面?」,對方也許關心渠道增長,或者想進行捆綁營銷。不清楚目的,而一頭扎進各種報表,不僅費時費力,而且結論的針對性和深度有限。

2. 好奇

數據分析有點像偵探工作。 重大發現都是從蛛絲馬跡開始,看似無關的線索可能有深藏其後的關聯。追,可能能獲得重要的洞察,不追……也沒人怪你。線索=數據,多種來源、不同規範程度的數據。80%的精力都會耗費在提取、清理和規範數據上,所以,缺乏好奇心,就很難堅持追下去,而最終真相的價值可能超過最新最酷的機器學習演算法。

3. 技術和解決問題的能力

技術、能力和業務知識,缺一不可。

技術意味著對統計、演算法和軟體工具的熟悉。 並不非要有統計學的碩士學位,但起碼得明白最小二乘法之類的基本統計方法和如何解讀結果。

能力意味著能解決實際問題,能堅持不懈地用各種技術進行探索,靈活地編程,使用命令行,對不同數據源進行清洗、轉換, 應用不同的演算法和模型。 計算機學位也不是必須的,實際上很多技術俠連正式的計算機課程都沒修過。

業務知識是指和具體領域、公司或部門相關的背景知識。比如分析醫療設備數據時,如果了解哪些耗材配套哪些設備? 哪些醫院科室常做哪些檢測?就可以更明智地使用數據。

沒人能對所有這些都熟悉。好在信息時代讓學習變得更加簡單。最快的途徑是邊做邊學,比如自己做些小項目,並跟著有經驗的數據科學家學習。不同的公司所看重的技術、工具、業務知識也不同。 很多公司非常看重統計學基礎,比如提供網路遊戲和社區的Twitch的數據科學家Brad Schumitsch談到:

「在Twitch, 我們的數據科學團隊由三部分組成:統計、編程和產品知識。 我們從來不招統計學不強的人。你可以是個很強的程序員,但如果不懂貝葉斯定理, 我只能建議你去我們工程部。」

所以,不同企業或不同階段,對技術、能力和業務知識這三方面的側重不同。 Google的數據科學家可能有博士學位,對計算機和數學很有研究。電商領域的同樣崗位可能對電商非常熟悉,卻不一定經過正式的數學或計算機培訓。

4. 溝通能力

能不能把複雜的概念闡述得言簡意賅,而不用專業術語? 能不能幾秒鐘之內就做一個簡明扼要的圖? 能不能忍住不把所有前提、場景、局限性都一股腦倒出來,來保證結論的絕對正確?是不是覺得可視化和簡潔的結論只是給不懂技術的人,或者不如你聰明的人看的?

我的大數據導師老丁曾是惠普全球運營報表部門的老大,當時我負責此平台開源后的市場工作。宣傳資料做了兩版之後,老丁扔過來一句話「太技術」,等到第三版,老丁急了,扔過來一本乳品生產企業的宣傳冊,說「按這辦」。「乳品」vs「資料庫」,我有點懵......老丁是80年代放棄成為第二批計算機學科院士的機會,毅然投入美帝資料庫一線工作幾十年的老IT了,那全局觀,那思路,不可能錯啊。

N個月之後,我明白了。 宣傳也好,數據科學家也好,有一點是相同的:我們的結論不應只追求正確,更重要的是簡潔。讓別人徹底明白,才有可能及時促成行動。

這個過程責任重大,所涉及到的前提、場景和局限性都很重要,但應先等一等,不能一股腦拋給你的聽眾。它們終究會被簡化掉,由數據科學家主動去簡化,不比被以後的人隨意簡化強嗎?

如何成為數據科學家?

數據科學家的收入和職業前景不錯,那麼如何才能找到一份數據科學家的工作? 另一個相近的版本是,很多企業建立內部數據科學部門的時機也逐漸成熟,如何培養內部人員成為數據科學家?

網上能找到不少關於數據科學家方方面面技能的教程、課程或視頻,包括分析方法、開源工具、編程語言等。如果英文較好,還能從InfoQ、Quora、StackOverflow等獲得不少國外大牛的指點。不過許多攻略都是這樣:1)你需要A、B、C、D這些技能;2)這裡是鏈接。Python的鏈接在這,R的鏈接在那,機器學習的視頻在最下面,再去安個Hadoop和Spark。 這是最常見的學習方式,但很費時費力,效果沒那麼好。 很多培訓用的是處理過的規範數據,演示效果很好,但現實卻不太一樣。

實際上,大家更認可「邊干邊學」的效果,可是在找到數據科學家的工作之前,怎麼才能得到「干」的機會? Monica Rogati的《How Can I become a data scientist》和Tomi Mester的《How to get your first job in Data Science》都提出了很好的方法。

第一步 四種工具

如果你想從最基礎開始,有四種工具比較常用。這些工具都是免費的,Tomi Mester提供了一個英文的攻略:

  • Bash和命令行;

  • Python

  • SQL

  • R

  • 有時需要Java

一般來說,不同的公司會選用其中兩到三種。好消息是,一旦學會一種,學其他的也很快。 總共花一兩周,選其中兩三種掌握基本使用,就可以進入下一步。

Tomi的攻略需要安裝和連接到雲上的虛機。這些服務國內眾多的雲服務商都能提供,可以直接選國內的即可。 具體的安裝,如果自己不熟悉,也可以請朋友幫忙,不一定要花太多時間。

第二步 先定個小目標,比如動手做幾個小項目

親手做些項目,不僅是最快最有效地的學習辦法,而且能讓你的簡歷更引人注目,在面試時加分不少。

選個感興趣的題目

結合可以找到的數據,選選自己感興趣的題目,比如空氣質量、氣候變化、民航運輸、旅遊、醫療支出等等。網上有不少數據可以免費或者很便宜地下載。除了國內數據,一些美國網站上也有很多世界範圍的公眾數據,比如天氣、各國經濟、疾病、自然災害等等。 常用的網站有國家統計局(「國家數據」)、美國政府公開數據Data.gov、Kaggle比賽的數據集、世界數據圖冊、CEIC、證監會、新浪財經、AWS公用數據集、數糧、機器學習的UCI數據集等等。 如果是公司支持的項目,還可以從公司IT部門拿到數據。 重要的是,應該從容易上手的項目做起,找到數據,爭取一周之內得出結果。

發個微博或微信,看看反映

在動手分析之前,先大概看看數據,把你想做的項目和初步印象用一兩句話,在微博和微信上看看大家的反應。既要現實一點(能在一個星期內做出結果),又要保持樂觀(相信自己能做出來,能找到些有趣的結論)。猜想一個可能的結果,不一定很準確(甚至可以編編),並邀請大家反饋,比如Monica Rogati曾經這麼發微博:

「我用LinkedIn數據研究創業者,發現他們比想象的老,學物理的比學護理或神學的多。也許是因為風投們很難投一個新的宗教吧?」

「我用Jawbone的數據研究天氣對運動的影響--紐約人沒有加州人那麼容易受天氣變化的影響,你們覺得是因為紐約人更強,還是他們主要在室內運動?」

「我結合BBC的訃告和維基,來看看2016這一年對名人來講,是不是真的很衰。」

如果你想學習某種技術的話,還可以這麼寫,比如:Shelby Sturgis:「我為老師和管理者做了個Web應用,通過分析學校排名、考試分數的變化和不同科目的成績,來幫助他們提高教育質量。我用了MySQL、Python、Javascript、Highcharts.js和D3.js,來存儲、分析和展示加州STAR考試數據。」

「我用了TensorFlow來自動對黑白照片上色和還原,幫奶奶做了這個拼貼圖--最棒的聖誕!」

想象自己在交流會和面試里反覆介紹,刊登在《今日美國》或《華爾街日報》上。你會覺得無聊,難以講清還是覺得自己聰明,並感到自豪?如果答案是否定的,就重新再找,或者回到上一步,直到找到2-3個信服的想法。 問問其他人--這個有意思嗎? 你願意麵試做這個的人,來做數據分析的工作嗎?

除了找數據和粗略地了解相關的技術和工具,此時你還沒有寫任何代碼,或者做任何具體分析。你可以很方便地多次重複這個階段,而不要太著急地一頭扎進某些教程或者課程,花幾個月時間毫無所獲。

開始干

分析數據。清洗。繪製圖表。重複。看看每個欄位常見的前十個值。研究一下異常值。看看分佈情況。如果數據不是很零散,可以把類似的值分組。分析相關度,處理缺失的數據。嘗試不同的聚類和分類演算法。調試。找找為什麼有的效果好,有的不好? 如果數據多的話,搭建AWS Data Pipeline。對非結構化數據嘗試用不同的NLP庫。可能會用到Spark,numpy, panda, nltk, 矩陣分解和TensorFlow。這些技術不是為了學而學,而是因為解決問題必須用到。

找個懂統計學、軟體工具或業務分析的朋友,會有很大幫助。每周花一個小時或每兩周聚一次,都會很快幫你理順思路,或者解決實際問題。

做個偵探,提出新的問題和新的方向。數據的收集方式是否合理? 引入另外的數據集會怎麼樣?這應該是個有趣的過程,偶爾遇到障礙時,可以向網上、論壇、老師或做相同工作的朋友求助。 如果感覺不好玩,就重新找個題目。如果感覺很差,就重新思考要不要當數據科學家。如果這部分不能讓你充滿幹勁,你很難堅持和干好真實數據工作中佔80%的乏味的苦活。

表達

用簡單的語言和乾淨、說服力強的圖表來一目了然地表達。 學會用可視化工具非常重要。 如果你建了個原型,可以做一個簡潔、有趣的演示或視頻。把技術細節和代碼放在鏈接里。發出去,並收集反饋。公開展示能讓你提高標準,得到高質量的代碼、表達和圖形結果。重複這一過程,逐漸就能形成自己的項目集,給招聘人員看,直到加入夢寐以求的團隊。

有沒有捷徑?

很多朋友從事市場、財務等工作,不具備統計學背景,更沒有編程經驗,如何轉向數據科學?

2016年底,一個朋友帶給我一個很典型的場景:她在一家醫療儀器公司,負責市場工作,積累了不少的數據,包括客戶、銷售、產品等方面,分別來自於CRM、財務和產品管理系統。最大的表100多G,維度也比較全面。公司希望能培養自己的數據科學家,她也很感興趣,問題是,如何開始?

一般來說,如果對Excel的統計函數(如sum, sumif, count,時間轉換等),vlookup和數據透視表比較熟悉,可以從可視化工具入手。如果公司有預算,可以考慮Tableau,Power BI等;也可以選用國內帆軟、魔鏡等。 Tableau的教學視頻比較系統,很容易從0基礎開始。

同時可以快速翻閱幾本經典書,包括《深入淺出數據分析》、《統計學》、《R語言實戰》、《深入淺出Python》等。對數據分析本身的使命、基本概念、常見方法等獲得總體了解,能讓你更快地找到自己的目標,為自己的項目整理思路。

同樣重要的,要以自己的項目為主線,限定期限,避免為技術細節,扎到浩瀚的資料里。遇到問題再去Quora、知乎、Stackoverlow、微信群和相關工具的論壇問問題,項目進展會快得多,有時候幾分鐘就會有人給你答案。 做完第一個項目之後,再逐漸用更複雜的指標、演算法或工具,再用一兩周時間做出下一個項目,以此類推。

即使完全沒基礎,也不用擔心。花點時間看看上面提到的書或可視化工具的教學視頻,大概了解數據分析的基本概念和方法,你就可以開始選自己的題目,開始探索數據科學家的星辰大海,迎接嶄新的未來。

作者介紹

楊暘,上海雅捷信息技術股份有限公司 產品總監,InfoQ社區編輯。美國賓州州立大學電子工程碩士, 曾就職於易鯨捷、Cisco Systems,Eastman Kodak等;2000年開始從事分散式多媒體通信系統研發,歷經電信運營商級的互聯網電話、安全監控/電子病歷/慢病管理大數據、OLTP-On-HBase的分散式資料庫等項目。現負責基於NVidia GPU的高速查詢加工引擎的售前、方案架構、技術市場等工作,興趣在於多GPU集群在關聯、聚合和模型計算的技術,以及在金融、電信及商業的應用。

GPU高速查詢統計和典型場景:從「小時」到「毫秒」級的進化

成長是永遠的話題。推薦一個對技術人員的成長很有幫助的線下會議,將於4月16~18日舉行的QCon全球軟體開發大會(北京站),目前已經邀請來自Google、Facebook、LinkedIn、Airbnb、百度、阿里巴巴、騰訊等公司的100多位一線技術專家,是難得的線下交流學習的機會。



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦