Bölüm 4. Birliktelik Kuralları http://ceng.gazi.edu.tr/~ozdemir
Örüntü / Pattern Örüntü: Bir veri setinde sıklıkla birlikte ortaya çıkan bir dizi öğe, alt dizin veya alt yapılar Örüntüler, veri setlerinin öz ve önemli özelliklerini temsil eder Örüntü keşfi: Örüntülerin büyük veri kümelerinden çıkarılması 2
Örüntü keşfi Neden? Bir veri kümesindeki doğal düzenlilikleri bulma Birçok temel veri madenciliği işlemi için temel oluşturuyor İlişki, korelasyon ve nedensellik analizi Ardışık, yapısal (ör. Alt grafiğin) kalıpların araştırılması Zaman uzayında, çoklu ortam, zaman serileri ve akış verilerinde model analizi Sınıflandırma: Ayrımcı örüntü tabanlı analiz Küme analizi: Örüntü tabanlı altuzay kümelemesi Geniş uygulama alanları vardır Pazar sepeti analizi, çapraz pazarlama, katalog tasarımı, satış kampanyası analizi, Web log analizi, biyolojik dizi analizi 3
İlişkilendirme/Birliktelik Kuralları - Association Rules Birliktelik kuralları olarak da bilinir İlişkilendirme kuralı madenciliği Veri kümesi içindeki yaygın örüntülerin (pattern) ve nesneleri oluşturan öğeler arasındaki ilişkilerin bulunması Örnekler Hangi ürünler çoğunlukla birlikte satılıyor? Yeni bir ilaca duyarlı olan DNA tipleri hangileridir? 4
Birliktelik Kuralları Bilgisayar alan bir müşterinin aynı zamanda antivirus yazılımı almasına ait ilişkilendirme/birliktelik kuralı bilgisayar antivirüs_yazılımı [support=%2, confidence=%60] Bilgisayar alma eylemi anti virüs yazılımı almaya da yol açabilir Kural ne kadar güçlü Support = destek (müşterilerin %2 si bilgisayar ve antivirüs yazılımını beraber almışlar) Confidence = güven (bilgisayar alan müşterilerin %60 ı antivirüs yazılımı da almış) Kuralın geçerli olabilmesi için minimum support ve confidence değerlerini sağlaması gerekir 5
Tanımlar Bütün öğelerden oluşan küme I={i 1,i 2,...,i d } I={ekmek, süt, bira, kola, yumurta, bez} Transaction/Hareket T j I, T 1 ={ekmek, süt} Hareketlerden oluşan veri kümesi D={T 1,T 2,...,T N } Sepet hareketleri Market-Basket transactions TID Öğeler 1 Ekmek, Süt 2 Ekmek, Bez, Çay, Yumurta 3 Süt, Bez, Çay, Kola 4 Ekmek, Süt, Bez, Çay 5 Ekmek, Süt, Bez, Kola İlişkilendirme kuralları örnekleri {Bez} {Çay}, {Süt, Ekmek} {Yumurta, Kola}, {Çay, Ekmek} {Süt}, 6
Tanımlar Öğeler kümesi (Itemset) Bir veya daha çok öğeden oluşan küme k-öğeler kümesi (k-itemset): k öğeden oluşan küme 3-öğeler kümesi: {Bez, Çay, Ekmek} Destek sayısı σ (Support count) Bir öğeler kümesinin veri kümesinde görülme sıklığı ({Süt, Ekmek,Bez}) = 2 Destek s (Support) Bir öğeler kümesinin içinde bulunduğu hareketlerin toplam hareketlere oranı s({süt, Ekmek,Bez}) = 2/5 Yaygın öğeler (Frequent itemset) Destek değeri minimum support eşik değerinden daha büyük ya da eşit olan öğeler kümesi 7
İlişkilendirme Kuralları Oluşturma Veri kümesi D içinden en az, en küçük destek ve güven değerine sahip X Y şeklinde kuralların bulunması X I, Y I, X Y= X ve Y yaygın öğe kümeleri Örnek: {Süt,Bez} {Çay} 8
İlişkilendirme Kuralları Değerlendirme Kuralları değerlendirme ölçütleri Destek (support) s: X Y öğeler kümesinin bulunduğu hareket sayısının toplam hareket sayısına oranı Örnek: {Süt, Bez} Çay (Süt, Bez,Çay) s T 2 5 0.4 Güven (confidence) c: X Y öğeler kümesinin bulunduğu hareket sayısının X öğeler kümesi bulunan hareket sayısına oranı c (Süt, Bez,Çay) (Süt, Bez) 2 3 0.67 9
Örnek Transaction-id Items bought 10 A, B, D 20 A, C, D 30 A, D, E 40 B, E, F 50 B, C, D, E, F minimum destek (support) ve güven (confidence) koşullarını sağlayan tüm X Y kurallarını bulunuz Customer buys x and y Customer buys y sup min = 50%, conf min = 50% Freq. Pat.: {A:3, B:3, D:4, E:3, AD:3} Birliktelik kuralları: A D (60%, 100%) D A (60%, 75%) Customer buys x (Soru: Tüm kurallar önemli mi?) 10
Problem - Çok sayıda yaygın örüntü olması Uzun bir örüntü çok sayıda alt örüntü içerir Aşağıdaki TDB 1 kaç tane yaygın örüntü içerir? TDB 1: T 1 : {a 1,, a 50 }; minsup = 1 olsun T 2 : {a 1,, a 100 } 1-itemsets: {a 1 }: 2, {a 2 }: 2,, {a 50 }: 2, {a 51 }: 1,, {a 100 }: 1, 2-itemsets: {a 1, a 2 }: 2,, {a 1, a 50 }: 2, {a 1, a 51 }: 1,, {a 99, a 100 }: 1,,,, 99-itemsets: {a 1, a 2,, a 99 }: 1,, {a 2, a 3,, a 100 }: 1 100-itemset: {a 1, a 2,, a 100 }: 1 Toplam yaygın öğeseti sayısı: Saklamak ve hesap etmek için çok büyük 11
Geçerli İlişkilendirme Kuralları Oluşturma İlişkilendirme kuralları madenciliğinde temel amaç D hareket kümesinden kurallar oluşturmak kuralların destek değeri, belirlenen en küçük destek (min sup ) değerinden büyük ya da eşit olmalı kuralların güven değeri, belirlenen en küçük güven (min conf ) değerinden büyük ya da eşit olmalı Brute-force yaklaşım Olası bütün kuralları listele Her kural için destek ve güven değeri hesapla min sup ve min conf eşik değerlerinden küçük destek ve güven değerlerine sahip kuralları sil Hesaplama maliyeti yüksek 12
Geçerli İlişkilendirme Kuralları Oluşturma İki adımda gerçeklenir 1. Yaygın öğeleri belirleme: destek değeri minimum support değerinden büyük ya da eşit olan öğeler kümelerini bulma 2. Kural Oluşturma: Güven değeri min conf değerinden büyük ya da eşit olan ve yaygın öğelerin ikili bölünmeleri olan kurallar oluşturma Güçlü kurallar 13
Geçerli İlişkilendirme Kuralları Oluşturma null A B C D E AB AC AD AE BC BD BE CD CE DE ABC ABD ABE ACD ACE ADE BCD BCE BDE CDE ABCD ABCE ABDE ACDE BCDE ABCDE d öğeden 2 d -1öğe seti oluşturulabilir 14
Yaygın Öğe Adayları Oluşturma Yaygın öğeleri bulmak maliyetli d öğe için 2 d -1 öğe oluşabilir Bu da 2 d -1 yaygın öğe adayı demektir Brute-Force Yaklaşım Her yaygın öğe adayı için veri kümesini taranarak hareketlerde yaygın öğe adayı bulunup bulunmadığı kontrol edilir Yaygın öğe adayları için destek değeri bulunur Destek değeri min sup değerine eşit yada büyük olanlar yaygın öğeler Karmaşıklığı: O(NMw), M=2 d - 1 hesaplaması maliyetli N TID Öğeler 1 Ekmek, Süt 2 Ekmek, Bez, Çay, Yumurta 3 Süt, Bez, Çay, Kola 4 Ekmek, Süt, Bez, Çay 5 Ekmek, Süt, Bez, Kola Aday öğe setleri M w 15
Yaygın Öğe Oluşturma Yöntemleri 3 temel yaklaşım var Apriori yöntemi (Agrawal & Srikant@VLDB 94) Freq. pattern growth yöntemi (FPgrowth Han, Pei & Yin @SIGMOD 00) Vertical data format yöntemi (Charm Zaki & Hsiao @SDM 02) 16
Apriori yöntemi Apriori yöntemi Rakesh Agrawal, Ramakrishnan Srikant, Fast Algorithms for Mining Association Rules, Proc. 20th Int. Conf. Very Large Data Bases, VLDB 94 Heikki Mannila, Hannu Toivonen, Inkeri Verkamo, Efficient Algorithms for Discovering Association Rules. AAAI Workshop on Knowledge Discovery in Databases (KDD-94). Temel yaklaşım: X,Y : (X Y ) s(x ) s(y ) Bir öğeler kümesinin destek değeri, bu kümenin herhangi bir altkümesinin destek değerinden büyük olamaz anti-monotone özellik 17
Apriori yöntemi Çıkarım: Bir yaygın öğenin herhangi bir altkümesi de yaygın öğedir {Süt, Bez, Çay} kümesi yaygın öğe ise {Süt, Bez} kümesi de yaygın öğedir {Süt, Bez, Çay} öğeler kümesi olan her harekette {Süt, Bez} kümesi de vardır Yaygın öğe aday sayısını azaltma yöntemi: Yaygın öğe olmayan bir kümenin üst kümeleri yaygın öğe adayı olarak oluşturulmaz (destek değeri hesaplanmaz) Yöntem: k-yaygın öğeler kümesinden (k+1) yaygın öğe adayları oluştur yaygın öğe adayları için destek değeri hesapla 18
Apriori yöntemi null A B C D E AB AC AD AE BC BD BE CD CE DE Yaygın öğe seti değil ABC ABD ABE ACD ACE ADE BCD BCE BDE CDE ABCD ABCE ABDE ACDE BCDE Atılan üst kümeler ABCDE 19
The Apriori Algorithm (Pseudo-Code) C k : Candidate itemset of size k F k : Frequent itemset of size k K := 1; F k := {frequent items}; // frequent 1-itemset while (F k!= ) do { // when F k is non-empty C k+1 := candidates generated from F k ; // candidate generation Derive F k+1 by counting candidates in C k+1 with respect to TDB at minsup; k := k + 1 } return k F k // return F k generated at each level 20
Örnek 1 Database TDB Tid Items 10 A, C, D 20 B, C, E 30 A, B, C, E 40 B, E 1 st scan Itemset sup {A} 2 C 1 L 1 {B} 3 {C} 3 {D} 1 {E} 3 C 2 C 2 {A, B} 1 L 2 Itemset 2 nd scan sup {A, C} 2 {B, C} 2 {B, E} 3 {C, E} 2 Sup min = 2 Itemset sup {A, C} 2 {A, E} 1 {B, C} 2 {B, E} 3 {C, E} 2 Itemset sup {A} 2 {B} 3 {C} 3 {E} 3 Itemset {A, B} {A, C} {A, E} {B, C} {B, E} {C, E} C 3 Itemset 3 rd scan L 3 {B, C, E} Itemset sup {B, C, E} 2 21
Apriori Yaygın örüntü adayları nasıl üretilecek? Step 1: self-joining F k Step 2: pruning Örnek F 3 = {abc, abd, acd, ace, bcd} Self-joining: F 3 *F 3 abc ve abd den abcd acd ve ace den acde Pruning: ade F 3 setinde olmadığı için acde elenir C 4 = {abcd} self-join abc abd acd ace bcd abcd self-join acde pruned
SQL Uygulaması Öğelerin sıralı olduğunu varsayalım Step 1: self-joining F k-1 insert into C k select p.item 1, p.item 2,, p.item k-1, q.item k-1 from F k-1 as p, F k-1 as q where p.item 1 = q.item 1,, p.item k-2 = q.item k-2, p.item k-1 < q.item k-1 Step 2: pruning for all itemsets c in C k do for all (k-1)-subsets s of c do self-join if (s is not in F k-1 ) then delete c from C k abc abd acd ace bcd abcd self-join acde pruned
Örnek 2 Item Count Bread 4 Coke 2 Milk 4 Beer 3 Diaper 4 Eggs 1 Minimum Support = 3 Items (1-itemsets) Itemset Count {Bread,Milk} 3 {Bread,Beer} 2 {Bread,Diaper} 3 {Milk,Beer} 2 {Milk,Diaper} 3 {Beer,Diaper} 3 Pairs (2-itemsets) (Coke ve Eggs içeren setler dahil edilmedi) Triplets (3-itemsets) Tüm öğe setleri dahil olursa, 6 C 1 + 6 C 2 + 6 C 3 = 6+15+20=41 Destek değerine göre azaltılırsa, 6 C 1 + 4 C 2 + 3 C 3 = 6+6+1 = 13 Itemset Count {Bread,Milk,Diaper} 3 24
Apriori yöntemi - Özet Yaygın öğe setlerini belirleme Uzunluğu k=1 olan yaygın öğe setlerini oluştur Yeni yaygın öğeseti kalmayana kadar tekrarla k uzunluğundaki yaygın öğe setlerinden (k+1) uzunluğundaki aday öğe setlerini oluştur k uzunluğunda yaygın olmayan altkümelere sahip aday öğe setlerini ele Veri tabanını tarayarak aday öğe setlerinin support countlarını hesapla Yaygın olmayan aday öğe setlerini ele ve sadece yaygın olanlarla devam et 25
Yaygın Öğelerden İlişkilendirme Kuralları Oluşturma Sadece güçlü ilişkilendirme kuralları oluşuyor Yaygın öğeler min sup değerini sağlıyor Güçlü ilişkilendirme kuralları min conf değerini sağlıyor. Yöntem: Her yaygın öğeler kümesi f in altkümelerini (s) oluştur Eğer destek(f) / destek(s) minconf ise, altküme s için, s (f-s) ilişkilendirme kuralı oluştur 26
Örnek 3 Min support count 2 Min confidence %70 Apriori ile ilişkilendirme kurallarını oluşturunuz 27
Örnek 3 28
Örnek 3 29
Örnek 3 30
Örnek 3 31
Apriori-Problemler Tekrarlı veri tabanı taramaları : Tüm veritabanını taramak zor i 1 i 2 i 100 itemsetini bulmak için gerekli tarama sayısı: 100 aday yaygın örüntü sayısı: oluşan veritabanları için ek yer ihitiyacı? 32
Apriori: Geliştirme alternatifleri Veri tabanı tarama sayısını düşürme Partitioning (e.g., Savasere, et al., 1995) Dynamic itemset counting (Brin, et al., 1997) Aday yaygın öğe seti sayısını azaltma Hashing (e.g., DHP: Park, et al., 1995) Pruning by support lower bounding (e.g., Bayardo 1998) Sampling (e.g., Toivonen, 1996) Özel veri yapılarından faydalanma Tree projection (Agarwal, et al., 2001) H-miner (Pei, et al., 2001) Hypecube decomposition (e.g., LCM: Uno, et al., 2004)
Partitioning: Veri tabanını sadece iki defa tarama Teorem: Yaygın olma olasılığı olan her öğeseti mutlaka veri tabanın bir parçasında da (alt kümesinde) yaygın olmalıdır TDB + TDB 1 2 + + TDB k = TDB sup 1 (X) < σ TDB 1 sup 2 (X) < σ TDB 2... sup k (X) < σ TDB k sup(x) < σ TDB Method: VT yi iki defa tara (A. Savasere, E. Omiecinski and S. Navathe, VLDB 95) Tarama 1: VT yi ana hafızaya sığacak kadar küçük parçalara böl... Yerel yaygın öğeseti adaylarını belirle Tarama 2: birleştirerek global yaygın öğe setlerini elde et global yaygın öğe seti adaylarını bul (en az bir alt kümede yaygın olan öğe setleri) VT yi bir kez daha tarayarak bu aday öğesetlerinin gerçek görülme sıklıklarını belirle
Direct Hashing and Pruning (DHP) DHP (Direct Hashing and Pruning): (J. Park, M. Chen, and P. Yu, SIGMOD 95) Hashing: Farklı itemsetler aynı hash değerine sahip olabilir: v = hash(itemset) 1. tarama: 1-itemsetler sayılırken, 2-itemsetler için aynı hash değerine sahip olanları sepetlere ayır ve say Gözlem: Bir k-itemset in sayısı minsup den küçükse yaygı olamaz Örnek: Veri tabanında 1 taramada özet değerleri aynı olan 2-itemset leri sepetlere ayır {ab, ad, ce} {bd, be, de} 1. taramanın sonunda minsup = 80, ise ab, ad, ce yi ele Neden? -> count{ab, ad, ce} < 80 Özellkle 2-itemset lerde çok sayıda itemset elenir Itemsets Hash Table Count {ab, ad, ce} 35 {bd, be, de} 298 {yz, qs, wt} 58
Exploring Vertical Data Format: ECLAT ECLAT (Equivalence Class Transformation): A depth-first search algorithm using set intersection [Zaki et al. @KDD 97] Tid-List: Bir itemset için oluşturulmuş transaction-id listesi Vertical format: t(e) = {T 10, T 20, T 30 }; t(a) = {T 10, T 20 }; t(ae) = {T 10, T 20 } Tid-List özellikleri t(x) = t(y): X ve Y herzaman birlikte görülmüş (e.g., t(ac} = t(d}) t(x) t(y): X içeren bir transaction her zaman Y de içerir (e.g., t(ac) t(ce)) Dikey kesişimler üzerinden yaygın örüntüler bulunur A transaction DB in Horizontal Data Format Tid Item Itemset 10 a, c, d, e 20 a, b, e 30 b, c, e The transaction DB in Vertical Data Format TidList a 10, 20 b 20, 30 c 10, 30 d 10 e 10, 20, 30
ECLAT: Örnek TID T100 T200 T300 T400 T500 T600 T700 T800 T900 List of item IDS I1,I2,I5 I2,I4 I2,I3 I1,I2,I4 I1,I3 I2,I3 I1,I3 I1,I2,I3,I5 I1,I2,I3 37
ECLAT: Örnek Veri seti vertical data format kullanılarak da gösterilebilir itemset I1 I2 I3 I4 I5 TID_set {T100,T400,T500,T700,T800,T900} {T100,T200,T300,T400,T600,T800,T900} {T300,T500,T600,T700,T800,T900} {T200,T400} {T100,T800} 38
ECLAT Örnek Veri bir veri tabanı taraması ile vertical hale getirilir TID List of item IDS T100 I1,I2,I5 T200 I2,I4 T300 I2,I3 T400 I1,I2,I4 T500 I1,I3 T600 I2,I3 T700 I1,I3 T800 I1,I2,I3,I5 T900 I1,I2,I3 itemset I1 I2 I3 I4 I5 TID_set {T100,T400,T500,T700,T800,T900} {T100,T200,T300,T400,T600,T800,T900} {T300,T500,T600,T700,T800,T900} {T200,T400} {T100,T800} Bir öğe kümesinin (itemset) support count değeri TID_set in uzunluğu olur. 39
ECLAT Örnek itemset TID_set Frequent 1- itemsets in vertical format I1 I2 I3 {T100,T400,T500,T700,T800,T900} {T100,T200,T300,T400,T600,T800,T900} {T300,T500,T600,T700,T800,T900} min_sup=2 I4 {T200,T400} I5 {T100,T800} Apriori kuralına göre frequent k-itemset ler kullanılarak aday (k+1)-itemset ler elde edilir Frequent 2- itemsets in vertical format itemset {I1,I2} {I1,I3} {I1,I4} {I1,I5} {I2,I3} {I2,I4} {I2,I5} {I3,I5} TID_set {T100,T400,T800,T900} {T500,T700,T800,T900} {T400} {T100,T800} {T300,T600,T800,T900} {T200,T400} {T100,T800} {T800} 40
ECLAT Algorithm by Example Frequent 3- itemsets in vertical format itemset {I1,I2,I3} {I1,I2,I5} TID_set {T800,T900} {T100,T800} min_sup=2 Bu işlem k her seferinde 1 artırılarak devam ettirilir Özet Apriori özelliğini kullanarak aday (k+1)-itemset leri k-itemset lerden oluşturur Tek bir veri tabanı taraması yeterlidir Her bir k-itemset için TID_set support count bulmak için gerekli olan bilgiye sahiptir. TID-set ler oldukça uzun olabilir. Yer maliyeti artabilir. 41
Apriori Bottleneck: aday-üretme-ve-test Aday üretmeden yapabilir miyiz? 42
Aday Oluşturmadan Yaygın Öğeleri Belirleme Ana fikir Kısa yaygın öğelere yeni öğeler eklenerek daha uzun yaygın öğeler elde etme Örnek: abc bir yaygın öğe Veri kümesinde içinde abc öğeleri bulunan hareketler (DB abc) olsun Eğer (DB abc) içinde d yaygın öğe olarak bulunursa: abcd yaygın öğe olarak belirlenir 43
FP-Tree Algoritması 1. DB bir kez taranarak 1-yaygın öğe bulunuyor 2. Yaygın öğeler destek sayısına göre büyükten küçüğe sıralanıyor, f-list 3. DB bir kez daha taranarak FP-ağacı oluşturuluyor. 44
FP-Ağacının Özelliği Bütünlük Yaygın öğeleri bulmak için gerekli tüm bilgiyi barındırır Sıkıştırılmış Yaygın olmayan öğeler FP-ağacında bulunmaz Destek sayısı daha büyük olan öğeler köke daha yakın Asıl veri kümesinden daha büyük değil 45
FP-Tree Algoritması: Örnek 1 F-list D 46
FP-Tree Algoritması: Örnek 2 TID Items bought (ordered) frequent items 100 {f, a, c, d, g, i, m, p} {f, c, a, m, p} 200 {a, b, c, f, l, m, o} {f, c, a, b, m} 300 {b, f, h, j, o, w} {f, b} 400 {b, c, k, s, p} {c, b, p} 500 {a, f, c, e, l, p, m, n} {f, c, a, m, p} min_support = 3 Header Table Item frequency head f 4 c 4 a 3 b 3 m 3 p 3 F-list=f-c-a-b-m-p {} f:4 c:1 c:3 a:3 b:1 b:1 p:1 m:2 p:2 b:1 m:1 47
Örüntüleri ve Veri Kümesini Bölme Yaygın öğeler f-listesine göre altkümelere bölünür F-list=f-c-a-b-m-p p öğesi bulunan örüntüler m öğesi bulunan ancak p öğesi bulunmayan örüntüler... c öğesi bulunan ancak a, b, m, p öğesi bulunmayan örüntüler f öğesi bulunan örüntüler 48
Öğe Koşullu Örüntü Oluşturma Başlık tablosundan her öğenin bulunduğu ilk düğüm bulunur. Bu düğümden başlayarak ağaçta öğenin bulunduğu tüm düğümlere ulaşılır Kökten öğeye kadar olan yollar bulunur (transformed prefix paths) 49
İçinde 'p olan tüm örüntülerin bulunması Başlık tablosunun en altından başla p:3 e tamamlanana kadar tüm yolları bul 'p' nin görüldüğü yollar: (f:4, c:3, a:3, m:2, p:2) ve (c:1, b:1, p:1) Bu yolların içinde geçen p sayısına göre değerleri (içinde p olan yolların sayısı) (f:2, c:2, a:2, m:2, p:2) ve (c:1, b:1, p:1) 50
İçinde 'p olan tüm örüntülerin bulunması p için koşullu FP ağacı oluşturmak için p yollardan atılır (f:2, c:2, a:2, m:2) ve (c:1, b:1) Zaten p nin bu yolların üzerinde olduğunu biliyoruz İçinde p olan yaygın öğe setlerini bulmak için koşullu FP ağacındaki yaygın öğe setleri bulunur ve p eklenir. Koşullu FP ağacı oluşturulurken yine support count lara bakılır ve eleme yapılır Elimizde sadece c:3 kaldı. İçinde p geçen yaygın öğe setleri p:3 ve cp:3 c=3 p=3 51
Koşullu FP Ağaçları Oluşturma Her koşullu örüntü için öğelerin destek sayısı bulunur Yaygın öğeler için koşullu FP-ağacı oluşturulur 52
FP-Ağaçları ile Yaygın Öğeleri Bulma Yaygın öğelere yinelemeli olarak yeni öğeler ekleme Yöntem: Her yaygın öğenin koşullu örüntülerini ve koşullu FP ağacını oluştur İşlemi yeni oluşturulan her koşullu FP-ağacı için tekrarla Oluşturulan FP-ağaçlarında hiç öğe bulunmayana kadar veya ağaçta tek bir dal kalana kadar işleme devam et Ağaçta tek bir dal kaldığında yaygın öğeler dalı oluşturan öğelerin kombinasyonu 53
İlişkilendirme Kuralları Oluşturma L yaygın öğelerden f L altkümelerinin bulunması f L-f kurallarının en küçük güven değeri koşulunu sağlaması gerekir Eğer {A,B,C,D} yaygın öğeler ise olası ilişkilendirme kuralları ABC D, ABD C, ACD B, BCD A, A BCD, B ACD, C ABD, D ABC, AB CD, AC BD, AD BC, BC AD, BD AC, CD AB 54
FP-Tree Algoritması: Örnek 3 55
FP-tree oluşturma TID Items 1 {A,B} 2 {B,C,D} 3 {A,C,D,E} 4 {A,D,E} 5 {A,B,C} 6 {A,B,C,D} 7 {A} 8 {A,B,C} 9 {A,B,D} 10 {B,C,E} TID=1 yerleştirildi TID=2 yerleştirildi B:1 A:1 B:1 null A:1 null B:1 C:1 Tablodaki bütün öğeler sup min =2 koşulunu sağlıyor. Öğeler support countlarına göre büyükten küçüğe sıralanıyor ABCDE D:1 56
FP-tree oluşturma TID Items 1 {A,B} 2 {B,C,D} 3 {A,C,D,E} 4 {A,D,E} 5 {A,B,C} 6 {A,B,C,D} 7 {A} 8 {A,B,C} 9 {A,B,D} 10 {B,C,E} TID=3 yerleştirildi B:1 null A:2 C:1 D:1 E:1 B:1 C:1 D:1 57
FP-tree oluşturma TID Items 1 {A,B} 2 {B,C,D} 3 {A,C,D,E} 4 {A,D,E} 5 {A,B,C} 6 {A,B,C,D} 7 {A} 8 {A,B,C} 9 {A,B,D} 10 {B,C,E} Bütün item lar yerleştirildikte n sonra B:5 A:8 C:1 null D:1 B:2 C:2 Header table Item A B C D E Pointer C:3 D:1 D:1 D:1 E:1 Header table support count a göre sıralanır E:1 D:1 E:1 Pointerlar yaygın öğe setlerini bulmak için kullanılıyor 58
FP-tree ile yaygın öğe seti bulma Header table ın en altından başlayarak, her item için koşullu FP-tree ler oluşturulur. {E} ile başlanır Bu ağaçlar üzerinde eklemeler yapılarak ({D,E} gibi) oluşturulabilecek tüm yaygın öğe setleri bulunur (divide-and-conqure). Header table daki bütün öğeler için bu işlem yapıldığında tüm yaygın öğe setleri bulunmuş olur. 59
Yaygın öğe seti bulma örnek null E ile biten yolları gösteren ağaç D:1 C:1 A:2 B:1 D:1 E:1 E:1 C:1 E:1 sup min =2 olsun E için Conditional Pattern base (E koşullu öğe setleri): P = {(A:1,C:1,D:1), (A:1,D:1), (B:1,C:1)} P üzerinde FP-tree algoritması recursive olarak uygulanır 60
Yaygın öğe seti bulma örnek D:1 C:1 null A:2 B:1 D:1 C:1 P den ağaç üretilir. Conditional Pattern basedeki tüm setler ağaca yerleştirildi sup min =2 olduğu için B ağaçta yer almamalı. 61
Yaygın öğe seti bulma örnek C:1 A:2 null C:1 {E} yaygın öğe seti olarak bulundu. Şimdi bu ağaç üzerinden 2 elemanlı yaygın öğe setlerini bulmak için FP-tree bir kez daha çalışır. D:1 D:1 E için Conditional FP-tree 62
Yaygın öğe seti bulma örnek null {D,E}, {C,E} ve {A,E} koşullu yaygın öğeleri bulmak için DE, CE ve AE ile biten yollar bulunur. A:2 C:1 D:1 D:1 DE ile biten yolları gösteren ağaç Yandaki ağaçta D nin support countu 2 olduğu için {D,E} yaygın öğe seti olarak bulunur. DE için Conditional Pattern base (DE koşullu öğe setleri): P = {(A:1,C:1), (A:1)} DE için Conditional Tree oluşturulur 63
Yaygın öğe seti bulma örnek null C nin support countu 1 olduğu için ağaçta olmamalı C:1 A:2 64
Yaygın öğe seti bulma örnek null A:2 DE için Conditional FP-Tree A nın support countu 2 olduğu için {A,D,E} yaygın öğe seti olarak bulunur. Sırada CE ve AE koşullu ağaçlarının üretilmesi vardır. Gerekli ağaçlar oluşturulduğunda sadece {C,E} ve {A,E} yaygın öğe setleri oluşur. Sonuç olarak E koşullu bütün yaygın öğe setleri bulunmuş olur: {E}, {D,E}, {A,D,E}, {C,E}, {A,E} Bu işlem header tablosundaki öğelerin hepsi için gerçekleştirilir. 65
Support-Confidence Limitleri Dikkat! s ve c yeterli mi? A B [s, c] Örnek veritabanı play-basketball not play-basketball sum (row) eat-cereal 400 350 750 not eat-cereal 200 50 250 sum(col.) 600 400 1000 Kural 1 play-basketball eat-cereal [40%, 66.7%] (yüksek s & c) Yanıltıcı bir kural. Tüm öğrencilerin Eating cereal oranı 75% > 66.7%, daha doğru bir kural: play-basketball eat-cereal [35%, 87.5%] (yükseks & c)
Lift ölçeği İlişkili olayları tanımlama ölçeği Lift is more telling than s & c X 2 benzeri lift( B, C) c( B C) s( C) s( B C) s( B) s( C) B B row C 400 350 750 C 200 50 250 col. 600 400 1000 Lift(B, C) B ve C nin ne kadar korelasyona sahip olduğunu gösterir Lift(B, C) = 1: B and C are independent > 1: positively correlated < 1: negatively correlated Bu örnekte:, 400 /1000 lift( B, C) 600 /1000 750 /1000 0.89 200 /1000 lift( B, C) 600 /1000 250 /1000 1.33 B ve C negatif korelasyona sahip -> lift(b, C) < 1; B ve C pozitifkorelasyona sahip -> lift(b, C) > 1