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

熱線(xiàn)電話(huà):13121318867

登錄
首頁(yè)精彩閱讀數(shù)學(xué)vs編程,哪個(gè)才是數(shù)據(jù)科學(xué)的敲門(mén)磚?
數(shù)學(xué)vs編程,哪個(gè)才是數(shù)據(jù)科學(xué)的敲門(mén)磚?
2019-12-18
收藏
數(shù)學(xué)vs編程,哪個(gè)才是數(shù)據(jù)科學(xué)的敲門(mén)磚?

作者 | Low Wei Hong

譯者 | Sambodhi

導(dǎo)讀:數(shù)據(jù)科學(xué)其實(shí)就是一門(mén)數(shù)學(xué)、計(jì)算機(jī)、軟件相關(guān)的復(fù)合型的技術(shù),離開(kāi)編程自然是無(wú)法存在的。無(wú)論是數(shù)據(jù)科學(xué)家還是數(shù)據(jù)分析師,都需要跨學(xué)科人才,必須知道如何操作代碼以便告訴計(jì)算機(jī)如何分析數(shù)據(jù)。他們要比軟件工程師更擅長(zhǎng)統(tǒng)計(jì)學(xué),比統(tǒng)計(jì)學(xué)家更擅長(zhǎng)軟件工程,需要掌握的知識(shí)有數(shù)學(xué)統(tǒng)計(jì)、編程能力、機(jī)器學(xué)習(xí)、研究能力等。

如果我了解機(jī)器學(xué)習(xí)算法的全部數(shù)學(xué)邏輯,但我卻不能很好地進(jìn)行編程,那我還有機(jī)會(huì)進(jìn)入數(shù)據(jù)科學(xué)領(lǐng)域嗎? 如果我只是勉強(qiáng)了解哪些機(jī)器學(xué)習(xí)算法背后的數(shù)學(xué)知識(shí),但我可以很好地進(jìn)行編程,那我有沒(méi)有資格成為一名數(shù)據(jù)科學(xué)家?

我希望,在我大學(xué)畢業(yè)前努力進(jìn)入數(shù)據(jù)科學(xué)領(lǐng)域之前就能知道這個(gè)答案是什么。

先說(shuō)一下我的背景。我有數(shù)學(xué)背景,但在大學(xué)期間并沒(méi)有學(xué)過(guò)多少編程課程。我在大學(xué)學(xué)過(guò)的編程語(yǔ)言包括 R、C++ 和 Matlab。

Matlab 并不是開(kāi)源語(yǔ)言,主要用于研究行業(yè)。R 沒(méi)有 Python 那樣擁有龐大的社區(qū),尤其是在數(shù)據(jù)科學(xué)相關(guān)的庫(kù)中。C++(C 族)仍然是編程的基礎(chǔ)。所以如果你正在學(xué)習(xí)編程的話(huà),我還是建議你學(xué)習(xí) C 族的語(yǔ)言。

當(dāng)我在實(shí)習(xí)期間,Python 在這個(gè)行業(yè)使用得最多。因此,我仍然需要自己去學(xué)習(xí) Python。此外,我就只選修了一門(mén)與數(shù)學(xué)有關(guān)的機(jī)器學(xué)習(xí)課程。

我感到有些不知所措,因?yàn)?,我不僅要學(xué)習(xí)數(shù)學(xué),同時(shí)還要提高我的編程技能。因此,當(dāng)時(shí)我就在想,我應(yīng)該將更多的精力放在編程上呢,還是放在學(xué)習(xí)數(shù)學(xué)上呢?

數(shù)學(xué)vs編程,哪個(gè)才是數(shù)據(jù)科學(xué)的敲門(mén)磚?

數(shù)學(xué),還是編程?

我將分享我的觀點(diǎn),即在目前的行業(yè)中,哪一個(gè)實(shí)際上更受歡迎。

讓我來(lái)問(wèn)你一個(gè)問(wèn)題。如果你是數(shù)據(jù)科學(xué)的技術(shù)主管,并且手下已經(jīng)有很多博士在為你工作,同時(shí),你還想擴(kuò)大團(tuán)隊(duì)?,F(xiàn)在你心目中有兩個(gè)候選人,其中一個(gè)更擅長(zhǎng)編程,另一個(gè)更擅長(zhǎng)數(shù)學(xué)概念。那么,你會(huì)選擇哪一個(gè)候選人呢?

這個(gè)問(wèn)題并沒(méi)有正確或錯(cuò)誤的答案,但跟據(jù)我的觀察,他們通常會(huì)喜歡在編程方面擁有更好技能的那些人。

你可能會(huì)想,為什么會(huì)是這樣呢?

原因很簡(jiǎn)單,因?yàn)榇蠖鄶?shù)數(shù)據(jù)科學(xué)項(xiàng)目的方向,都是由博士提供的,他們應(yīng)該有更多的知識(shí)。因此,能夠更快地實(shí)現(xiàn)多種方法的人,將是最后一個(gè)堅(jiān)持到底的人。

然后,你可能會(huì)問(wèn),都說(shuō)統(tǒng)計(jì)是數(shù)據(jù)科學(xué)的基礎(chǔ),而你卻告訴我,為了進(jìn)入數(shù)據(jù)科學(xué)領(lǐng)域,只需學(xué)習(xí)如何編程就可以了?

