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

熱線電話:13121318867

登錄
首頁精彩閱讀電商數(shù)據(jù)挖掘之關(guān)聯(lián)算法(2)數(shù)據(jù)分析師
電商數(shù)據(jù)挖掘之關(guān)聯(lián)算法(2)數(shù)據(jù)分析師
2015-01-07
收藏

電商數(shù)據(jù)挖掘之關(guān)聯(lián)算法(2)數(shù)據(jù)分析師


數(shù)據(jù)挖掘過程中,由于數(shù)據(jù)存在分散性和偶然性,因而在底層的數(shù)據(jù)關(guān)聯(lián)上很難準(zhǔn)確挖掘出強(qiáng)關(guān)聯(lián)規(guī)則,進(jìn)而也很難為我們決策提供參考。通常的解決的方案通常是引入概念層次,在較高的層次上,我們就可以通過“支持度和置信度”的框架來挖掘多層關(guān)聯(lián)規(guī)則。

  

  在《電商數(shù)據(jù)挖掘之關(guān)聯(lián)算法(一):“啤酒+尿布”的關(guān)聯(lián)規(guī)則是怎么來的》,我們介紹了關(guān)聯(lián)規(guī)則的基本概念,這一期則以數(shù)據(jù)實(shí)例來看最著名的Apriori關(guān)聯(lián)算法的演算過程。

  從一家公司的銷售記錄中我們找到以下8條消費(fèi)記錄,并以3作為最小支持度,也就是說出現(xiàn)頻率在3次以下的記錄是被我們所忽略的。

  所有滿足最小支持度3的1項(xiàng)頻集如下,其中的支持度是指該產(chǎn)品在整個(gè)數(shù)據(jù)集中出現(xiàn)的次數(shù)。比如牛奶出現(xiàn)了5次,而冰淇淋出現(xiàn)了3次。

  遞歸執(zhí)行,所有滿足最小支持度3的2項(xiàng)頻集如下,這其中出現(xiàn)最多的頻集是{牛奶,面包}和{面包,果醬},各自出現(xiàn)了4次。

  再次遞歸執(zhí)行,所有滿足最小支持度3的3項(xiàng)頻集只剩下一條:

  那么{牛奶,果醬,面包}就是我們要的滿足最小支持度3的3項(xiàng)頻集,也就是說牛奶、果醬和面包這三個(gè)商品是最經(jīng)常被一起購買的。

  概念層次的數(shù)據(jù)挖掘

  在研究挖掘關(guān)聯(lián)規(guī)則的過程中,許多學(xué)者發(fā)現(xiàn)在實(shí)際應(yīng)用中,對于很多應(yīng)用來說,由于數(shù)據(jù)分布的分散性,數(shù)據(jù)比較少,所以很難在數(shù)據(jù)最細(xì)節(jié)的層次上發(fā)現(xiàn)一些強(qiáng)關(guān)聯(lián)規(guī)則。要想在原始的概念層次上發(fā)現(xiàn)強(qiáng)的(strong)和有意義的(interesting)關(guān)聯(lián)規(guī)則是比較困難的,因?yàn)楹枚囗?xiàng)集往往沒有足夠的支持?jǐn)?shù)。

  當(dāng)我們引入概念層次后,就可以在較高的層次上進(jìn)行挖掘。雖然較高層次上得出的規(guī)則可能是更普通的信息,但是對于一個(gè)用戶來說是普通的信息,對于另一個(gè)用戶卻未必如此。所以數(shù)據(jù)挖掘應(yīng)該提供這樣一種在多個(gè)層次上進(jìn)行挖掘的功能。

  概念層次在要挖掘的數(shù)據(jù)庫中經(jīng)常是存在的,比如在一個(gè)超市中會(huì)存在這樣的概念層次:蒙牛牌牛奶是牛奶,伊利牌牛奶是牛奶,王子牌餅干是餅干,康師傅牌餅干是餅干等。

  如果我們只是在數(shù)據(jù)基本層發(fā)掘關(guān)系,{蒙牛牌牛奶,王子牌餅干},{蒙牛牌牛奶,康師傅牌餅干},{伊利牌牛奶,王子牌餅干},{伊利牌牛奶,康師傅牌餅干}都不符合最小支持度。不過如果我們上升一個(gè)層級,會(huì)發(fā)現(xiàn){牛奶,餅干} 的關(guān)聯(lián)規(guī)則是有一定支持度的。

  我們稱高層次的項(xiàng)是低層次項(xiàng)的父親層次(parent),這種概念層次關(guān)系通常用一個(gè)DAG(directed acyclic graph,有向無環(huán)圖)來表示。所謂有向無環(huán)圖是指,任意一條邊有方向,且不存在環(huán)路的圖。這樣我們就可以在較高的概念層次上發(fā)現(xiàn)關(guān)聯(lián)規(guī)則。

  支持度的設(shè)置策略

  根據(jù)規(guī)則中涉及的層次和多層關(guān)聯(lián)的規(guī)則,我們可以把關(guān)聯(lián)規(guī)則分為同層關(guān)聯(lián)規(guī)則和層間關(guān)聯(lián)規(guī)則。多層關(guān)聯(lián)規(guī)則的挖掘基本上可以沿用“支持度—置信度”的框架。不過,在支持度設(shè)置的問題上有一些要考慮的東西。

      同層關(guān)聯(lián)規(guī)則可以采用兩種支持度策略:

  統(tǒng)一的最小支持度。對于不同的層次,都使用同一個(gè)最小支持度。這樣對于用戶和算法實(shí)現(xiàn)來說都比較容易,但是弊端也是顯而易見的。

  遞減的最小支持度。每個(gè)層次都有不同的最小支持度,較低層次的最小支持度相對較小。同時(shí)還可以利用上層挖掘得到的信息進(jìn)行一些過濾的工作。層間關(guān)聯(lián)規(guī)則考慮最小支持度的時(shí)候,應(yīng)該根據(jù)較低層次的最小支持度來定。

  以上我們討論的基本上都是同一個(gè)字段的值之間的關(guān)系,比如用戶購買的物品。換句話說就是在單維或者叫維內(nèi)的關(guān)聯(lián)規(guī)則,這些規(guī)則很多都是在交易數(shù)據(jù)庫中挖掘的。

  但是對于實(shí)際應(yīng)用來說,多維的關(guān)聯(lián)規(guī)則可能是更加有價(jià)值的。

  同時(shí),在挖掘維間關(guān)聯(lián)規(guī)則和混合維關(guān)聯(lián)規(guī)則的時(shí)候,還要考慮不同的字段種類,是分類型數(shù)據(jù)還是數(shù)值型數(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(), // 加隨機(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)證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺(tái)檢測極驗(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ù)說明請參見: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 = '請輸入'+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); }