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

熱線電話:13121318867

登錄
首頁精彩閱讀數(shù)據(jù)科學家和工程師的“五誡”
數(shù)據(jù)科學家和工程師的“五誡”
2016-08-25
收藏

數(shù)據(jù)科學家和工程師的“五誡”

在實際的工作中,數(shù)據(jù)科學家們不僅要學會如何實用工具,還要懂得如何與同事合作。The Yhat Blog這篇文章探討了在實際的數(shù)據(jù)建模和數(shù)據(jù)處理的過程中數(shù)據(jù)科學家和數(shù)據(jù)工程師應該如何處理好關系順利地完成項目的問題。它引用“摩西十誡”的典故, 提出了給數(shù)據(jù)處理者的五個“誡律”。我們一起來參考一下!


1.了解你的數(shù)據(jù)

好的模型依賴于好的數(shù)據(jù)。要建立真正具有生產(chǎn)力的模型,數(shù)據(jù)科學家需要知道他們基于創(chuàng)造和存儲產(chǎn)品的數(shù)據(jù)庫是否可靠,以及數(shù)據(jù)庫更新的頻率。這些信息在項目開始之前就應該被收集并且分享給工程團隊,以避免項目進程之中可能產(chǎn)生的阻礙。

在 一個理想的世界里,科學家和工程師都應該提前做好應對即將發(fā)生的變化的準備(例如,多種變量類型之間的變化),使他們能夠據(jù)此共同創(chuàng)建,測試和部署相應的 新版本。即使不能夠保證避免每一個程序中的事故,共享資源和盡早發(fā)現(xiàn)缺陷也可以使工程師們降低風險和預見解決可能出現(xiàn)問題的部分。

2.熟悉合作伙伴使用的工具

數(shù) 據(jù)科學家運用的主要編程語言是R或Python,這種語言便于數(shù)據(jù)的清潔,探索和建模。而工程師,卻需要使用多種不同的工具集來構(gòu)建可擴展的網(wǎng)絡和移動應 用程序(例如,NET、Ruby on Rails、Node.js 或 JVM)。雖然期望一個人完全懂得使用這兩套工具是不切合實際的,但是跨過技術(shù)“藩籬”的限制對對方使用的語言和流程有一個基本的了解將大大有助于合作的 開展。

將統(tǒng)計代碼手動重新編寫為另一種語言是一項費時費力又極其容易犯錯的工程,所以當出現(xiàn)問題的擔憂增加的時候,建立良好的溝通機制(面對面和網(wǎng)絡數(shù)字化的)絕對是至關重要的。

3.了解技術(shù)的局限

數(shù)據(jù)科學家和工程師運用不同的工具包工作的時候必然會遇到技術(shù)的限制。這常常使他們發(fā)狂,因為沒有人喜歡被要求返工,或者看著自己辛勤勞作創(chuàng)造出來的產(chǎn)品不理想,甚至更糟糕,看到自己的辛勤勞動付諸東流。

一 旦你清楚了模型開發(fā)和部署所需要使用的語言(見誡條2),就應該花時間研究一下使用這種語言做什么是可能的,什么是完全不能夠?qū)崿F(xiàn)的。然后就應該設定定期 的跨職能討論會的時間表,科學家和工程師雙方要經(jīng)常溝通例如:你考慮在哪些方面做一些突破?雙方在哪些地方可以做出讓步?哪些又是技術(shù)完全實現(xiàn)不了的?有 沒有其他選擇?要實施需要付出多少努力?這些努力符合商業(yè)價值的考量嗎?

在實際工作 中,假設你是一個數(shù)據(jù)科學家正在為一個Ruby編寫的APP編寫一段使用R語言的反欺詐算法,那么你應該知道的是R的GLM功能(用于構(gòu)建廣義線性模型的 函數(shù)),在Ruby(或Java,對這個問題來說)中并沒有相對應的本地功能。這時候就需要大家一起來一場頭腦風暴來找尋出路啦。

4.互相尊重

在任何時候,一個數(shù)據(jù)科學家的工作總是需要大家共同的努力才能夠完成,在這個過程中充滿了產(chǎn)生誤解的可能。那我們的建議是什么呢?就是像老話講的,己所不欲,勿施于人。

對于數(shù)據(jù)科學家來說,你要做的就是寫出便于維護和使用的高質(zhì)量的代碼,積極聽取工程師關于重構(gòu)模型和采取更好替代方法的建議,詢問他們怎樣才是一個現(xiàn)實的可實行的時間表,你還能提供哪些幫助等。

對于工程師來說,與數(shù)據(jù)科學家合作,需要明確必須的職責,并且共同商討達成一份書面的處理問題的優(yōu)先次序文件,遵循一個不斷更新的和現(xiàn)實的路線圖,并根據(jù)項目的進程不斷檢驗、細化和落實科學的數(shù)據(jù)模型。

5.履行你的責任和義務

有人認為一個模型一旦創(chuàng)造出來,并且投入了實際的商業(yè)運用,無論是創(chuàng)造它的數(shù)據(jù)科學團隊,還是實現(xiàn)了它的工程師們就可以自由地著手下一個大項目,不需要再管理這個項目了。這種想法是非常危險的。事實上,這只是分析的生命周期的另一階段的開始。

因 為,數(shù)據(jù)科學家和工程師建立生產(chǎn)過程中的監(jiān)控和管理模型的計劃是非常重要的。誰將會監(jiān)督模型和服務器的穩(wěn)定性?如何將輸入和輸出數(shù)據(jù)存儲和共享?升級版 本,再培訓和重新測試的路線圖是什么?還要為解決可能出現(xiàn)的問題制作一個行動計劃。如果模型吞吐量增加怎么辦?擴展需要花費多少時間和金錢?由此確定共同 承認的公平的前期職責劃分,相應地分配團隊成員的工作時間。

總結(jié)

數(shù)據(jù)科學家和數(shù)據(jù)工程師都在朝著同一個目標努力:運用代碼建造程序來解決實際的商業(yè)問題。不幸的是,誤解和技術(shù)效率低下常常導致人們忽略了這一目標。當我們 在工作中處理和他人的關系的時候,雖然沒有萬能的神奇公式,但是這五個誡律應該可以在消除數(shù)據(jù)工程師和數(shù)據(jù)科學家之間的鴻溝上產(chǎn)生深遠的影響。

數(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(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗證碼對象,之后可以使用它調(diào)用相應的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 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); }