本發(fā)明涉及一套基于改進(jìn)orar算法的關(guān)聯(lián)規(guī)則推薦系統(tǒng),是一種基于關(guān)系代數(shù)理論,利用關(guān)系矩陣及相關(guān)運(yùn)算尋找出關(guān)聯(lián)規(guī)則的推薦系統(tǒng)。該系統(tǒng)在實(shí)現(xiàn)orar算法的過(guò)程中,將支持度及對(duì)應(yīng)的偏好標(biāo)簽存儲(chǔ)在一個(gè)名字空間矩陣內(nèi),同時(shí)通過(guò)置信度求解函數(shù)求解出相應(yīng)的置信度從而求解出關(guān)聯(lián)規(guī)則。屬于數(shù)據(jù)挖掘領(lǐng)域。
背景技術(shù):
隨著“啤酒、尿布”案例在營(yíng)銷屆的成功運(yùn)用,人們對(duì)不斷收集的數(shù)據(jù)中關(guān)聯(lián)規(guī)則的挖掘原來(lái)越感興趣,關(guān)聯(lián)規(guī)則的應(yīng)用范圍也逐漸從超市營(yíng)銷擴(kuò)展到更多的領(lǐng)域。當(dāng)前的關(guān)聯(lián)規(guī)則挖掘算法主要有apriori和orar等,apriori算法會(huì)產(chǎn)生大量的候選集,需要重復(fù)掃描數(shù)據(jù)庫(kù),效率低下。orar算法利用關(guān)系矩陣進(jìn)行計(jì)算,只需掃描一遍數(shù)據(jù)庫(kù),效率較高。但是仍然存在一系列的問(wèn)題。例如,不易查找頻繁項(xiàng)集對(duì)應(yīng)的支持度,求不出強(qiáng)規(guī)則等。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是克服現(xiàn)有技術(shù)中存在的不足,提供一種基于改進(jìn)orar算法的關(guān)聯(lián)規(guī)則推薦系統(tǒng),本發(fā)明擴(kuò)充了orar關(guān)聯(lián)規(guī)則算法,將大于支持度閾值的頻繁項(xiàng)集的各個(gè)偏好標(biāo)簽與其對(duì)應(yīng)的支持度存儲(chǔ)在一個(gè)名字空間矩陣內(nèi)。能夠快速的找出支持度從而求解出置信度。在利用orar只需掃描一遍數(shù)據(jù)庫(kù)的優(yōu)點(diǎn)之上解決了orar無(wú)法求出置信度的缺點(diǎn),從而為企業(yè)、商家提供更為高效、方便的關(guān)聯(lián)規(guī)則挖掘業(yè)務(wù),具有較大實(shí)用價(jià)值。
本發(fā)明提出的基于改進(jìn)orar算法的關(guān)聯(lián)規(guī)則挖掘系統(tǒng),包括數(shù)據(jù)預(yù)處理模塊、、1大項(xiàng)集生成模塊、2大項(xiàng)集生成模塊、k大項(xiàng)集生成模塊和關(guān)聯(lián)規(guī)則生成模塊。所述數(shù)據(jù)預(yù)處理模塊與數(shù)據(jù)庫(kù)交互,負(fù)責(zé)將數(shù)據(jù)庫(kù)的文本轉(zhuǎn)換為適合運(yùn)算的關(guān)系矩陣。所述1大項(xiàng)集生成模塊、2大項(xiàng)集生成模塊、k大項(xiàng)集生成模塊共同構(gòu)成orar算法的具體實(shí)現(xiàn),負(fù)責(zé)頻繁項(xiàng)集的生成和支持度的計(jì)算;所述關(guān)聯(lián)規(guī)則生成模塊與支持度求解模塊交互,負(fù)責(zé)根據(jù)支持度求解模塊生成的支持度求出置信度從而轉(zhuǎn)化為具體的關(guān)聯(lián)規(guī)則。
本法明的優(yōu)點(diǎn)在于:將大于支持度閾值的頻繁項(xiàng)集的各個(gè)偏好標(biāo)簽與其對(duì)應(yīng)的支持度存儲(chǔ)在一個(gè)名字空間矩陣內(nèi)。在求解關(guān)聯(lián)規(guī)則的置信度時(shí),編寫(xiě)求解函數(shù)。根據(jù)偏好標(biāo)簽查找名字空間矩陣,再找出與偏好標(biāo)簽相匹配的支持度,代入置信度公式求解。在充分利用orar算法只需掃描一遍數(shù)據(jù)庫(kù)的優(yōu)點(diǎn),解決了orar算法存在的不易查找頻繁項(xiàng)集對(duì)應(yīng)的支持度,求不出強(qiáng)規(guī)則等問(wèn)題。提高了關(guān)聯(lián)規(guī)則挖掘的效率。
附圖說(shuō)明
圖1為本發(fā)明的結(jié)構(gòu)框圖。
圖2為本發(fā)明的工作流程圖。
具體實(shí)施方式
下面結(jié)合具體附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明。
本發(fā)明提出的基于改進(jìn)orar算法的關(guān)聯(lián)規(guī)則挖掘系統(tǒng),包括數(shù)據(jù)預(yù)處理模塊、1大項(xiàng)集生成模塊、2大項(xiàng)集生成模塊、k大項(xiàng)集生成模塊和關(guān)聯(lián)規(guī)則生成模塊。所述數(shù)據(jù)預(yù)處理模塊與數(shù)據(jù)庫(kù)交互,負(fù)責(zé)將數(shù)據(jù)庫(kù)的文本轉(zhuǎn)換為適合運(yùn)算的關(guān)系矩陣。所述1大項(xiàng)集生成模塊、2大項(xiàng)集生成模塊、k大項(xiàng)集生成模塊共同構(gòu)成orar算法的具體實(shí)現(xiàn),負(fù)責(zé)頻繁項(xiàng)集的生成和支持度的計(jì)算;所述關(guān)聯(lián)規(guī)則生成模塊與支持度求解模塊交互,負(fù)責(zé)根據(jù)支持度求解模塊生成的支持度求出置信度從而轉(zhuǎn)化為具體的關(guān)聯(lián)規(guī)則。
具體地、所述數(shù)據(jù)預(yù)處理模塊需要掃描數(shù)據(jù)庫(kù),設(shè)d是事務(wù)數(shù)據(jù)庫(kù),t={t1,t2,…,tm}和i={i1,i2,…,in}分別為數(shù)據(jù)庫(kù)中的交易集和項(xiàng)集,得到互相關(guān)矩陣
其中i=1,2,…,m,j=1,2,…,n。r為從t到i的二元關(guān)系矩陣,i就是使用頻率,t就是采樣次數(shù)。
設(shè)某特征子集對(duì)應(yīng)的集合為一個(gè)關(guān)系數(shù)據(jù)庫(kù)的子集dbi,若dbi中有m條記錄和n個(gè)項(xiàng),則通過(guò)掃描一次數(shù)據(jù)庫(kù),構(gòu)造互相關(guān)矩陣
其中i=1,2,…,m,j=1,2,…,n。rij的值為1或0,分別表示第i個(gè)事務(wù)中包含或未包含第j個(gè)項(xiàng)。
所述1大項(xiàng)集生成模塊、2大項(xiàng)集生成模塊、k大項(xiàng)集生成模塊主要針對(duì)現(xiàn)有的orar算法進(jìn)行了改進(jìn),目前的orar算法只能在給出最小支持度閾值基礎(chǔ)上求解頻繁項(xiàng)集,通過(guò)判定支持度是否大于最小支持度來(lái)確定該頻繁項(xiàng)集的保留與丟棄,但并沒(méi)有將該頻繁項(xiàng)集與其對(duì)應(yīng)的支持度存儲(chǔ)在同一名字空間內(nèi)。因此難以查找各頻繁項(xiàng)集對(duì)應(yīng)的支持度,無(wú)法求解各關(guān)聯(lián)規(guī)則對(duì)應(yīng)的置信度及強(qiáng)規(guī)則。
針對(duì)以上不足,對(duì)orar算法進(jìn)行了如下改進(jìn):
將大于支持度閾值的頻繁項(xiàng)集的各個(gè)偏好標(biāo)簽與其對(duì)應(yīng)的支持度存儲(chǔ)在一個(gè)名字空間矩陣內(nèi)。
在求解關(guān)聯(lián)規(guī)則的置信度時(shí),編寫(xiě)求解函數(shù)。根據(jù)偏好標(biāo)簽查找名字空間矩陣,再找出與偏好標(biāo)簽相匹配的支持度,代入置信度公式求解。
具體的計(jì)算步驟如下:
一、求解1-項(xiàng)集的支持度。對(duì)于大于支持度閾值的項(xiàng)目集,將偏好標(biāo)簽與其對(duì)應(yīng)的支持度存入矩陣aorar1=(aij)p×q(p=x,q=2)中,其中x為篩選結(jié)果行數(shù)。
二、根據(jù)求解的1-項(xiàng)集,將1-項(xiàng)集中的偏好標(biāo)簽兩兩組合(排除重復(fù)),求解2-項(xiàng)集的支持度。對(duì)于大于支持度閾值的項(xiàng)集,將組合偏好標(biāo)簽與其對(duì)應(yīng)的支持度存入aorar2=(aij)p×q(p=y(tǒng),q=3),其中y為篩選結(jié)果行數(shù)。
三、在求解k-項(xiàng)集時(shí),根據(jù)求解的1-項(xiàng)集和(k-1)-項(xiàng)集進(jìn)行k階組合,排除兩種重復(fù):項(xiàng)目集內(nèi)部的偏好標(biāo)簽重復(fù)和項(xiàng)目集間的組合重復(fù)。對(duì)于大于支持度閾值的項(xiàng)目集,將組合偏好標(biāo)簽與其對(duì)應(yīng)的支持度存入aorark=(aij)p×q(p=z,q=k+1),其中z為篩選結(jié)果行數(shù)。
所述關(guān)聯(lián)規(guī)則生成模塊主要是用來(lái)根據(jù)所述支持度求解模塊的結(jié)果求解出置信度從而生成相應(yīng)的關(guān)聯(lián)規(guī)則。具體的工作過(guò)程如下:
在置信度求解函數(shù)中,對(duì)形如
如圖1所示,本系統(tǒng)分?jǐn)?shù)據(jù)預(yù)處理模塊、支持度求解模塊和關(guān)聯(lián)規(guī)則生成模塊。其中所述數(shù)據(jù)預(yù)處理模塊安裝在操作系統(tǒng)之上,與mysql數(shù)據(jù)庫(kù)直接交互。所述關(guān)聯(lián)規(guī)則生成模塊與具體應(yīng)用程序或命令行界面交互,輸出具體關(guān)聯(lián)規(guī)則。
具體地,所述數(shù)據(jù)預(yù)處理模塊安裝在ubuntu操作系統(tǒng)之上,通過(guò)jdbc與mysq1數(shù)據(jù)庫(kù)連接。所述關(guān)聯(lián)規(guī)則生成模塊為java接口,通過(guò)java靜態(tài)函數(shù)實(shí)現(xiàn),可以在任何java程序中調(diào)用,生成的關(guān)聯(lián)規(guī)則保存在list中,system.out輸出。具體系統(tǒng)工作流程如圖2所示。
本發(fā)明擴(kuò)充了orar關(guān)聯(lián)規(guī)則算法,將大于支持度閾值的頻繁項(xiàng)集的各個(gè)偏好標(biāo)簽與其對(duì)應(yīng)的支持度存儲(chǔ)在一個(gè)名字空間矩陣內(nèi)。能夠快速的找出支持度從而求解出置信度。在利用orar只需掃描一遍數(shù)據(jù)庫(kù)的優(yōu)點(diǎn)之上解決了orar無(wú)法求出置信度的缺點(diǎn),從而為企業(yè)、商家提供更為高效、方便的關(guān)聯(lián)規(guī)則挖掘業(yè)務(wù),具有較大實(shí)用價(jià)值。