本發(fā)明涉及數(shù)據(jù)挖掘關(guān)聯(lián)規(guī)則領(lǐng)域,尤其涉及一種基于項集熵的數(shù)據(jù)挖掘方法。
背景技術(shù):
數(shù)據(jù)挖掘指的是從大型數(shù)據(jù)庫或數(shù)據(jù)倉庫中提取人們感興趣的知識,這些知識是隱含的、事先未知的潛在有用信息。數(shù)據(jù)挖掘是一個高級的處理過程,它從數(shù)據(jù)集中識別出以模式來表示的知識。高級的處理過程是指一個多個步驟的處理過程,多個步驟之間相互影響、反復(fù)調(diào)整,形成一種螺旋式上升過程。常用的數(shù)據(jù)挖掘工具和方法有分類、聚類、關(guān)聯(lián)規(guī)則、模式識別、可視化、決策樹、遺傳算法、不確定性推理等。
關(guān)聯(lián)規(guī)則是形式如下的一種規(guī)則,“在購買面包和黃油的顧客中,有的人同時也買了牛奶”面包十黃油牛奶。用于關(guān)聯(lián)規(guī)則發(fā)現(xiàn)的主要對象是事務(wù)型數(shù)據(jù)庫,其中針對的應(yīng)用則是售貨數(shù)據(jù),也稱貨籃數(shù)據(jù)。一個事務(wù)一般由如下幾個部分組成事務(wù)處理時間,一組顧客購買的物品,有時也有顧客標(biāo)識號如信用卡號。
數(shù)據(jù)項的關(guān)聯(lián)是指兩個或多個數(shù)據(jù)項的取值重復(fù)出現(xiàn)且概率很高時,這就說明它們存在著某種關(guān)聯(lián),可以建立起這些數(shù)據(jù)項的關(guān)聯(lián)規(guī)則。找出數(shù)據(jù)庫中隱藏的關(guān)聯(lián)網(wǎng)是關(guān)聯(lián)分析的主要目的。我們通常用“支持度”和“可信度”這兩個閥值來去除和挖掘無關(guān)的規(guī)則。如果存在兩個項集X,Y,它們存在形如X→Y的蘊(yùn)含式,并且滿足X∈I,Y∈I,且那么我們就把X叫做規(guī)則前項或者前件,Y就叫做規(guī)則后項或者后件。上面蘊(yùn)含式的含義是若項集X在某一時刻出現(xiàn),那么項集Y也會在同一交易中按照某一概率同時出現(xiàn)。關(guān)聯(lián)規(guī)則的支持度和置信度是兩個非常重要的標(biāo)志,分別表示對所發(fā)現(xiàn)規(guī)則在整個數(shù)據(jù)庫中進(jìn)行統(tǒng)計的重要性和可靠程度。一般來說,在進(jìn)行關(guān)聯(lián)規(guī)則挖掘之前,要預(yù)先設(shè)定兩個值,即最小支持度閥值(min_sup)和最小置信度閥值(min_conf),我們只關(guān)心那些有用的關(guān)聯(lián)規(guī)則,它們的支持度大于等于最小支持度閥值,置信度大于等于最小置信度閥值。我們把這些用戶感興趣的規(guī)則叫做“強(qiáng)規(guī)則”。
以數(shù)據(jù)挖掘技術(shù)來輔助用戶發(fā)現(xiàn)隱含的數(shù)據(jù)安息,實(shí)際上是以數(shù)據(jù)分析、挖掘為手段,為用戶提供決策支持。淘寶曾經(jīng)提出過一個關(guān)于數(shù)據(jù)化運(yùn)營的理解:“以企業(yè)海量數(shù)據(jù)的存儲和分析挖掘應(yīng)用為核心支持的,企業(yè)全員參與的,以精準(zhǔn)、細(xì)分和精細(xì)化為特點(diǎn)的企業(yè)運(yùn)營制度和戰(zhàn)略”。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是克服數(shù)據(jù)集中數(shù)據(jù)記錄和數(shù)據(jù)項重要性不同而導(dǎo)致挖掘結(jié)果精度低下的問題,提供一種基于項集熵的數(shù)據(jù)挖掘方法。
本發(fā)明解決上述技術(shù)問題的技術(shù)方案如下:一種基于項集熵的數(shù)據(jù)挖掘方法,包括以下步驟:
步驟1:對采集的數(shù)據(jù)進(jìn)行預(yù)處理,轉(zhuǎn)化為同緯度的事務(wù)數(shù)據(jù)集存放到數(shù)據(jù)庫;
步驟2:檢索數(shù)據(jù)庫,獲取單項集和多項集的支持度;
步驟3:根據(jù)項集熵計算單項集的權(quán)值,根據(jù)單項集的權(quán)值計算單項集的加權(quán)支持度;
步驟4:去除加權(quán)支持度不滿足支持度閾值的單項集,得到加權(quán)頻繁1項集;
步驟5:根據(jù)單項集權(quán)值計算多項集的權(quán)值,根據(jù)多項集的權(quán)值計算多項集的加權(quán)支持度;
步驟6:去除加權(quán)支持度不滿足支持度閾值的多項集,得到加權(quán)頻繁多項集;
步驟7:根據(jù)滿足置信度閾值的加權(quán)頻繁項集的加權(quán)支持度和置信度得到改進(jìn)關(guān)聯(lián)規(guī)則。
本發(fā)明的有益效果是:本發(fā)明引入了項集熵的概念來對關(guān)聯(lián)規(guī)則進(jìn)行改進(jìn),提升了關(guān)聯(lián)規(guī)則進(jìn)行數(shù)據(jù)挖掘時的精度,根據(jù)不同項目的重要性,給予不同的權(quán)值,權(quán)值的不同大小體現(xiàn)了項目的重要程度不同,能夠挖掘出傳統(tǒng)算法忽略掉的信息。
在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進(jìn)。
進(jìn)一步地,所述步驟1包括:
步驟1.1:異常數(shù)據(jù)清除、錯誤糾正及重復(fù)數(shù)據(jù)清除;
步驟1.2:將數(shù)據(jù)通過數(shù)據(jù)概化轉(zhuǎn)換成適用于數(shù)據(jù)挖掘的形式;
步驟1.3:將數(shù)據(jù)按條數(shù)存儲在數(shù)據(jù)庫中并編號。
進(jìn)一步地,所述步驟2包括:
步驟2.1:遍歷數(shù)據(jù)庫;
步驟2.2:統(tǒng)計各個項集的出現(xiàn)次數(shù);
步驟2.3:按出現(xiàn)次數(shù)從大到小的順序生成單項集臨時表;
步驟2.4:根據(jù)臨時表中各個項集的出現(xiàn)次數(shù)與總事務(wù)數(shù)據(jù)集數(shù)的比值得到各個項集支持度。
進(jìn)一步地,所述步驟3包括:
步驟3.1:根據(jù)信息熵的特性得到項集熵
其中,H(u)為項集熵,Pi表示單項集中字段i的重要性,在事務(wù)數(shù)據(jù)集中,項集I={I1,I2,…Im},Ii所擁有的權(quán)值為w(Ii)=H(Ii);
對于任意交易記錄Mi∈D,P(m/Mi)表示記錄為Mi時其字段m取值的概率,則表示Mi中字段m所包含的信息量H(m)即可表示為:
其中,H(m)表示Mi中字段m所包含的信息量;Mi為事務(wù)數(shù)據(jù)集,任意Mi∈D,D表示數(shù)據(jù)庫;lb為以2為底的對數(shù),在事務(wù)數(shù)據(jù)集中,項集I={I1,I2,…Im},Ii所擁有的權(quán)值為w(Ii)=H(Ii);
步驟3.2:根據(jù)支持度與權(quán)值的乘積得到單項集的加權(quán)支持度,項集I={I1,I2,…In},則I的加權(quán)支持度為:wsup(I)=w(I)·sup(I);
其中,sup(I)為I的支持度,w(I)為I的權(quán)值。
進(jìn)一步地,所述步驟5包括:
步驟5.1:對多項集每個項Im賦以權(quán)值wm,多項集權(quán)值包括多個單項集權(quán)值,設(shè)定W為多項集的權(quán)值,則有W(Ij)={w1,w2,…wn};
步驟5.2:對權(quán)值進(jìn)行數(shù)據(jù)標(biāo)準(zhǔn)化處理,使用歸一化方法對原始數(shù)據(jù)進(jìn)行線性變換,歸一化函數(shù)為:
其中,x表示W(wǎng)(Ij),x*為歸一化后的權(quán)值W'(Ij),W′={w′1,w′2,...,w′n},其中w′1+w′2+...+w′n=1;
步驟5.3:計算多項集I的權(quán)值:
步驟5.4:根據(jù)支持度與權(quán)值的乘積得到多項集的加權(quán)支持度,項集I={I1,I2,…In},則I的加權(quán)支持度為:
其中,sup(I)為I的傳統(tǒng)支持度,w(I)為I的權(quán)值。
進(jìn)一步地,所述步驟7包括:根據(jù)滿足置信度閾值的加權(quán)頻繁項集的加權(quán)支持度和置信度得到改進(jìn)關(guān)聯(lián)規(guī)則,改進(jìn)關(guān)聯(lián)規(guī)則滿足和wsup為加權(quán)支持度,supmin為支持度閾值,wconf為置信度,confmin為置信度閾值。
附圖說明
圖1為本發(fā)明一種基于項集熵的數(shù)據(jù)挖掘方法流程示意圖;
圖2為本發(fā)明一種基于項集熵的數(shù)據(jù)挖掘方法經(jīng)過數(shù)據(jù)預(yù)處理后的數(shù)據(jù)集展示圖;
圖3為本發(fā)明一種基于項集熵的數(shù)據(jù)挖掘方法單項集權(quán)值求解結(jié)果圖;
圖4為本發(fā)明一種基于項集熵的數(shù)據(jù)挖掘方法多項集權(quán)值求解結(jié)果圖;
圖5為本發(fā)明一種基于項集熵的數(shù)據(jù)挖掘方法使用不同關(guān)聯(lián)規(guī)則算法及不同數(shù)據(jù)量的效果對比圖。
附圖中,各標(biāo)號所代表的部件列表如下:
1、Apriori關(guān)聯(lián)規(guī)則,2、水平加權(quán)關(guān)聯(lián)規(guī)則,3、本發(fā)明關(guān)聯(lián)規(guī)則。
具體實(shí)施方式
以下結(jié)合附圖對本發(fā)明的原理和特征進(jìn)行描述,所舉實(shí)例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。
步驟1:對采集的數(shù)據(jù)進(jìn)行預(yù)處理,轉(zhuǎn)化為同緯度的事務(wù)數(shù)據(jù)集存放到數(shù)據(jù)庫;
步驟2:檢索數(shù)據(jù)庫,獲取單項集和多項集的支持度;
步驟3:根據(jù)項集熵計算單項集的權(quán)值,根據(jù)單項集的權(quán)值計算單項集的加權(quán)支持度;
步驟4:去除加權(quán)支持度不滿足支持度閾值的單項集,得到加權(quán)頻繁1項集;
步驟5:根據(jù)單項集權(quán)值計算多項集的權(quán)值,根據(jù)多項集的權(quán)值計算多項集的加權(quán)支持度;
步驟6:去除加權(quán)支持度不滿足支持度閾值的多項集,得到加權(quán)頻繁多項集;
步驟7:根據(jù)滿足置信度閾值的加權(quán)頻繁項集的加權(quán)支持度和置信度得到改進(jìn)關(guān)聯(lián)規(guī)則。
其中,所述步驟1包括:
步驟1.1:異常數(shù)據(jù)清除、錯誤糾正及重復(fù)數(shù)據(jù)清除;
步驟1.2:將數(shù)據(jù)通過數(shù)據(jù)概化轉(zhuǎn)換成適用于數(shù)據(jù)挖掘的形式;
步驟1.3:將數(shù)據(jù)按條數(shù)存儲在數(shù)據(jù)庫中并編號。
其中,所述步驟2包括:
步驟2.1:遍歷數(shù)據(jù)庫;
步驟2.2:統(tǒng)計各個項集的出現(xiàn)次數(shù);
步驟2.3:按出現(xiàn)次數(shù)從大到小的順序生成單項集臨時表;
步驟2.4:根據(jù)臨時表中各個項集的出現(xiàn)次數(shù)與總事務(wù)數(shù)據(jù)集數(shù)的比值得到各個項集支持度。
項集熵體現(xiàn)了某個字段的重要程度,由于事物數(shù)據(jù)集中各項之間具有相互獨(dú)立性的特性,它們同屬性和字段的信息量具有可加性,因此事務(wù)數(shù)據(jù)集中某個項所包含的信息量可以定義為各項集中所包含的信息量之和?;谛畔㈧氐乃枷霃臄?shù)據(jù)庫本身出發(fā),挖掘出項集間更深層次的關(guān)聯(lián)關(guān)系。由于統(tǒng)計關(guān)聯(lián)反映了變量之間的關(guān)系,將其作為背景知識,根據(jù)相關(guān)的條件屬性計算規(guī)則的信息熵值,信息熵值越大,則規(guī)則之間的關(guān)聯(lián)度也越高。
其中,所述步驟3包括:
步驟3.1:根據(jù)信息熵的特性得到項集熵
其中,H(u)為項集熵,Pi表示單項集中字段i的重要性,在事務(wù)數(shù)據(jù)集中,項集I={I1,I2,…Im},Ii所擁有的權(quán)值為w(Ii)=H(Ii);
對于任意交易記錄Mi∈D,P(m/Mi)表示記錄為Mi時其字段m取值的概率,則表示Mi中字段m所包含的信息量H(m)即可表示為:
其中,H(m)表示Mi中字段m所包含的信息量;Mi為事務(wù)數(shù)據(jù)集,任意Mi∈D,D表示數(shù)據(jù)庫;lb為以2為底的對數(shù),在事務(wù)數(shù)據(jù)集中,項集I={I1,I2,…Im},Ii所擁有的權(quán)值為w(Ii)=H(Ii);
步驟3.2:根據(jù)支持度與權(quán)值的乘積得到單項集的加權(quán)支持度,項集I={I1,I2,…In},則I的加權(quán)支持度為:wsup(I)=w(I)·sup(I);
其中,sup(I)為I的支持度,w(I)為I的權(quán)值。
當(dāng)先驗知識缺乏時,權(quán)值難以通過主觀給出,但權(quán)值的不確定性可使用概率相關(guān)函數(shù)來進(jìn)行相關(guān)測度,信源的不確定性可以用項集熵來衡量,信源離散消息的不確定性可以用平均信息量來體現(xiàn)。由于信源本身不確定性的大小隱含著信息量的大小,因此基于項集熵來刻畫缺乏先驗知識的信息背景中單權(quán)值的重要性是可行的。
其中,所述步驟5包括:
步驟5.1:對多項集每個項Im賦以權(quán)值wm,多項集權(quán)值包括多個單項集權(quán)值,設(shè)定W為多項集的權(quán)值,則有W(Ij)={w1,w2,…wn};
步驟5.2:對權(quán)值進(jìn)行數(shù)據(jù)標(biāo)準(zhǔn)化處理,使用歸一化方法對原始數(shù)據(jù)進(jìn)行線性變換,歸一化函數(shù)為:
其中,x表示W(wǎng)(Ij),x*為歸一化后的權(quán)值W'(Ij),W′={w′1,w′2,...,w′n},其中w′1+w′2+...+w′n=1;
步驟5.3:計算多項集I的權(quán)值:
步驟5.4:根據(jù)支持度與權(quán)值的乘積得到多項集的加權(quán)支持度,項集I={I1,I2,…In},則I的加權(quán)支持度為:
其中,sup(I)為I的傳統(tǒng)支持度,w(I)為I的權(quán)值。
其中,所述步驟7包括:根據(jù)滿足置信度閾值的加權(quán)頻繁項集的加權(quán)支持度和置信度得到改進(jìn)關(guān)聯(lián)規(guī)則,改進(jìn)關(guān)聯(lián)規(guī)則滿足和wsup為加權(quán)支持度,supmin為支持度閾值,wconf為置信度,confmin為置信度閾值。
如圖2所示,為本發(fā)明一種基于項集熵的數(shù)據(jù)挖掘方法經(jīng)過數(shù)據(jù)預(yù)處理后的數(shù)據(jù)集展示圖,圖中數(shù)據(jù)為事務(wù)數(shù)據(jù)集D。
如圖3所示,為本發(fā)明一種基于項集熵的數(shù)據(jù)挖掘方法對一單項集權(quán)值計算的結(jié)果,Pi為每一項的重要性,獲得單項集的權(quán)值集合:
W={0.12,0.27,0.25,0.27,0.09};
設(shè)最小支持度閾值supmin=0.10,計算1項集的支持度:
sup(A)=6/8,sup(B)=4/8,sup(C)=5/8,
sup(D)=4/8,sup(E)=7/8
按照本發(fā)明給出的公式wsup(I)=w(I)·sup(I)計算出加權(quán)支持度,計算每個單項集的加權(quán)支持度:
wsup(A)=0.12×6/8=0.0900,
wsup(B)=0.27×4/8=0.1350,
wsup(C)=0.25×5/8=0.1563,
wsup(D)=0.27×4/8=0.1350,
wsup(E)=0.09×7/8=0.0788.
由于supmin=0.10,則有加權(quán)頻繁1項集為{B,C,D}。、
如圖4所示,為本發(fā)明一種基于項集熵的數(shù)據(jù)挖掘方法對一多項集權(quán)值計算的結(jié)果,獲得多項集的權(quán)值集合:
設(shè)最小支持度閾值supmin=0.10,計算2項集的傳統(tǒng)支持度:
sup(AB)=2/8,sup(AC)=4/8,
sup(AD)=2/8,sup(AE)=5/8,
sup(BC)=2/8,sup(BD)=2/8,
sup(BE)=4/8,sup(CD)=2/8,
sup(CE)=4/8,sup(DE)=4/8.
對每個2項集的權(quán)值進(jìn)行計算,可得到如下值:
w(AB)=0.2295,w(AC)=0.2151,
w(AD)=0.2295,w(AE)=0.1122,
w(BC)=0.2650,w(BD)=0.2700,
w(BE)=0.2205,w(CD)=0.2650,
w(CE)=0.2062,w(DE)=0.2205.
對每個2項集的加權(quán)支持度計算,得到如下值:
wsup(AB)=0.2295×2/8=0.0574,
wsup(AC)=0.2151×4/8=0.1076,
wsup(AD)=0.2295×2/8=0.0574,
wsup(AE)=0.1122×5/8=0.0701,
wsup(BC)=0.2650×2/8=0.0663,
wsup(BD)=0.2700×2/8=0.0675,
wsup(BE)=0.2205×4/8=0.1125,
wsup(CD)=0.2650×2/8=0.0663,
wsup(CE)=0.2062×4/8=0.1031,
wsup(DE)=0.2205×4/8=0.1103.
由于supmin=0.10,故加權(quán)頻繁2項集為{AC,BE,CE,DE}。
如圖5所示,圖中曲線為Apriori關(guān)聯(lián)規(guī)則1、水平加權(quán)關(guān)聯(lián)規(guī)則2與本發(fā)明關(guān)聯(lián)規(guī)則3的對比圖示,圖中橫軸表示加權(quán)支持度,縱軸表示頻繁項個數(shù)。
以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。