專利名稱:一種支持分布式計(jì)算的關(guān)聯(lián)規(guī)則挖掘算法實(shí)現(xiàn)方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種支持分布式計(jì)算的關(guān)聯(lián)規(guī)則挖掘算法實(shí)現(xiàn)方法及裝置。
背景技術(shù):
隨著“大數(shù)據(jù)”時(shí)代的到來,企業(yè)業(yè)務(wù)數(shù)據(jù)量激增,數(shù)據(jù)分析師都在嘗試各種數(shù)據(jù)分析方法以及數(shù)據(jù)挖掘方法,旨在希望能夠從海量數(shù)據(jù)中發(fā)掘潛在的、具有業(yè)務(wù)價(jià)值的用戶行為模式。數(shù)據(jù)挖掘通過分析每個(gè)數(shù)據(jù),從大量數(shù)據(jù)中尋找其規(guī)律的技術(shù)。另外,本發(fā)明中提到的大數(shù)據(jù)、海量數(shù)據(jù)、數(shù)據(jù)集的含義相同。關(guān)聯(lián)規(guī)則挖掘是數(shù)據(jù)挖掘方法中一種被廣泛采用的且具有影響力的方法,它能夠用在各種推薦系統(tǒng)中為用戶推薦感興趣的物品。目前能夠使用的各種版本的關(guān)聯(lián)規(guī)則挖掘算法都是單機(jī)形式,面對(duì)大數(shù)據(jù)量情況都顯得無能為力,很多場(chǎng)景下也只是采樣部分業(yè)務(wù)數(shù)據(jù)進(jìn)行關(guān)聯(lián)規(guī)則的查找。1993年,R. Agrawal等人首次提出了挖掘顧客交易數(shù)據(jù)中項(xiàng)目集間的關(guān)聯(lián)規(guī)則問題,其核心是基于兩階段頻繁集思想的遞推算法。第一步通過迭代,檢索出事務(wù)數(shù)據(jù)庫中的所有頻繁項(xiàng)集,頻繁項(xiàng)集即支持度不低于用戶設(shè)定的閾值的項(xiàng)集;第二步利用頻繁項(xiàng)集構(gòu)造出滿足用戶最小信任度的規(guī)則。其中,挖掘或識(shí)別出所有頻繁項(xiàng)集是該算法的核心,占整個(gè)計(jì)算量的大部分。頻繁項(xiàng)集項(xiàng)的集合稱為項(xiàng)集。項(xiàng)集的出現(xiàn)頻率(支持計(jì)數(shù))是項(xiàng)集的事務(wù)數(shù),簡(jiǎn)稱為項(xiàng)集的頻率,支持率計(jì)數(shù)或者計(jì)數(shù)。如果項(xiàng)集的相對(duì)出現(xiàn)頻率大于等于預(yù)定義的最小支持度閾值,則是頻繁項(xiàng)集。2001年Tobias從貝葉斯統(tǒng)計(jì)角度提出了基于預(yù)測(cè)精度的關(guān)聯(lián)規(guī)則模型,并給出了相應(yīng)的關(guān)聯(lián)規(guī)則挖掘算法PredictiveApriori,簡(jiǎn)稱PA算法。PA算法只需要設(shè)定輸出最好的η個(gè)規(guī)則,就可以挖掘出η個(gè)預(yù)測(cè)精度最大的規(guī)則。PA算法主要通過不斷增大規(guī)則前項(xiàng)支持度和觀察置信度來逐步逼近獲得最大預(yù)測(cè)精度Ε,從而返回η個(gè)最好的關(guān)聯(lián)規(guī)則。通過前項(xiàng)支持度和規(guī)則的置信度來量化期望預(yù)測(cè)精度Ε,同時(shí)支持度可以修正規(guī)則的置信度。這樣綜合考慮了支持度和置信度對(duì)關(guān)聯(lián)規(guī)則的預(yù)測(cè)精度的影響。數(shù)據(jù)關(guān)聯(lián)是數(shù)據(jù)庫中存在的一類重要的可被發(fā)現(xiàn)的知識(shí)。若兩個(gè)或多個(gè)變量的取值之間存在某種規(guī)律性,就稱為關(guān)聯(lián)。關(guān)聯(lián)可分為簡(jiǎn)單關(guān)聯(lián)、時(shí)序關(guān)聯(lián)、因果關(guān)聯(lián)。關(guān)聯(lián)分析的目的是找出數(shù)據(jù)庫中隱藏的關(guān)聯(lián)網(wǎng)。有時(shí)并不知道數(shù)據(jù)庫中數(shù)據(jù)的關(guān)聯(lián)函數(shù),即使知道也是不確定的,因此關(guān)聯(lián)分析生成的規(guī)則帶有可信度。關(guān)聯(lián)規(guī)則挖掘發(fā)現(xiàn)大量數(shù)據(jù)中項(xiàng)集之間有趣的關(guān)聯(lián)或相關(guān)聯(lián)系。關(guān)聯(lián)規(guī)則挖掘過程主要包含兩個(gè)階段第一階段必須先從數(shù)據(jù)集合中找出所有的頻繁項(xiàng)集,第二階段再由這些頻繁項(xiàng)集中產(chǎn)生關(guān)聯(lián)規(guī)則。Hadoop不僅僅是一個(gè)用于存儲(chǔ)的分布式文件系統(tǒng),而且還是一個(gè)分布式系統(tǒng)基礎(chǔ)框架,用戶可以在不了解分布式底模塊細(xì)節(jié)的情況下,開發(fā)分布式程序。Hadoop充分利用集群的威力進(jìn)行高速運(yùn)算和存儲(chǔ),實(shí)現(xiàn)了一個(gè)分布式文件系統(tǒng)(Hadoop Distributed FileSystem),簡(jiǎn)稱HDFS。HDFS存儲(chǔ)hadoop集群中所有存儲(chǔ)節(jié)點(diǎn)上的文件。HDFS有著高容錯(cuò)性的特點(diǎn),并且能夠設(shè)計(jì)部署在低廉的硬件上,它以流式數(shù)據(jù)訪問模式來存儲(chǔ)超大文件。而且Hadoop提供高傳輸率來訪問應(yīng)用程序的數(shù)據(jù)。因此,Hadoop適合那些有著超大數(shù)據(jù)集的應(yīng)用程序。Hadoop由許多元素構(gòu)成,其最底模塊部是分布式文件系統(tǒng),該分布式文件系統(tǒng)存儲(chǔ)Hadoop集群中所有存儲(chǔ)節(jié)點(diǎn)上的文件。該分布式文件系統(tǒng)的上一層是編程模型MapReduce。編程模型MapReduce的優(yōu)勢(shì)在于處理大規(guī)模數(shù)據(jù),用于對(duì)大規(guī)模數(shù)據(jù)集(大于
ITB)的并行運(yùn)算。編程模型MapReduce的設(shè)計(jì)目標(biāo)是方便編程人員在不熟悉分布式并行編程的情況下,將自己的程序運(yùn)行在分布式系統(tǒng)上。編程模型MapReduce實(shí)現(xiàn)了 map函數(shù)和reduce函數(shù)的功能。map函數(shù)把一個(gè)函數(shù)應(yīng)用于集合中的所有成員,然后返回一個(gè)基于這個(gè)處理的結(jié)果集。而reduce函數(shù)是把從兩個(gè)或更多個(gè)map函數(shù)中通過多個(gè)線程、進(jìn)程或者獨(dú)立系統(tǒng)并行執(zhí)行處理的結(jié)果集進(jìn)行分類和歸納。map函數(shù)和reduce函數(shù)可能會(huì)并行運(yùn)行,即使不是在同一個(gè)系統(tǒng)的同一時(shí)刻也可能會(huì)并行運(yùn)行。在關(guān)聯(lián)規(guī)則挖掘方面,現(xiàn)有技術(shù)方案都是基于單機(jī)形式設(shè)計(jì)。基于單機(jī)形式實(shí)現(xiàn) 的關(guān)聯(lián)規(guī)則挖掘算法PA在針對(duì)小數(shù)據(jù)量的情況(比如十萬級(jí))能夠比較好的進(jìn)行規(guī)則挖掘。但是,現(xiàn)有技術(shù)僅用于實(shí)驗(yàn)室,很難應(yīng)用到企業(yè)級(jí)業(yè)務(wù),特別是互聯(lián)網(wǎng)、移動(dòng)互聯(lián)網(wǎng)行業(yè),業(yè)務(wù)數(shù)據(jù)量每天動(dòng)輒千萬級(jí)甚至億級(jí),這些現(xiàn)有技術(shù)工具已經(jīng)顯得無能為力。在大數(shù)據(jù)量情況下,單機(jī)版的關(guān)聯(lián)規(guī)則挖掘算法PA需要花費(fèi)大量時(shí)間計(jì)算規(guī)則的前項(xiàng),甚至有時(shí)根本計(jì)算不出來。中國專利公開號(hào)CNlO 1042698,
公開日是2007年09月26日,名稱為“一種關(guān)聯(lián)規(guī)則及元規(guī)則的綜合挖掘方法”的方案中公開了一種關(guān)聯(lián)規(guī)則及元規(guī)則的綜合挖掘方法,包括如下步驟,將時(shí)序數(shù)據(jù)庫按照時(shí)間片斷劃分成若干部分;依次對(duì)各個(gè)部分分別掃描,并在各個(gè)部分分別形成頻繁項(xiàng)集;再次分別掃描各部分,形成頻繁項(xiàng)集超結(jié)構(gòu);采用遞歸分解法形成完全超結(jié)構(gòu);挖掘超結(jié)構(gòu)形成關(guān)聯(lián)規(guī)則及元規(guī)則。不足之處是,這種關(guān)聯(lián)規(guī)則及元規(guī)則的綜合挖掘方法是基于單機(jī)形式設(shè)計(jì)來實(shí)現(xiàn)的關(guān)聯(lián)規(guī)則挖掘算法PA,該方法很難應(yīng)用到業(yè)務(wù)數(shù)據(jù)量每天動(dòng)輒千萬級(jí)甚至億級(jí)的企業(yè)級(jí)業(yè)務(wù)。
發(fā)明內(nèi)容
本發(fā)明是為了針對(duì)現(xiàn)有技術(shù)無法處理海量數(shù)據(jù)挖掘,計(jì)算效率非常慢以及規(guī)則挖掘結(jié)果不夠全面的這些不足,結(jié)合PA關(guān)聯(lián)算法和Hadoop分布式計(jì)算框架,提供一種能夠處理海量數(shù)據(jù)挖掘,計(jì)算效率非???,能夠較為全面的快速高效的從海量業(yè)務(wù)數(shù)據(jù)中挖掘出用于業(yè)務(wù)支撐的關(guān)聯(lián)規(guī)則結(jié)果的一種支持分布式計(jì)算的關(guān)聯(lián)規(guī)則挖掘算法實(shí)現(xiàn)方法及裝置。為了實(shí)現(xiàn)上述目的,本發(fā)明提供一種支持分布式計(jì)算的關(guān)聯(lián)規(guī)則挖掘算法實(shí)現(xiàn)方法,該方法利用分布式文件系統(tǒng)Hadoop的編程模型MapReduce對(duì)關(guān)聯(lián)規(guī)則挖掘算法PA進(jìn)行map函數(shù)階段和reduce函數(shù)階段的兩階段分解,其分解步驟為
步驟一配置作業(yè)調(diào)度器Recomjob ;
步驟二 用先驗(yàn)概率映射模塊PriorMap讀取數(shù)據(jù)集,并通過map函數(shù)將數(shù)據(jù)集的數(shù)據(jù)行轉(zhuǎn)換為鍵值對(duì);
步驟三用先驗(yàn)概率約簡(jiǎn)模塊PriorReduce讀取步驟二處理的鍵值對(duì),并通過reduce函數(shù)隨機(jī)生成包含i項(xiàng)集的排序規(guī)則ΤορΝ,同時(shí)計(jì)算置信度的先驗(yàn)概率分布值;
步驟四再用規(guī)則映射模塊ParMap讀取同一個(gè)數(shù)據(jù)集,并再次通過map函數(shù)將數(shù)據(jù)集的數(shù)據(jù)行轉(zhuǎn)換為鍵值對(duì);
步驟五再用規(guī)則約簡(jiǎn)模塊ParReduce讀取步驟四處理的鍵值對(duì)和步驟三的先驗(yàn)概率分布值,并通過reduce函數(shù)計(jì)算出排序規(guī)則TopN的預(yù)測(cè)精度值。本方案借助Hadoop分布式文件系統(tǒng)框架來對(duì)大數(shù)據(jù)進(jìn)行處理,通過編程模型MapReduce,對(duì)關(guān)聯(lián)規(guī)則挖掘算法PA進(jìn)行map函數(shù)階段和reduce函數(shù)階段的兩階段分解,大數(shù)據(jù)被分散到計(jì)算集群的多臺(tái)機(jī)器,計(jì)算過程分解成大量小的作業(yè)任務(wù),實(shí)現(xiàn)關(guān)聯(lián)規(guī)則挖掘算法PA快速高效的分布式并行計(jì)算。從而能夠處理海量數(shù)據(jù)挖掘,計(jì)算效率非???,能夠較為全面的快速高效的從海量業(yè)務(wù)數(shù)據(jù)中挖掘出用于業(yè)務(wù)支撐的關(guān)聯(lián)規(guī)則結(jié)果。相應(yīng)地,本發(fā)明提供一種支持分布式計(jì)算的關(guān)聯(lián)規(guī)則挖掘算法實(shí)現(xiàn)裝置,包括
業(yè)務(wù)單元,用于根據(jù)業(yè)務(wù)需要,讀取存儲(chǔ)單元中的數(shù)據(jù)和算法單元中的預(yù)測(cè)精度值,并
把數(shù)據(jù)和預(yù)測(cè)精度值展示在業(yè)務(wù)中;
存儲(chǔ)單元,用于存儲(chǔ)HDFS分布式文件系統(tǒng);
模型單元,用于根據(jù)業(yè)務(wù)特點(diǎn)建立應(yīng)用模型;
算法單元,用于對(duì)PA關(guān)聯(lián)規(guī)則挖掘算法進(jìn)行map函數(shù)階段和reduce函數(shù)階段的兩階段分解,從而實(shí)現(xiàn)關(guān)聯(lián)規(guī)則挖掘算法PA計(jì)算過程的分布式并行運(yùn)行。作為優(yōu)選,所述的模型單元包括應(yīng)用模型、用戶模型和偏好度模型。作為優(yōu)選,所述的算法單元包括關(guān)聯(lián)規(guī)則、協(xié)同過濾推薦CF和分類、聚類算法。作為優(yōu)選,所述的存儲(chǔ)單元包括=Hadoop集群、數(shù)據(jù)庫GP集群和數(shù)據(jù)庫Oracle集群。本發(fā)明能夠達(dá)到如下效果
I、本發(fā)明基于PA算法提出了 PA算法的分布式解決方法,即基于分布式計(jì)算的關(guān)聯(lián)規(guī)則挖掘算法PA。分布式解決方案中重點(diǎn)是借助編程模型MapReduce,對(duì)關(guān)聯(lián)規(guī)則挖掘算法PA進(jìn)行map函數(shù)階段和reduce函數(shù)階段的兩階段分解,實(shí)現(xiàn)計(jì)算過程的分布式并行運(yùn)行。從而能夠處理海量數(shù)據(jù)挖掘,計(jì)算效率非常快,能夠較為全面的快速高效的從海量業(yè)務(wù)數(shù)據(jù)中挖掘出用于業(yè)務(wù)支撐的關(guān)聯(lián)規(guī)則結(jié)果。2、本發(fā)明的PA關(guān)聯(lián)規(guī)則挖掘算法由于是借助基于分布式計(jì)算的編程模型MapReduce提出的,用于改進(jìn)單機(jī)版PA算法在海量數(shù)據(jù)情況下無法高效完成關(guān)聯(lián)規(guī)則挖掘問題的一種有效解決方案。此方案能夠處理千萬甚至億級(jí)的公司業(yè)務(wù)數(shù)據(jù)。
圖I是本發(fā)明的一種PA關(guān)聯(lián)規(guī)則挖掘算法分解成編程模型MapReduce并行計(jì)算的流程框圖。圖2是本發(fā)明的一種數(shù)據(jù)集在執(zhí)行map函數(shù)之前先對(duì)數(shù)據(jù)集進(jìn)行數(shù)據(jù)片段分片的一種示意框圖。圖3是本發(fā)明的一種裝置實(shí)施例組成示意框圖。圖4是本發(fā)明中Hadoop存儲(chǔ)系統(tǒng)數(shù)據(jù)分布式存儲(chǔ)的一種示意框圖。
具體實(shí)施方式
下面通過實(shí)施例,并結(jié)合附圖,對(duì)本發(fā)明的技術(shù)方案作進(jìn)一步具體的說明。實(shí)施例本實(shí)施例的一種支持分布式計(jì)算的關(guān)聯(lián)規(guī)則挖掘算法實(shí)現(xiàn)方法,如圖I所示,用分布式文件系統(tǒng)Hadoop的編程模型MapReduce對(duì)關(guān)聯(lián)規(guī)則挖掘算法PA進(jìn)行map函數(shù)階段9和reduce函數(shù)階段10的兩階段分解,其分解步驟為
步驟一配置作業(yè)調(diào)度器Recomjobl ;
步驟二 用先驗(yàn)概率映射模塊PriorMap3讀取數(shù)據(jù)集2,并通過map函數(shù)將數(shù)據(jù)集的數(shù)據(jù)行轉(zhuǎn)換為鍵值對(duì);
步驟三用先驗(yàn)概率約簡(jiǎn)模塊PriorReduce4讀取步驟二處理的鍵值對(duì),并通過reduce函數(shù)隨機(jī)生成包含i項(xiàng)集的排序規(guī)則TopN8,同時(shí)計(jì)算置信度的先驗(yàn)概率分布值5 ;
步驟四再用規(guī)則映射模塊ParMape讀取同一個(gè)數(shù)據(jù)集,并再次通過map函數(shù)將數(shù)據(jù)集 的數(shù)據(jù)行轉(zhuǎn)換為鍵值對(duì);
步驟五再用規(guī)則約簡(jiǎn)模塊ParRedUce7讀取步驟四處理的鍵值對(duì)和步驟三的先驗(yàn)概率分布值,并通過reduce函數(shù)計(jì)算出排序規(guī)則TopN的預(yù)測(cè)精度值。編程模型Mapreduce處理流程可如下編程模型MapReduce處理數(shù)據(jù)集主要分為兩個(gè)階段map函數(shù)階段和reduce函數(shù)階段。I)如圖2所示,在執(zhí)行map函數(shù)階段之前,Hadoop的內(nèi)部機(jī)制要先對(duì)輸入的數(shù)據(jù)集進(jìn)行數(shù)據(jù)片段的分片,例如,把數(shù)據(jù)集2分成數(shù)據(jù)塊D1、數(shù)據(jù)塊D2、數(shù)據(jù)塊D3、……、數(shù)據(jù)塊Dn這些數(shù)據(jù)片段的分片,從而把大數(shù)據(jù)分成若干小數(shù)據(jù),便于把數(shù)據(jù)分布到分布式系統(tǒng)中運(yùn)行。2)被分配了 map函數(shù)任務(wù)的節(jié)點(diǎn)讀取與該節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)片段,并從讀取的數(shù)據(jù)片段中解析出鍵值對(duì)(key, value),把鍵值對(duì)傳遞給用戶自定義的map函數(shù),最后在本地磁盤生成并輸出中間鍵值對(duì)。3) reduce函數(shù)任務(wù)的節(jié)點(diǎn)讀取map函數(shù)階段產(chǎn)生的與其對(duì)應(yīng)的鍵值對(duì)。由于可能許多不同的鍵key會(huì)映射到相同的reduce函數(shù)任務(wù)的節(jié)點(diǎn)任務(wù)上,reduce函數(shù)任務(wù)的節(jié)點(diǎn)會(huì)對(duì)鍵key進(jìn)行shuffle。reduce函數(shù)任務(wù)的節(jié)點(diǎn)將鍵key和它相對(duì)應(yīng)的值value的集合傳遞給用戶自定義的reduce函數(shù),reduce函數(shù)結(jié)束后會(huì)寫到reduce函數(shù)相對(duì)應(yīng)的文件系統(tǒng)。4)當(dāng)所有的map函數(shù)任務(wù)和reduce函數(shù)任務(wù)都完成之后,編程模型MapReduce調(diào)用返回,結(jié)束程序。相應(yīng)地,本發(fā)明提供一種支持分布式計(jì)算的關(guān)聯(lián)規(guī)則挖掘算法實(shí)現(xiàn)裝置,如圖3所示,包括
業(yè)務(wù)單元14,用于根據(jù)業(yè)務(wù)需要,讀取存儲(chǔ)單元中的數(shù)據(jù)和算法單元中的預(yù)測(cè)精度值,并把數(shù)據(jù)和預(yù)測(cè)精度值展示在業(yè)務(wù)中;
存儲(chǔ)單元11,用于存儲(chǔ)HDFS分布式文件系統(tǒng);
模型單元13,用于根據(jù)業(yè)務(wù)特點(diǎn)建立應(yīng)用模型;
算法單元12,用于對(duì)PA關(guān)聯(lián)規(guī)則挖掘算法進(jìn)行map函數(shù)階段和reduce函數(shù)階段的兩階段分解,從而實(shí)現(xiàn)關(guān)聯(lián)規(guī)則挖掘算法PA計(jì)算過程的分布式并行運(yùn)行。工作過程如圖I、圖3所示。從圖3中可以看到,整個(gè)實(shí)現(xiàn)方案分為模型單元11、存儲(chǔ)單元13、算法單元12和業(yè)務(wù)單元14這四個(gè)單元。該實(shí)施例以一款冒泡堂為例進(jìn)行說明。冒泡堂是一款基于安卓系統(tǒng)進(jìn)行免費(fèi)應(yīng)用下載的平臺(tái),是針對(duì)戶習(xí)慣和喜好開發(fā)的安卓應(yīng)用商店。PA分布式關(guān)聯(lián)規(guī)則挖掘算法用于冒泡堂的APP應(yīng)用推薦功能“換一換”。當(dāng)用戶下載某個(gè)APP應(yīng)用的同時(shí),系統(tǒng)將為用戶推薦可能感興趣的應(yīng)用。這些應(yīng)用正是來自于PA分布式關(guān)聯(lián)規(guī)則挖掘算法系統(tǒng),用戶通過點(diǎn)擊“換一換”來查看推薦的十款相關(guān)應(yīng)用。存儲(chǔ)單元存儲(chǔ)單元包括=Hadoop集群131、數(shù)據(jù)庫GP集群132和數(shù)據(jù)庫Oracle集群133。PA算法涉及的數(shù)據(jù)以應(yīng)用模型的形式存儲(chǔ)在Hadoop集群的N個(gè)數(shù)據(jù)節(jié)點(diǎn)上。如圖4所示,Hadoop的分布式架構(gòu)中包含一個(gè)主節(jié)點(diǎn)6和N個(gè)數(shù)據(jù)節(jié)點(diǎn)(數(shù)據(jù)節(jié)點(diǎn)Dl數(shù)據(jù)節(jié)點(diǎn)D2數(shù)據(jù)節(jié)點(diǎn)D3,……,數(shù)據(jù)節(jié)點(diǎn)Dn)。主節(jié)點(diǎn)管理文件系統(tǒng)的命名看見,它維護(hù)著整個(gè)文件系統(tǒng),數(shù)據(jù)節(jié)點(diǎn)是文件系統(tǒng)的工作節(jié)點(diǎn),它根據(jù)需要存儲(chǔ)并檢索數(shù)據(jù)塊,并定期向主節(jié)點(diǎn)發(fā)送它們存儲(chǔ)的塊的列表。在任務(wù)的執(zhí)行過程中,Hadoop主節(jié)點(diǎn)充當(dāng)管理者角色,它會(huì)通過管理策略以及系統(tǒng)資源使用情況,將執(zhí)行任務(wù)分發(fā)到各個(gè)數(shù)據(jù)節(jié)點(diǎn),數(shù)據(jù)節(jié)點(diǎn)在接到執(zhí)行任務(wù)后,讀取本地?cái)?shù)據(jù)進(jìn)行相應(yīng)的邏輯運(yùn)算,充當(dāng)任務(wù)執(zhí)行者角色。PA算法充分利
用Hadoop的這種分布式架構(gòu),從Hadoop集群中讀取數(shù)據(jù),進(jìn)行分布式計(jì)算,將計(jì)算結(jié)果存儲(chǔ)在Hadoop集群中。模型單元根據(jù)業(yè)務(wù)的特點(diǎn),模型單元一般包括應(yīng)用模型111、用戶模型112和偏好度模型113。關(guān)聯(lián)規(guī)則挖掘數(shù)據(jù)模型設(shè)計(jì)為四個(gè)字段,分別是平臺(tái)、應(yīng)用一、應(yīng)用二、日期。它表示了某個(gè)日期,某個(gè)平臺(tái),同時(shí)下載了應(yīng)用一和應(yīng)用二。該數(shù)據(jù)模型考慮了推薦過程中,推薦的應(yīng)用共同點(diǎn)是必須是同一平臺(tái)下。雖然現(xiàn)在冒泡堂是一款安卓系統(tǒng)Andriod,但是隨著業(yè)務(wù)的發(fā)展,可能會(huì)涉及IOS, Windows Phone等其他系統(tǒng)的應(yīng)用,因此,平臺(tái)這個(gè)字段是必須的。由于應(yīng)用的熱門程度不一致,可能某個(gè)應(yīng)用與數(shù)萬個(gè)甚至幾十萬個(gè)應(yīng)用相關(guān),而某個(gè)應(yīng)用只與幾個(gè)相關(guān)。數(shù)據(jù)模型建立時(shí)考慮到這點(diǎn),因此,在構(gòu)建模型時(shí)一條記錄只包含兩個(gè)應(yīng)用。雖然這樣也會(huì)造成數(shù)據(jù)冗余性,但是相對(duì)于簡(jiǎn)單的將相關(guān)的應(yīng)用冗余度要??;另外這樣構(gòu)建模型使得算法計(jì)算起來更加簡(jiǎn)單。算法單元算法單元包括關(guān)聯(lián)規(guī)則121、協(xié)同過濾推薦CF122和分類、聚類算法123。PA算法只需要設(shè)定輸出最好的η個(gè)規(guī)則,就可以挖掘出η個(gè)預(yù)測(cè)精度最大的規(guī)則。PA算法主要通過不斷增大規(guī)則前項(xiàng)支持度和觀察置信度來逐步逼近獲得最大預(yù)測(cè)精度Ε,從而返回η個(gè)最好的關(guān)聯(lián)規(guī)則。通過前項(xiàng)支持度和規(guī)則的置信度來量化期望預(yù)測(cè)精度,同時(shí)支持度可以修正規(guī)則的置信度。這樣綜合考慮了支持度和置信度對(duì)關(guān)聯(lián)規(guī)則挖掘算法預(yù)測(cè)精度的影響。業(yè)務(wù)單元本實(shí)施例的推薦算法是利用推薦算法先算出推薦規(guī)則,并存儲(chǔ)在數(shù)據(jù)庫中,然后根據(jù)業(yè)務(wù)需要讀取數(shù)據(jù)庫中的數(shù)據(jù)展示在業(yè)務(wù)中。以冒泡堂的“換一換”為例,當(dāng)用戶下載某個(gè)應(yīng)用,業(yè)務(wù)服務(wù)器會(huì)讀取到該應(yīng)用,然后通過該應(yīng)用到后臺(tái)的關(guān)聯(lián)規(guī)則數(shù)據(jù)庫Hadooop集群中讀取與之關(guān)聯(lián)的應(yīng)用,并推薦給用戶。例如當(dāng)用戶在冒泡堂的應(yīng)用商店中,點(diǎn)擊“UC瀏覽器8. 5”應(yīng)用,服務(wù)器端會(huì)獲取“UC瀏覽器8. 5”的應(yīng)用編號(hào),利用該應(yīng)用編號(hào)到后臺(tái)的的關(guān)聯(lián)規(guī)則數(shù)據(jù)庫Hadooop集群中進(jìn)行查詢,得到與“UC瀏覽器8. 5”相關(guān)的“手機(jī)QQ”、“百度搜索”等應(yīng)用并顯示給用戶。上面結(jié)合附圖描述了本發(fā)明的實(shí)施方式,但實(shí)現(xiàn)時(shí)不受上述實(shí)施例限制,本領(lǐng)域普通技術(shù)人員可以在所附權(quán)利要求的范圍內(nèi)做出各種變化或修改。
權(quán)利要求
1.一種支持分布式計(jì)算的關(guān)聯(lián)規(guī)則挖掘算法實(shí)現(xiàn)方法,其特征在于,用分布式文件系統(tǒng)HDFS的編程模型MapReduce對(duì)關(guān)聯(lián)規(guī)則挖掘算法PA進(jìn)行map函數(shù)階段和reduce函數(shù)階段的兩階段分解,其分解步驟為 步驟一配置作業(yè)調(diào)度器Recomjob ; 步驟二 用先驗(yàn)概率映射模塊PriorMap讀取數(shù)據(jù)集,并通過map函數(shù)將數(shù)據(jù)集的數(shù)據(jù)行轉(zhuǎn)換為鍵值對(duì); 步驟三用先驗(yàn)概率約簡(jiǎn)模塊PriorReduce讀取步驟二處理的鍵值對(duì),并通過reduce函數(shù)隨機(jī)生成包含i項(xiàng)集的排序規(guī)則ΤορΝ,同時(shí)計(jì)算置信度的先驗(yàn)概率分布值; 步驟四再用規(guī)則映射模塊ParMap讀取同一個(gè)數(shù)據(jù)集,并再次通過map函數(shù)將數(shù)據(jù)集的數(shù)據(jù)行轉(zhuǎn)換為鍵值對(duì); 步驟五再用規(guī)則約簡(jiǎn)模塊ParReduce讀取步驟四處理的鍵值對(duì)和步驟三的先驗(yàn)概率分布值,并通過reduce函數(shù)計(jì)算出排序規(guī)則TopN的預(yù)測(cè)精度值。
2.一種支持分布式計(jì)算的關(guān)聯(lián)規(guī)則挖掘算法實(shí)現(xiàn)裝置,其特征在于,包括 業(yè)務(wù)單元,用于根據(jù)業(yè)務(wù)需要,讀取存儲(chǔ)單元中的數(shù)據(jù)和算法單元中的預(yù)測(cè)精度值,并把數(shù)據(jù)和預(yù)測(cè)精度值展示在業(yè)務(wù)中; 存儲(chǔ)單元,用于存儲(chǔ)HDFS分布式文件系統(tǒng); 模型單元,用于根據(jù)業(yè)務(wù)特點(diǎn)建立應(yīng)用模型; 算法單元,用于對(duì)PA關(guān)聯(lián)規(guī)則挖掘算法進(jìn)行map函數(shù)階段和reduce函數(shù)階段的兩階段分解,從而實(shí)現(xiàn)關(guān)聯(lián)規(guī)則挖掘算法PA計(jì)算過程的分布式并行運(yùn)行。
3.根據(jù)權(quán)利要求2所述的一種支持分布式計(jì)算的關(guān)聯(lián)規(guī)則挖掘算法實(shí)現(xiàn)裝置,其特征在于,所述的模型單元包括應(yīng)用模型、用戶模型和偏好度模型。
4.根據(jù)權(quán)利要求2所述的一種支持分布式計(jì)算的關(guān)聯(lián)規(guī)則挖掘算法實(shí)現(xiàn)裝置,其特征在于,所述的算法單元包括關(guān)聯(lián)規(guī)則、協(xié)同過濾推薦CF和分類、聚類算法。
5.根據(jù)權(quán)利要求2所述的一種支持分布式計(jì)算的關(guān)聯(lián)規(guī)則挖掘算法實(shí)現(xiàn)裝置,其特征在于,所述的存儲(chǔ)單元包括Hadoop集群、數(shù)據(jù)庫GP集群和數(shù)據(jù)庫Oracle集群。
全文摘要
本發(fā)明公開了一種支持分布式計(jì)算的關(guān)聯(lián)規(guī)則挖掘算法實(shí)現(xiàn)方法及裝置,用HDFS的編程模型對(duì)關(guān)聯(lián)規(guī)則挖掘算法PA進(jìn)行map函數(shù)階段和reduce函數(shù)階段的兩階段分解步驟一配置作業(yè)調(diào)度器;步驟二用先驗(yàn)概率映射模塊讀取數(shù)據(jù)集,并通過map函數(shù)將數(shù)據(jù)集的數(shù)據(jù)行轉(zhuǎn)換為鍵值對(duì);步驟三用先驗(yàn)概率約簡(jiǎn)模塊讀取步驟二處理的鍵值對(duì),并通過reduce函數(shù)隨機(jī)生成包含i項(xiàng)集的排序規(guī)則TopN,同時(shí)計(jì)算置信度的先驗(yàn)概率分布值;步驟四再用規(guī)則映射模塊讀取同一個(gè)數(shù)據(jù)集,并再次通過map函數(shù)將數(shù)據(jù)集的數(shù)據(jù)行轉(zhuǎn)換為鍵值對(duì);步驟五再用規(guī)則約簡(jiǎn)模塊讀取步驟四處理的鍵值對(duì)和步驟三的先驗(yàn)概率分布值,并通過reduce函數(shù)計(jì)算出排序規(guī)則TopN的預(yù)測(cè)精度值。主要用于PA分布式計(jì)算技術(shù)中。
文檔編號(hào)G06F17/30GK102945240SQ20121033252
公開日2013年2月27日 申請(qǐng)日期2012年9月11日 優(yōu)先權(quán)日2012年9月11日
發(fā)明者楊進(jìn), 張金偉 申請(qǐng)人:杭州斯凱網(wǎng)絡(luò)科技有限公司