熱線電話:13121318867

登錄
首頁職業發展分布教程:成為數據科學家
分布教程:成為數據科學家
2014-07-04
收藏
        1)學好python。

現在幾乎所以公司的數據都可以api給你,而python的數據處理能力強大且方便。加之在machine learning的很多算法上,python也獨俏一方。另外,它的簡明方便迅速迭代開發,15分鐘寫完個算法就可以看效果了。

除此之外,py還有點酷酷的感覺。任何程序拿Matlab和c++都是可以寫的,不過我真沒認識過哪個愿意自己把自己扔那個不酷的框框里。

對不規則輸入的處理也給python一個巨大的優勢。通常來說,在我現在日常的工作里,所有的數據都是以純文本但是非格式的形式存儲的(raw text, unstructured data)。問題在于,這些文本不可以直接當作各種算法的輸入,你需要

  • 分詞,分句
  • 提取特征
  • 整理缺失數據
  • 除掉異類(outlier)

在這些時候,python可謂是神器。這里做的1-4都可以直接在scikit-learn里面找到對應的工具,而且,即使是要自己寫一個定制的算法處理某些特殊需求,也就是一百行代碼的事情。

簡而言之,對于數據科學面臨的挑戰,python可以讓你短平快地解決手中的問題,而不是擔心太多實現細節。


數據份分析師輔助


        2)學好統計學習
        略拗口。統計學習的概念就是“統計機器學習方法”。
        統計和計算機科學前幾十年互相平行著,互相造出了對方造出的一系列工具,算法。但是直到最近人們開始注意到,計算機科學家所謂的機器學習其實就是統計里面的prediction而已。因此這兩個學科又開始重新融合。

為什么統計學習很重要?

因為,純粹的機器學習講究算法預測能力和實現,但是統計一直就強調“可解釋性”。比如說,針對今天微博股票發行就上升20%,你把你的兩個預測股票上漲還是下跌的model套在新浪的例子上,然后給你的上司看。
        Model-1有99%的預測能力,也就是99%的情況下它預測對,但是Model-2有95%,不過它有例外的一個附加屬性——可以告訴你為什么這個股票上漲或者下跌。

試問,你的上司會先哪個?問問你自己會選哪個?

顯然是后者。因為前者雖然有很強的預測力(機器學習),但是沒有解釋能力(統計解釋)。

而作為一個數據科學家,80%的時間你是需要跟客戶,團隊或者上司解釋為什么A可行B不可行。如果你告訴他們,“我現在的神經網絡就是能有那么好的預測力可是我根本就沒法解釋上來”,那么,沒有人會愿意相信你。

具體一些,怎么樣學習統計學習?

  • 先學好基本的概率學。如果大學里的還給老師了(跟我一樣),那么可以從MIT的概率論教材【1】入手。從第1章到第9章看完并做完所有的習題。(p.s.面試Twitter的時候被問到一個拿球后驗概率的問題,從這本書上抓來的)。
  • 了解基本的統計檢驗及它們的假設,什么時候可以用到它們。
  • 快速了解統計學習有哪些術語,用來做什么目的,讀這本【5】。
  • 學習基本的統計思想。有frequentist的統計,也有bayesian的統計。前者的代表作有【2】,后者看【3】。前者是統計學習的圣書,偏frequentist,后者是pattern recognition的圣書,幾乎從純bayesian的角度來講。注意,【2】有免費版,作者把它全放在了網上。而且有一個簡易版,如果感覺力不從心直接看【2】,那么可以先從它的簡易版開始看。簡易版【4】是作者在coursera上開課用的大眾教材,簡單不少(不過仍然有很多閃光點,通俗易懂)。對于【3】,一開始很難直接啃下來,但是啃下來會受益匪淺。

注意,以上的書搜一下幾乎全可以在網上搜到別人傳的pdf。有條件的同學可以買一下紙制版來讀,體驗更好并且可以支持一下作者。所有的書我都買了紙制版,但是我知道在國內要買本書有多不方便(以及原版書多貴)。

讀完以上的書是個長期過程。但是大概讀了一遍之后,我個人覺得是非常值得的。如果你只是知道怎么用一些軟件包,那么你一定成不了一個合格的data scientist。因為只要問題稍加變化,你就不知道怎么解決了。

如果你感覺自己是一個二吊子數據科學家(我也是)那么問一下下面幾個問題,如果有2個答不上來,那么你就跟我一樣,真的還是二吊子而已,繼續學習吧。

  • 為什么在神經網絡里面feature需要standardize而不是直接扔進去
  • 對Random Forest需要做Cross-Validatation來避免overfitting嗎?
  • 用naive-bayesian來做bagging,是不是一個不好的選擇?為什么?
  • 在用ensembe方法的時候,特別是Gradient Boosting Tree的時候,我需要把樹的結構變得更復雜(high variance, low bias)還是更簡單(low variance, high bias)呢?為什么?

