99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁職業(yè)發(fā)展分布教程:成為數(shù)據(jù)科學(xué)家
分布教程:成為數(shù)據(jù)科學(xué)家
2014-07-04
收藏
        1)學(xué)好python。

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

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

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

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

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

簡而言之,對于數(shù)據(jù)科學(xué)面臨的挑戰(zhàn),python可以讓你短平快地解決手中的問題,而不是擔(dān)心太多實(shí)現(xiàn)細(xì)節(jié)。


數(shù)據(jù)份分析師輔助


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

為什么統(tǒng)計學(xué)習(xí)很重要?

因?yàn)?,純粹?a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機(jī)器學(xué)習(xí)講究算法預(yù)測能力和實(shí)現(xiàn),但是統(tǒng)計一直就強(qiáng)調(diào)“可解釋性”。比如說,針對今天微博股票發(fā)行就上升20%,你把你的兩個預(yù)測股票上漲還是下跌的model套在新浪的例子上,然后給你的上司看。
        Model-1有99%的預(yù)測能力,也就是99%的情況下它預(yù)測對,但是Model-2有95%,不過它有例外的一個附加屬性——可以告訴你為什么這個股票上漲或者下跌。

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

顯然是后者。因?yàn)榍罢唠m然有很強(qiáng)的預(yù)測力(機(jī)器學(xué)習(xí)),但是沒有解釋能力(統(tǒng)計解釋)。

而作為一個數(shù)據(jù)科學(xué)家,80%的時間你是需要跟客戶,團(tuán)隊(duì)或者上司解釋為什么A可行B不可行。如果你告訴他們,“我現(xiàn)在的神經(jīng)網(wǎng)絡(luò)就是能有那么好的預(yù)測力可是我根本就沒法解釋上來”,那么,沒有人會愿意相信你。

具體一些,怎么樣學(xué)習(xí)統(tǒng)計學(xué)習(xí)?

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

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

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

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

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

如果你剛開始入門,沒有關(guān)系,回答不出來這些問題很正常。如果你是一個二吊子,體會一下,為什么你跟一流的data scientist還有些差距——因?yàn)槟悴涣私饷總€算法是怎么工作,當(dāng)你想要把你的問題用那個算法解決的時候,面對無數(shù)的細(xì)節(jié),你就無從下手了。

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

其實(shí)學(xué)數(shù)據(jù)科學(xué)也一樣,沉下心來,練習(xí)匠藝。

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

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

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

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

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

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

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

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

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

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

betaworks首席數(shù)據(jù)科學(xué)家,Gilad Lotan的博客, Gilad Lotan
Hilary Mason,bitly首席科學(xué)家,紐約地區(qū)人盡皆知的數(shù)據(jù)科學(xué)家:hilarymason.com

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

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

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

【1】Introduction to Probability and Statistics
        【2】Hastie, Trevor, et al. The elements of statistical learning. Vol. 2. No. 1. New York: Springer, 2009. 免費(fèi)版
        【3】Bishop, Christopher M. Pattern recognition and machine learning. Vol. 1. New York: springer, 2006.
        【4】Introduction to Statistical Learning 免費(fèi)版
        【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/

數(shù)據(jù)分析咨詢請掃描二維碼

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

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗(yàn)證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }