Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Apriori 演算法

Kyle Bai
January 17, 2014

Apriori 演算法

Kyle Bai

January 17, 2014
Tweet

More Decks by Kyle Bai

Other Decks in Technology

Transcript

  1. 定義(2/4) • 項⽬目集X的 “⽀支持個數” (support count) 被定義為“⽀支 持項⽬目集X的交易易總數”。 • 項⽬目集X的

    “⽀支持度” (support) 則是 “⽀支持項⽬目集X的 交易易個數佔全部交易易總數的比例例”。 • Ex:商品編號為 “2” 的物品之 “⽀支持個數” 為 5,亦即 “⽀支持度” 為5/10=0.5;⽽而項⽬目集{2,5}的 “⽀支持個數” 為 3,“⽀支持度” 為3/10=0.3
  2. 定義(3/4) • 關聯聯法則的形式為 “X → Y [⽀支持度,信⼼心⽔水準]”,其中 X 和 Y

    代表項⽬目集,X 被稱為 “條件句句”,Y為 “結論 句句”,關聯聯規則的表現形式就是⼀一個「If... .Then」的 分析結果 。 • 例例如顧客買了了紅茶茶時, 也會順帶購買蛋糕
  3. 定義(4/4) • 法則X → Y的⽀支持度定義為項⽬目集的⽀支持度。 • 法則X → Y的 “信⼼心⽔水準”

    (confidence) 是符合條件句句 與結論句句的交易易個數佔全體符合條件句句的交易易個數之 比例例,亦即
  4. 需滿⾜足條件 • 關聯聯規則分析的過程中,必須滿⾜足事先先設定的兩兩個參參數值 做為 篩選⾨門檻:最⼩小⽀支持度(Minimum Support)與最⼩小信⼼心度(Minimum Confidence),須滿⾜足這兩兩個⾨門檻參參數才會是關聯聯法則 。 • 最⼩小⽀支持度和資料庫中交易易總數的乘積即是最⼩小⽀支持個數

    (minimum support count) 。 • EX: 假設最⼩小⽀支持度與最⼩小信⼼心⽔水準分別為0.2和0.5。關聯聯法則 {1,3}→ {5}的⽀支持個數為2,所以⽀支持度為0.2,且項⽬目集{1,3}的 ⽀支持度為0.3,因此關聯聯法則 {1,3} → {5}的信⼼心⽔水準為0.2/ 0.3=0.67。
  5. 兩兩個⼦子問題 • ⾸首先,找出所有⽀支持度⼤大於或等於最⼩小⽀支持度的項⽬目集,稱 之為 “⼤大型項⽬目集” (large itemset)或”頻繁項⽬目集”(frequent itemset)。 • 接著,從⼤大型項⽬目集中產⽣生信⼼心⽔水準⼤大於或等於最⼩小信⼼心⽔水

    準的關聯聯法則。 • EX:假設Z 為⼤大型項⽬目集,所有形式為X → Y,滿⾜足、 以及 信⼼心⽔水準⼤大於或等於最⼩小信⼼心⽔水準的關聯聯法則都應該被產⽣生 。 很明顯的,⼀一旦所有⼤大型項⽬目集被發掘之後,關聯聯法則的產⽣生將變得非常直接。
  6. 範例例 • 若若最⼩小⽀支持度與最⼩小信⼼心⽔水準分別為0.2和0.7,則項 ⽬目集{1,3}是⼤大型項⽬目集,因此可以考慮下列列這兩兩條法 則: {1} → {3}和{3} → {1}

    • 法則{1} → {3}的信⼼心⽔水準為0.3/0.4=0.75 • 法則{3} → {1}的信⼼心⽔水準為0.3/0.5=0.6 • 其中只有法則{1} → {3}才是我們所想要的關聯聯法則。
  7. • ⼀一個包含 k個項⽬目的項⽬目集被稱為 k-項⽬目集 (k- itemset)。 • 符號Lk表⽰示所有⼤大型k-項⽬目集 (large k-itemset)

    所成 的集合。 • Apriori的基本精神是使⽤用前⼀一個階段所發掘的⼤大型項 ⽬目集來來產⽣生下⼀一個階段的⼤大型項⽬目集
  8. 刪除(prune) • 刪除不滿⾜足Apriori 性質的候選項⽬目集。候選k-項⽬目集 Ck包含Lk,但不⼀一定和Lk相等。 • 假設 XiCk,Apriori 演算法在讀取資料庫中的每⼀一筆交 易易時,若若交易易⽀支持項⽬目集

    X,則X的⽀支持個數將會增加 1。 • 應⽤用Apriori 性質來來減少Ck的⼤大⼩小。 若若項⽬目集X有任何⼀一個⼤大⼩小為k-1的⼦子集合不是⼤大型(k-1)-項⽬目集,則X 必定不 是⼤大型k-項⽬目集,因此就可以將X從Ck中刪除。
  9. 例例: 設 ⼤大型項⽬目集L3={abc, abd, acd, ace, bcd} Self-joining: L3*L3 abcd

    from abc and abd acde from acd and ace Pruning: 3-item subset of abcd are abc, abd, acd and bcd. 3-item subset of acde are acd, ace, ade and cde. acde is removed because ade is not in L3 C4={abcd}
  10. (1) L1 = find_frequent_1-itemsets(D); (2) for (k=2;Lk-1 ≠Φ ;k++) {

       (3) Ck = apriori_gen(Lk-1 ,min_sup);    (4) for each transaction t ∈ D { //scan D for counts   (5) Ct = subset(Ck,t); //get the subsets of t that are candidates   (6) for each candidate c ∈ Ct    (7) c.count++;   (8) }    (9) Lk ={c ∈ Ck|c.count≥min_sup }    (10) }    (11) return L= ∪ k Lk;