如果你剛開始入門,沒有關系,回答不出來這些問題很正常。如果你是一個二吊子,體會一下,為什么你跟一流的data scientist還有些差距——因為你不了解每個算法是怎么工作,當你想要把你的問題用那個算法解決的時候,面對無數的細節,你就無從下手了。

說個題外話,我很欣賞一個叫Jiro的壽司店,它的店長在(東京?)一個最不起眼的地鐵站開了一家全世界最貴的餐館,預訂要提前3個月。怎么做到的?70年如一日練習如何做壽司。70年!除了喪娶之外的假期,店長每天必到,8個小時工作以外繼續練習壽司做法。

其實學數據科學也一樣,沉下心來,練習匠藝。

3)學習數據處理
這一步不必獨立于2)來進行。顯然,你在讀這些書的時候會開始碰到各種算法,而且這里的書里也會提到各種數據。但是這個年代最不值錢的就是數據了(拜托,為什么還要用80年代的“加州房價數據”?),值錢的是數據分析過后提供給決策的價值。那么與其糾結在這么悲劇的80年代數據集上,為什么不自己搜集一些呢?

  • 開始寫一個小程序,用API爬下Twitter上隨機的tweets(或者weibo吧。。。)
  • 對這些tweets的text進行分詞,處理噪音(比如廣告)
  • 用一些現成的label作為label,比如tweet里會有這條tweet被轉發了幾次
  • 嘗試寫一個算法,來預測tweet會被轉發幾次
  • 在未見的數據集上進行測試

如上的過程不是一日之功,尤其剛剛開始入門的時候。慢慢來,耐心大于進度。

4)變成全能工程師(full stack engineer)
在公司環境下,作為一個新入職的新手,你不可能有優待讓你在需要寫一個數據可視化的時候,找到一個同事來給你做。需要寫把數據存到數據庫的時候,找另一個同事來給你做。

況且即使你有這個條件,這樣頻繁切換上下文會浪費更多時間。比如你讓同事早上給你塞一下數據到數據庫,但是下午他才給你做好?;蛘吣阈枰荛L時間給他解釋,邏輯是什么,存的方式是什么。

最好的變法,是把你自己武裝成一個全能工作師。你不需要成為各方面的專家,但是你一定需要各方面都了解一點,查一下文檔可以上手就用。

  • 會使用NoSQL。尤其是MongoDB
  • 學會基本的visualization,會用基礎的html和javascript,知道d3【6】這個可視化庫,以及highchart【7】
  • 學習基本的算法和算法分析,知道如何分析算法復雜度。平均復雜度,最壞復雜度。每次寫完一個程序,自己預計需要的時間(用算法分析來預測)。推薦普林斯頓的算法課【8】(注意,可以從算法1開始,它有兩個版本)
  • 寫一個基礎的服務器,用flask【9】的基本模板寫一個可以讓你做可視化分析的backbone。
  • 學習使用一個順手的IDE,VIM, pycharm都可以。

4)讀,讀,讀!
除了閉門造車,你還需要知道其它數據科學家在做些啥。涌現的各種新的技術,新的想法和新的人,你都需要跟他們交流,擴大知識面,以便更好應對新的工作挑戰。

通常,非常厲害的數據科學家都會把自己的blog放到網上供大家參觀膜拜。我推薦一些我??吹?。另外,學術圈里也有很多厲害的數據科學家,不必怕看論文,看了幾篇之后,你就會覺得:哈!我也能想到這個!

讀blog的一個好處是,如果你跟他們交流甚歡,甚至于你可以從他們那里要一個實習來做!

betaworks首席數據科學家,Gilad Lotan的博客, Gilad Lotan
Hilary Mason,bitly首席科學家,紐約地區人盡皆知的數據科學家:hilarymason.com

在它們這里看夠了之后,你會發現還有很多值得看的blog(他們會在文章里面引用其它文章的內容),這樣滾雪球似的,你可以有夠多的東西早上上班的路上讀了:)

5)要不要上個研究生課程?

對于是不是非要去上個研究生(尤其要不要到美國上),我覺得不是特別有必要。如果你收到了幾個著名大學數據科學方向的錄取,那開開心心地來,你會學到不少東西。但是如果沒有的話,也不必糾結。我曾有幸上過或者旁聽過美國這里一些頂級名校的課程,我感覺它的作用仍然是把你領進門,以及給你一個能跟世界上最聰明的人一個交流機會(我指那些教授)。除此之外,修行都是回家在寢室進行的。然而現在世界上最好的課程都擺在你的面前,為什么還要舍近求遠呢。

【1】Introduction to Probability and Statistics
        【2】Hastie, Trevor, et al. The elements of statistical learning. Vol. 2. No. 1. New York: Springer, 2009. 免費版
        【3】Bishop, Christopher M. Pattern recognition and machine learning. Vol. 1. New York: springer, 2006.
        【4】Introduction to Statistical Learning 免費版
        【5】Wasserman, Larry. All of statistics: a concise course in statistical inference. Springer, 2004.
        【6】d3js.org/
        【7】.highcharts.com/
        【8】Coursera.org
        【9】flask.pocoo.org/

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