<1> 任意乙個ij稱為乙個專案,i=為所有專案的集合。
<2> d為事務資料庫。
<3> 事務t是乙個專案子集,t包含於i。每乙個事務(交易)具有唯一的事物標識tid。
<4> 設a是由專案構成的集合,稱為項集。事務t包含項集a,如果項集a由k個專案組成,則稱a為k項集。
<5> 項集a在事務資料庫d中出現的次數佔d中總交易量的百分比叫做項集a的支援度。記為support(a)。
<6> 如果項集的支援度超過使用者給定的最小支援度閾值,就稱為頻繁項集。
<7> 如果乙個k項集是頻繁的,稱其為頻繁k項集。
<8> 規則的信任度:關聯規則是形如
x→y的蘊涵式,
x包含於專案的集合i、y包含於專案的集合i且x與y沒有交集,當事務資料庫d中有s%的事務包含xuy,則稱關聯規則x→y的
支援度為s%(實際上支援度是乙個概率值)。項集的支援度記為support(x),則規則的信任度為
support(xuy)/support(x)。
<1> 關聯規則就是支援度和信任度分別滿足使用者給定閾值的規則。
<2> 關聯規則的性質:頻繁項集的子集必為頻繁項集。非頻繁項集的超集一定是非頻繁的。
<3> 步驟:首先找出所有頻繁項集(支援度超過使用者給定的最小支援度閾值),然後再由頻繁項集生成滿足最小信任度閾值的規則。
apriori演算法發現關聯規則的過程分為兩個步驟。首先通過迭代,檢索出事務資料庫中的所有頻繁項集,即支援度不低於使用者設定的閾值的項集。然後利用頻繁項集構造出滿足使用者最小信任度的規則。挖掘或識別出所有的頻繁項集是該演算法的核心。
由m個專案形成的不同項集的數目可以達到(2的m次方)-1,通過關聯規則的性質「頻繁項集的子集必為頻繁項集」,apriori演算法引入了潛在頻繁項集的概念。頻繁k項集 包含於 潛在頻繁k項集 包含於 m個專案構成的k項集的集合。
其中潛在頻繁k項集的集合是指有可能成為頻繁k項集的項集組成的集合。
以後只需計算潛在頻繁項集的支援度,而不必計算所有項集的支援度,因此在一定基礎上減少了計算量。
具體實現過程如下:
<1> 發現頻繁項集的過程:
1、掃瞄
2、計數
3、比較
4、產生頻繁項集
5、連線、剪枝、產生候選項集
<2> 產生關聯規則的實現過程:
1、通過單趟掃瞄資料庫d計算出各個1項集,得到頻繁1項集集合l1。
2、連線步:為了產生頻繁k項集集合lk,預先生成乙個潛在頻繁k項集的集合ck。
3、剪枝步。
4、通過單趟掃瞄資料庫d,計算ck中各項集支援度。
5、將ck中不滿足最小支援度的項集剔除,形成頻繁項集lk。
6、通過迭代迴圈重複2---5,直到不再產生頻繁項集。
join運算:
看完上面的可以通過例題進行鞏固了。
資料探勘 關聯規則挖掘
關聯規則 association rule 是資料中所蘊含的一類重要規律。關聯規則挖掘的目標是在資料專案中找出所有的併發關係 cooccurrence relationships 這種關係也稱為關聯 association 關聯規則挖掘的經典應用是購物籃 market basket 關聯規則挖掘並沒...
關聯規則挖掘
關聯規則反映事物之間的相互依存性和關聯性。如果事物之間存在一定的關聯,那麼我們就可以通過乙個事物去 另乙個事物。我們要挖掘大量資料中人們感興趣的,有價值的資訊,包括概念,規則,規律等。關聯規則 發現資料中的規律 超市中什麼產品會 起購買?組合推薦 顧客在買了 臺pc之後下 步會購買?搭配推薦 哪種d...
關聯規則挖掘
直接用例項來解釋概念更清楚一些,加入資料庫中存在10條交易記錄 transaction 具體如下表所示 交易id tid 購買商品 items b bread c cream m milk t tea t01b c m t t02b c m t03c m t04m t t05b c m t06b t...