資料探勘實驗報告 關聯規則演算法實驗

2021-04-22 00:38:49 字數 3665 閱讀 6571

摘要

計算機技術和通訊技術的迅猛發展將人類社會帶入到了資訊時代。在最近十幾年裡,資料庫中儲存的資料急劇增大。例如,nasa軌道衛星上的地球觀測系統eos每小時會向地面發回50gb的影象資料;世界上最大的資料倉儲之一,美國零售商系統wal-mart每天會產生2億左右的交易資料;人類基因組資料庫專案已經蒐集了數以gb計的人類基因編碼資料;大型天文望遠鏡每年會產生不少於10tb的資料,等等。大量的資訊在給人們提供方便的同時也帶來了一系列問題,由於資訊量過大,超出人們掌握、理解資訊的能力,因而給正確運用資訊帶來了困難。

資料探勘和知識發現是乙個涉及多學科的研究領域。資料庫技術、人工智慧、機器學習、統計學、粗糙集、模糊集、神經網路、模式識別、知識庫系統、高效能計算、資料視覺化等均與資料探勘相關。

近年來,kdd(即與資料庫的知識發現)研究領域已經成為熱點,其中關聯規則資料探勘演算法尤為引人注目。關聯規則反映乙個事物與其他事物之間的相互依存性和關聯性。

ibm公司almaden研究中心的r.agrawal首先提出關聯規則模型,並給出求解演算法ais。隨後又出現了setm和apriori等演算法。apriori是關聯規則模型中的經典演算法。

資料探勘 知識發現 apriori演算法 fp演算法 一、

問題重述

1.1相關資訊

apriori

演算法在發現關聯規則領域具有很大影響力。演算法命名源於演算法使用了頻繁項集性質的先驗(prior)知識。在具體實驗時,apriori演算法將發現關聯規則的過程分為兩個步驟:第一步通過迭代,檢索出事務資料庫中的所有頻繁項集,即支援度不低於使用者設定的閾值的項集;第二步利用頻繁項集構造出滿足使用者最小信任度的規則。其中,挖掘或識別出所有頻繁項集是該演算法的核心,佔整個計算量的大部分。

在對深度優先資料探勘演算法的研究工作中,han等人沒有採用潛在頻繁項集的方法求解頻繁項集,而是提出了稱為頻率模式增長(fp_growth)的演算法。該演算法通過掃瞄資料庫建立fp_tree的根節點並標示為null,對資料庫d中的每乙個事務tran,按l中的次序對tran中的頻繁項排序,設tran中排序後的頻繁項列表[p|p],這裡p是第乙個元素,p是保留列表。接著呼叫函式insert_tree([p|p],t),如果樹t有乙個子節點n且n.item_name=p.item_name,就將n節點計數加1;否則就建立乙個新節點n,設計數為1,它的父節點

連線到t,節點連線到同名的節點連線結構上。如果p是非空的,就遞迴呼叫insert_tree(p,n)。由於壓縮了資料庫內容,並且在將頻繁項寫入fp_tree結構時,保留了項集間的相連資訊。求解頻繁項集的問題,就轉化為遞迴地找出最短頻繁模式並連線其字尾構成長頻繁模式的問題。

[1]1.2問題重述

近年來,kdd(即與資料庫的知識發現)研究領域已經成為熱點,其中關聯規則資料探勘演算法尤為引人注目。關聯規則反映乙個事物與其他事物之間的相互依存性和關聯性。

ibm公司almaden研究中心的r.agrawal首先提出關聯規則模型,並給出求解演算法ais。隨後又出現了setm和apriori等演算法。apriori是關聯規則模型中的經典演算法。

[1]1

、分析apriori演算法與fp演算法的優缺點 2

、分別使用兩種演算法找出頻繁項集 3

、挖掘出所有的強關聯規則 4

、實驗資料如下表:

二、

模型求解

2—頻繁項集的強關聯

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%的前提下,結果為:b=>aa=>cc=>a;b=>c 3

—頻繁項集的強關聯

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%

的前提下,結果為:ab=>c;bc=>a

利用fp一樹演算法求頻繁項集

procedure fp_growth(tree,a)

(1)

iftree包含乙個單一路徑p then

(2)

for each路徑p中節點組合(記為β)

(3)

生成模式β∪α,擁有支援度為β節點中的最小支援度

(4)

else for each樹的頭列表節點αi[1]

fp-tree

演算法使用頻繁模式增長方法,第一次掃瞄與apriori相同,它匯出頻繁項(1-項集)的集合,並得到它們的支援度計數(頻繁性)。設最小支援度計數為2.頻繁項的集合按支援度計數的遞減序排序。結果集或表記作l,這樣,我們有l=。

圖為存放壓縮的頻繁模式資訊的fp_tree:

三、模型評價

apriori

演算法時間消耗的主要癥結反映在兩個方面,一是由於對海量資料庫的多趟掃瞄,另乙個是用join產生潛在頻繁項集。

fp-tree

結構在完備性方面,它不會打破交易中的任何模式,而且包含了挖掘序列模式所需的全部資訊;在緊密性方面,它不剔除不相關資訊,不包含非頻繁項,按支援度降序排列,支援度高的項在fp-tree中共享的機會也高。

效能研究顯示fp-growth比

apriori

快乙個數量級,這是由於fp-growth不生成候選集,不用候選集測試,而且使用緊縮的資料結構,避免重複資料庫掃瞄。

[1]四、參考文獻

[1]李雄飛李軍,《資料探勘與知識發現》,

北京:高等教育出版社,2003。

openminer中挖掘關聯規則的演算法實現概述

關聯規則挖掘演算法很簡單,比如apriori,fpg這些都是典型的基礎演算法。但是一般的書籍卻很少提到如何在真是的資料庫上實現。真實的資料庫不一定是海量資料庫,哪怕是乙個記錄超過1w的關係表,如果屬性很多,超過20個,那麼中間過程中產生的候選項集也是很龐大的。其實所需的記憶體主要是儲存候選項集和頻繁...

資料探勘 關聯規則挖掘

關聯規則 association rule 是資料中所蘊含的一類重要規律。關聯規則挖掘的目標是在資料專案中找出所有的併發關係 cooccurrence relationships 這種關係也稱為關聯 association 關聯規則挖掘的經典應用是購物籃 market basket 關聯規則挖掘並沒...

資料探勘之關聯規則挖掘(Apriori演算法)

一 概述 本篇博文主要闡述資料探勘相關的關聯規則挖掘的演算法 apriori演算法 主要介紹關聯規則的基本概念 apriori演算法原理和apriori演算法例項,文章末尾處附加apriori演算法源程式。二 關聯規則挖掘的基本概念 關聯規則挖掘發現大量資料中項集之間有趣的關聯關係。如果兩項或者多項...