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

熱線電話:13121318867

登錄
首頁精彩閱讀數(shù)據(jù)定義的挑戰(zhàn)
數(shù)據(jù)定義的挑戰(zhàn)
2016-04-03
收藏

數(shù)據(jù)定義的挑戰(zhàn)

從數(shù)據(jù)科學的角度看,這次航天仼務的失利是數(shù)據(jù)定義沒有做好,正所謂“失之毫厘,謬以千里”。數(shù)據(jù)定義是數(shù)據(jù)收集和分析的基礎,看似簡單,想要在實踐中做好卻并不容易。尤其是在大數(shù)據(jù)系統(tǒng)中(如宇航工程),維護數(shù)據(jù)定義的正確性和一致性就更具挑戰(zhàn)性了。

數(shù)據(jù)定義有兩個要素,一個是關于定義的概念,另一個是關于定義的測度。前者可被稱為概念定義,而后者可被稱為操作定義。好的數(shù)據(jù)定義應該同時具有清晰的概念定義和操作定義?;鹦菤夂蛱綔y者號的悲劇就是操作定義沒有在系統(tǒng)中做到一致性而導致的。


而在另一些應用場合,概念定義可能成為問題的癥結所在。一家國內(nèi)著名電商的大數(shù)據(jù)負責人曾經(jīng)告訴我,一個讓他們非常頭疼的問題就是應該如何定義什么是一筆“訂單”。從IT人的角度,“訂單”的概念似乎應是很簡單的,那就是顧客一次付款購買的全部商品。然而實際卻遠比這個復雜。比如說,有時候下單之后,后臺發(fā)現(xiàn)某個產(chǎn)品斷貨,然后征得顧客同意取消了原訂單中的這一項產(chǎn)品。這樣就有了兩種訂單的定義,初始訂單和真正執(zhí)行的訂單。接著在倉庫配送時,一張訂單可能會被拆成兩次或多次送貨。這樣一個訂單在運營記錄中變成了幾張單子,在財務那邊也造成了多張發(fā)票。最后,顧客可能發(fā)現(xiàn)自己不喜歡購買的一些產(chǎn)品而要求退貨。結果一張訂單的實收款往往有別于下單時的金額和配送時的金額。這樣以來一筆訂單到底該如何定義,一張訂單的金額和包含的產(chǎn)品數(shù)到底該如何計算,就成了個棘手問題。

重要的是,這一數(shù)據(jù)定義不僅是個技術問題,而且還有戰(zhàn)略層面的意義。從營銷和客戶關系管理的角度看,訂單的定義需要能反映顧客購買次數(shù)和(考慮退貨后的)實際消費金額。但是從運營管理的角度,訂單的定義最好能反映實際配送成本和配送質(zhì)量(如遞送速度,準確率等);因此拆分后的實際配送訂單對運營決策更具意義。而在公司高層決策者看來,以上各種的訂單概念都有其重要性和對應的管理作用,因此都希望保留。所以對數(shù)據(jù)部門來說,挑戰(zhàn)一下就大了起來。因為不僅要在系統(tǒng)中維護不同的訂單定義,而且還要注意及時提醒使用數(shù)據(jù)的決策者當前看到的數(shù)據(jù)和分析結果是基于何種訂單概念。因為不同部門有自己對數(shù)據(jù)定義的偏好,在提供數(shù)據(jù)圖表時還要盡量給出個性化的定制。

更多的時候,清晰的概念定義和操作定義都不容易給出。筆者曾經(jīng)給一家著名的跨國石油公司做過零售方面的咨詢,是關于其在全球各個自有加油站的定價優(yōu)化。要給某個加油站做定價優(yōu)化,知道其競爭對手是誰應是必不可少的??墒歉偁帉κ值降自撛趺炊x呢?競爭的概念似乎是不言而喻的,但是不言而喻恰恰正是隱患所在。強調(diào)數(shù)據(jù)科學,就是要消除這些隱患,把概念清晰地表達出來。

從經(jīng)濟學角度,對于競爭對手的嚴格定義應該是:如果至少有一部分消費者在購買時會考慮在A和B中做出選擇,那么B是A的競爭者。但是這一定義卻缺乏可操作性。該公司收集了自己加油站每天每時段的銷售情況,但只能追蹤同城其它加油站的每天定價和廣告變化。另外,對于持品牌積分卡的顧客,他們在該公司的消費情況能被完整地追蹤,但是他們是否也加過其它品牌的油就不得而知了。

經(jīng)過一番仔細思考,我們決定采用如下的定義:B加油站是A加油站的競爭者,如果B的營銷活動(如價格降低、廣告等)對A的銷量有負面影響。這一定義符合我們對競爭的一般理解,而且還考慮到了數(shù)據(jù)收集的可行性,所需的數(shù)據(jù)都是已經(jīng)有了的??墒羌幢阌辛诉@個定義,操作起來還是充滿了挑戰(zhàn)。首先,澘在競爭者的范圍該如何定?離A一公里,五公里?還有更遠的可能性因為消費者可能會比較居住地附近的加油站和上班地附近的加油站。大數(shù)據(jù)在這一點上能幫助我們。比如說我們可以把網(wǎng)撒得很大,擴大到一百公里的半徑,把潛在的競爭者都查一遍。

可是下一個問題又來了:我們怎么判斷B的營銷活動(如價格變化,廣告等等)對A的銷量有影響呢?和有些流行大數(shù)據(jù)讀物所宣稱的不同,我們發(fā)現(xiàn)單純看相關性并不可行。

舉個例子,由于原油價格上升,B提了價,而消費者也總體減少了開車的里程。這樣從數(shù)據(jù)上我們看到的是B的價格提升往往伴隨著A的銷量減少,這似乎意味著B不是A的競爭者,而事實則可能正好相反。

最后我們的解決方案是放棄了尋找A的具體競爭對手的想法,而是把所有A以外的加油站的營銷活動匯總起來做成一個A的市場環(huán)境指數(shù),再基于這一指數(shù)做出A的定價優(yōu)化。其中的細節(jié)十分復雜,篇幅所限,就不贅述了。

以上的這些例子讓我們看到數(shù)據(jù)定義的問題看似簡單,也因此往往被忽視,但是這其中的挑戰(zhàn)不可不察。所謂“千里之行,始于足下”,“好的開端是成功的一半”,這些用來描述數(shù)據(jù)定義的重要性決不為過。要用好大數(shù)據(jù),我們必須對數(shù)據(jù)定義慎而慎之。

數(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); }