不是的,數(shù)學(xué)在數(shù)據(jù)科學(xué)中仍然非常重要。 那些更懂?dāng)?shù)學(xué)的人,將會(huì)是能夠提出新想法來(lái)改進(jìn)機(jī)器學(xué)習(xí)模型的那些人。

目前市場(chǎng)上有大量的機(jī)器學(xué)習(xí)模型。因此,知道在什么樣的場(chǎng)景中使用哪些模型,肯定會(huì)為你節(jié)省大量時(shí)間。此外,當(dāng)之前表現(xiàn)很好的模型,突然開(kāi)始出現(xiàn)性能下降時(shí),你就能找出可能的原因了。

但是,如果你只是想進(jìn)入數(shù)據(jù)科學(xué)領(lǐng)域的話(huà),就不需要在數(shù)學(xué)部分深入研究太多細(xì)節(jié)。數(shù)據(jù)科學(xué)并不只是關(guān)于如何推導(dǎo)或求解數(shù)學(xué)方程式。 更重要的是,要 知道如何定義并解決業(yè)務(wù)問(wèn)題。

例如,你在一家電子商務(wù)公司工作。你得到一個(gè)任務(wù),讓你實(shí)現(xiàn)對(duì)列表進(jìn)行自動(dòng)分類(lèi)??赡?,你需要做的第一步就是定義問(wèn)題,也許是說(shuō)明你需要實(shí)現(xiàn)的時(shí)間表和正確性。下一步,你將考慮模型可能面臨的一些問(wèn)題,并需要澄清這些問(wèn)題。

假設(shè),如果列表名稱(chēng)和圖片屬于不同的類(lèi)別,那么應(yīng)該如何對(duì)列表進(jìn)行分類(lèi)?是按圖片進(jìn)行分類(lèi)呢,還是按列表名稱(chēng)進(jìn)行分類(lèi)呢?

在理解了你的團(tuán)隊(duì)同意的標(biāo)準(zhǔn)作業(yè)程序(Standard Operating Procedure,SOP)之后,那么只有你才能啟動(dòng)這個(gè)項(xiàng)目。

數(shù)學(xué)vs編程,哪個(gè)才是數(shù)據(jù)科學(xué)的敲門(mén)磚?

回到主題,數(shù)據(jù)科學(xué)迫切需要的技能之一是 分叉 GitHub 代碼并在數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)的能力。因此,如果你擅長(zhǎng)編程的話(huà),那么無(wú)論編程語(yǔ)言是什么,你都能夠測(cè)試不同的方法。

例如,你正在使用給定的數(shù)據(jù)集來(lái)訓(xùn)練 NER(Name Entity Recognition,命名實(shí)體識(shí)別)模型。讓我們想象一下,目前還沒(méi)有人用 Python 在 NER 上編寫(xiě)代碼,而唯一可用的代碼,由斯坦福大學(xué)提供,用 Java 編寫(xiě)的。遇到這種情況應(yīng)該怎么辦?因此,掌握不同編程語(yǔ)言的知識(shí)絕對(duì)是一個(gè)加分項(xiàng),這樣,你就可以節(jié)省用 Python 編寫(xiě)整個(gè)代碼的時(shí)間,以便訓(xùn)練模型。

另一方面,如果你深入學(xué)習(xí)機(jī)器學(xué)習(xí)的數(shù)學(xué)部分,你就 會(huì)對(duì)你應(yīng)該關(guān)注哪些指標(biāo)更加敏感,這要取決于不同的問(wèn)題。 假設(shè)你正在從事一個(gè)信用欺詐項(xiàng)目。你應(yīng)該關(guān)注的指標(biāo)就不再是正確性,而應(yīng)該是 f1-score 等。因?yàn)槟愕哪繕?biāo)是不僅能夠識(shí)別盡可能多的欺詐案件,而且還要保持準(zhǔn)確率。

最后的感想

在數(shù)據(jù)科學(xué)領(lǐng)域中,數(shù)學(xué)和編程同等重要,但如果你正考慮在數(shù)據(jù)科學(xué)領(lǐng)域轉(zhuǎn)行或者開(kāi)始你的職業(yè)生涯,我想說(shuō)的是,對(duì)于各種機(jī)器學(xué)習(xí)模型來(lái)說(shuō),掌握編程技能要比深入鉆研數(shù)學(xué)更為重要。

開(kāi)始進(jìn)行更多的實(shí)際項(xiàng)目,并能夠在面試過(guò)程中清晰地陳述和回答問(wèn)題,這肯定會(huì)增加你進(jìn)軍數(shù)據(jù)科學(xué)領(lǐng)域的機(jī)會(huì)。

進(jìn)入數(shù)據(jù)科學(xué)領(lǐng)域可沒(méi)那么容易,但請(qǐng)記住,不要放棄,繼續(xù)努力!

你所有的努力很快就會(huì)有回報(bào),不管有多難,要堅(jiān)持你正在做的事情。

數(shù)據(jù)分析咨詢(xún)請(qǐng)掃描二維碼

若不方便掃碼,搜微信號(hào):CDAshujufenxi

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

OK
客服在線(xiàn)
立即咨詢(xún)
客服在線(xiàn)
立即咨詢(xún)
') } 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)的第一個(gè)參數(shù)驗(yàn)證碼對(duì)象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶(hù)后臺(tái)檢測(cè)極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說(shuō)明請(qǐng)參見(jiàn):http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".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 = '請(qǐng)輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請(qǐng)輸入正確的'+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); }