数据挖掘实验报告-关联规则算法实验
【摘要】
計算機技術(shù)和通信技術(shù)的迅猛發(fā)展將人類社會帶入到了信息時代。在最近十幾年里,數(shù)據(jù)庫中存儲的數(shù)據(jù)急劇增大。例如,NASA軌道衛(wèi)星上的地球觀測系統(tǒng)EOS每小時會向地面發(fā)回50GB的圖像數(shù)據(jù);世界上最大的數(shù)據(jù)倉庫之一,美國零售商系統(tǒng)Wal-Mart每天會產(chǎn)生2億左右的交易數(shù)據(jù);人類基因組數(shù)據(jù)庫項目已經(jīng)搜集了數(shù)以GB計的人類基因編碼數(shù)據(jù);大型天文望遠鏡每年會產(chǎn)生不少于10TB的數(shù)據(jù),等等。大量的信息在給人們提供方便的同時也帶來了一系列問題,由于信息量過大,超出人們掌握、理解信息的能力,因而給正確運用信息帶來了困難。
數(shù)據(jù)挖掘和知識發(fā)現(xiàn)是一個涉及多學(xué)科的研究領(lǐng)域。數(shù)據(jù)庫技術(shù)、人工智能、機器學(xué)習(xí)、統(tǒng)計學(xué)、粗糙集、模糊集、神經(jīng)網(wǎng)絡(luò)、模式識別、知識庫系統(tǒng)、高性能計算、數(shù)據(jù)可視化等均與數(shù)據(jù)挖掘相關(guān)。
近年來,KDD(即與數(shù)據(jù)庫的知識發(fā)現(xiàn))研究領(lǐng)域已經(jīng)成為熱點,其中關(guān)聯(lián)規(guī)則數(shù)據(jù)挖掘算法尤為引人注目。關(guān)聯(lián)規(guī)則反映一個事物與其他事物之間的相互依存性和關(guān)聯(lián)性。
IBM公司Almaden研究中心的R.Agrawal首先提出關(guān)聯(lián)規(guī)則模型,并給出求解算法AIS。隨后又出現(xiàn)了SETM和Apriori等算法。Apriori是關(guān)聯(lián)規(guī)則模型中的經(jīng)典算法。
關(guān)鍵詞:數(shù)據(jù)挖掘 知識發(fā)現(xiàn) Apriori算法 FP算法
一、問題重述
1.1相關(guān)信息
Apriori算法在發(fā)現(xiàn)關(guān)聯(lián)規(guī)則領(lǐng)域具有很大影響力。算法命名源于算法使用了頻繁項集性質(zhì)的先驗(prior)知識。在具體實驗時,Apriori算法將發(fā)現(xiàn)關(guān)聯(lián)規(guī)則的過程分為兩個步驟:第一步通過迭代,檢索出事務(wù)數(shù)據(jù)庫中的所有頻繁項集,即支持度不低于用戶設(shè)定的閾值的項集;第二步利用頻繁項集構(gòu)造出滿足用戶最小信任度的規(guī)則。其中,挖掘或識別出所有頻繁項集是該算法的核心,占整個計算量的大部分。
在對深度優(yōu)先數(shù)據(jù)挖掘算法的研究工作中,Han等人沒有采用潛在頻繁項集的方法求解頻繁項集,而是提出了稱為頻率模式增長(FP_growth)的算法。該算法通過掃描數(shù)據(jù)庫創(chuàng)建FP_tree的根節(jié)點并標(biāo)示為null,對數(shù)據(jù)庫D中的每一個事務(wù)Tran,按L中的次序?qū)ran中的頻繁項排序,設(shè)Tran中排序后的頻繁項列表[p|P],這里p是第一個元素,P是保留列表。接著調(diào)用函數(shù)insert_tree([p|P],T),如果樹T有一個子節(jié)點N且N.item_name=p.item_name,就將N節(jié)點計數(shù)加1;否則就創(chuàng)建一個新節(jié)點N,設(shè)計數(shù)為1,它的父節(jié)點連接到T,節(jié)點連接到同名的節(jié)點連接結(jié)構(gòu)上。如果P是非空的,就遞歸調(diào)用insert_tree(P,N)。由于壓縮了數(shù)據(jù)庫內(nèi)容,并且在將頻繁項寫入FP_tree結(jié)構(gòu)時,保留了項集間的相連信息。求解頻繁項集的問題,就轉(zhuǎn)化為遞歸地找出最短頻繁模式并連接其后綴構(gòu)成長頻繁模式的問題。[1]
1.2問題重述
近年來,KDD(即與數(shù)據(jù)庫的知識發(fā)現(xiàn))研究領(lǐng)域已經(jīng)成為熱點,其中關(guān)聯(lián)規(guī)則數(shù)據(jù)挖掘算法尤為引人注目。關(guān)聯(lián)規(guī)則反映一個事物與其他事物之間的相互依存性和關(guān)聯(lián)性。
IBM公司Almaden研究中心的R.Agrawal首先提出關(guān)聯(lián)規(guī)則模型,并給出求解算法AIS。隨后又出現(xiàn)了SETM和Apriori等算法。Apriori是關(guān)聯(lián)規(guī)則模型中的經(jīng)典算法。[1]
1、分析Apriori算法與FP算法的優(yōu)缺點
2、分別使用兩種算法找出頻繁項集
3、挖掘出所有的強關(guān)聯(lián)規(guī)則
4、實驗數(shù)據(jù)如下表:
二、模型求解
2—頻繁項集的強關(guān)聯(lián)
Confidence(A=>B)=P(B|A)=P(AB)/P(A)=3/4=0.75
Confidence(B=>A)=P(A|B)=P(AB)/P(B)=3/3=1
Confidence(A=>C)=P(C|A)=P(AC)/P(A)=4/4=1
Confidence(C=>A)=P(C|A)=P(AC)/P(C)=4/4=1
Confidencd(B=>C)=P(C|B)=P(BC)/P(B)=3/3=1
Confidence(C=>B)=P(B|C)=P(BC)/P(C)=3/4=0.75
在滿足minconf = 80%的前提下,結(jié)果為:B=>A;A=>C;C=>A;B=>C
3—頻繁項集的強關(guān)聯(lián)
Confidencd(AB=>C)=P(ABC)/P(AB)=3/3=1
Confidencd(AC=>B)=P(ABC)/P(AC)=3/4=0.75
Confidence(BC=>A)=P(ABC)/P(BC)=3/3=1
在滿足minconf = 80%的前提下,結(jié)果為:AB=>C;BC=>A
利用FP一樹算法求頻繁項集
Procedure FP_growth(Tree,a)
(1) ifTree包含一個單一路徑P then
(2) ??for each 路徑P中節(jié)點組合(記為β)
(3) ????生成模式β∪α,擁有支持度為β節(jié)點中的最小支持度
(4) Else for each樹的頭列表節(jié)點αi{
(5) ???生成模式β=αi∪β且support=ai.support
(6) ???構(gòu)成β的條件模式基和β的條件FP_Treeβ
(7) ???IfTreeβ≠фthen
(8) ?????Call FP_growth(Treeβ,β);}[1]
FP-Tree算法使用頻繁模式增長方法,第一次掃描與Apriori相同,它導(dǎo)出頻繁項(1-項集)的集合,并得到它們的支持度計數(shù)(頻繁性)。設(shè)最小支持度計數(shù)為2.頻繁項的集合按支持度計數(shù)的遞減序排序。結(jié)果集或表記作L,這樣,我們有L={A:4,C:4,B:3}。
圖為存放壓縮的頻繁模式信息的FP_tree:
三、模型評價
Apriori算法時間消耗的主要癥結(jié)反映在兩個方面,一是由于對海量數(shù)據(jù)庫的多趟掃描,另一個是用JOIN產(chǎn)生潛在頻繁項集。
FP-Tree結(jié)構(gòu)在完備性方面,它不會打破交易中的任何模式,而且包含了挖掘序列模式所需的全部信息;在緊密性方面,它不剔除不相關(guān)信息,不包含非頻繁項,按支持度降序排列,支持度高的項在FP-Tree中共享的機會也高。
性能研究顯示FP-growth比Apriori快一個數(shù)量級,這是由于FP-growth不生成候選集,不用候選集測試,而且使用緊縮的數(shù)據(jù)結(jié)構(gòu),避免重復(fù)數(shù)據(jù)庫掃描。[1]
四、參考文獻
[1] 李雄飛 李軍,《數(shù)據(jù)挖掘與知識發(fā)現(xiàn)》,北京:高等教育出版社,2003。
總結(jié)
以上是生活随笔為你收集整理的数据挖掘实验报告-关联规则算法实验的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据挖掘实验报告-决策树程序实验
- 下一篇: 粗糙集理论介绍(概念入门)