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

熱線電話:13121318867

登錄
首頁精彩閱讀數(shù)據(jù)挖掘應(yīng)用開發(fā)中的辯證法
數(shù)據(jù)挖掘應(yīng)用開發(fā)中的辯證法
2015-12-31
收藏

數(shù)據(jù)挖掘應(yīng)用開發(fā)中的辯證法

數(shù)據(jù)挖掘應(yīng)用的開發(fā)流程見下圖,因為數(shù)據(jù)挖掘應(yīng)用整個開發(fā)流程是一個探索的過程,所以各個過程之間不是嚴格分開的。

  

1、問題與數(shù)據(jù)

 

  

數(shù)據(jù)挖掘應(yīng)用,是數(shù)據(jù)驅(qū)動的應(yīng)用,不同的用戶,因訴求不同,觀察同樣的數(shù)據(jù),理解也不盡相同。在瀏覽數(shù)據(jù)時,建議不斷問自己:用戶是誰?分析的對象是誰?要解決什么問題?只有不斷的提醒自己,才能保證分析過程的始終有一條清晰的主軸,這是在分析傳統(tǒng)應(yīng)用時非常不同的地方。傳統(tǒng)的應(yīng)用,需要解決的問題是很清晰的,已具備的條件也是清楚的,缺少的就是設(shè)計和實現(xiàn)。

定義問題階段,具體的問題,可能對最終方案直接產(chǎn)生較大影響的時,解決這個問題,最終的硬件需要多少?譬如:通過信令數(shù)據(jù)分析手機用戶的常駐點行為。一個應(yīng)用是給公安系統(tǒng)開放接口:輸入一個手機號,將指定用戶最近的常駐點顯示出來。另一個應(yīng)用是給交通部門開放接口,根據(jù)用戶群體的行為,規(guī)劃道路設(shè)計。這兩類應(yīng)用,從數(shù)據(jù)分析角度觀察都不大,都是常駐點分析,但從具體的應(yīng)用觀察,系統(tǒng)架構(gòu)設(shè)計完全就不是一回事了。

2、數(shù)據(jù)預(yù)處理與模型選擇和驗證


解決相同的問題,可以有多個模型,不同的模型,對數(shù)據(jù)格式有不同的要求。數(shù)據(jù)的預(yù)處理過程與模型緊密相關(guān)。同樣是解決聚類問題的算法,有的算法能夠直接處理大、中、小這樣的數(shù)據(jù)類型,有的算法需要大中小轉(zhuǎn)換成 0、1、2這樣的數(shù)字才能處理。

選擇一個模型時,最終的分析結(jié)果可能并不理想,這時不能輕易的否定掉這個模型,如果數(shù)據(jù)預(yù)處理不到位,好的模型也會產(chǎn)生不好的結(jié)果。反過來,選錯了模型,數(shù)據(jù)預(yù)處理模塊再怎么努力,效果也不會有本質(zhì)的提高。對于系統(tǒng)設(shè)計人員,除了知道不同的分析模型對應(yīng)解決的問題,還需要知道每個分析模型適用范圍和先決條件。

數(shù)據(jù)預(yù)處理過程還有一個誤區(qū),原始的數(shù)據(jù)總是有殘缺的和異常值等現(xiàn)象存在。但從另一個角度思考,水至清則無魚,異常數(shù)據(jù)不等于無價值數(shù)據(jù)。異常數(shù)據(jù)對數(shù)據(jù)分析結(jié)果肯定有影響,但如果把異常數(shù)據(jù)都穿上漂亮的衣服,那么有可能就會將數(shù)據(jù)的本來面目同樣隱藏起來了。對異常數(shù)據(jù)的處理態(tài)度,還是與具體的應(yīng)用有關(guān),如果是分析人員的常駐地點,異常值價值就不大,如果是分析信用卡詐騙的應(yīng)用,異常值就是價值特別高的數(shù)據(jù)。

數(shù)據(jù)預(yù)處理,從某種意義說就是一門藝術(shù),是整個數(shù)據(jù)挖掘過程中最耗時的一個過程。

選擇了一個模型,效果好不好,還需要對模型的效果進行驗證。模型需要快速的反饋結(jié)果。驗證模型的過程,是一個反復(fù)的過程,期間需要對不同的參數(shù)進調(diào)整。如果不能快速輸出結(jié)果,例如每調(diào)整一個參數(shù),都需要一天才能看到最終的運行結(jié)果,在系統(tǒng)設(shè)計過程中,這樣的速度是不能接受的。為了能夠快速的驗證模型,需要對數(shù)據(jù)進行抽樣。抽樣過程可以分為廣度優(yōu)先和深度優(yōu)先兩種方式,譬如:通過上網(wǎng)記錄分析用戶的行為習慣,在選擇和驗證模型時,不可能對全量數(shù)據(jù)進行分析。這時,可以選取部分人群進行深層次的分析:選擇100個人,分析3年的上網(wǎng)記錄。也可以選取全量人員,分析最近一個星期的上網(wǎng)記錄。具體采取何種方式,還是與具體的應(yīng)用相關(guān)。

驗證模型時,除了從技術(shù)方面考慮,還要從考慮成本的可行性。成本可分為直接成本和替代成本。直接成本,就是按照現(xiàn)在的模型投入到生產(chǎn)環(huán)境中,最樂觀的情況下,需要多少硬件成本和后期維護成本。影響直接成本的因素很多,在相同的模型下,分析精度是影響直接成本的一個重要因素。除了直接成本,還要考慮替代成本。什么是替代成本?舉個例子,有個數(shù)據(jù)分析應(yīng)用是:分析電信用戶賬單,找出高價值用戶。開發(fā)成本100W,硬件成本200W,后期維護需要兩個工程師,每年成本50W。對應(yīng)這樣的系統(tǒng),達到的分析效果,很可能雇傭兩個普通職員,采用普通SQL語句和EXCEL表格統(tǒng)計,就能把相同的事情做了。此種場景,替代成本是很低的,系統(tǒng)是沒有競爭力。

 

3、部署模型

選定了模型,下面就是部署模型了。部署模型不是簡單的將驗證過的模型放在生產(chǎn)環(huán)境下運行。部署模型,是一個完整的開發(fā)流程。驗證模型時,為了提高反饋速度,可以不考慮系統(tǒng)的完整性、架構(gòu)、開發(fā)語言、可服務(wù)性等等因素。簡單說,怎么快就怎么來。不同應(yīng)用,部署模型的過程不一樣。

例一:文本分類器。在驗證模型階段,使用不同的算法對大量的語料進行分析,輸出一個模型,然后使用另外一些語料對這個模型進行驗證,如果可行,將這個模型部署到生產(chǎn)環(huán)境中。此例中,被部署的模型可以使用模型驗證階段相同的技術(shù)得到。但是使用這個模型,驗證和生產(chǎn)的實現(xiàn)可能完全不一樣。在驗證階段,慢慢對文本進行分類問題不大,但在生產(chǎn)環(huán)境中,有大量待分類的文本需要處理,效率、并發(fā)、接口方式都需要綜合考慮了。

例二:通過分析信令信息得到用戶的常駐地。此應(yīng)用,驗證模型中的直接產(chǎn)出(如代碼)在生產(chǎn)環(huán)境中就很難復(fù)用。模型驗證時,可能使用Python語言編寫的公開代碼庫,在實現(xiàn)時為了效率,可能采用JAVA在Hadoop架構(gòu)上實現(xiàn)。

部署模型階段,簡單理解就是常規(guī)系統(tǒng)的開發(fā)過程。

數(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)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務(wù)器是否宕機 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); }