Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

1 Veri Madenciliği: İlişki Analizi ve Birliktelik Kuralları.

Benzer bir sunumlar


... konulu sunumlar: "1 Veri Madenciliği: İlişki Analizi ve Birliktelik Kuralları."— Sunum transkripti:

1 1 Veri Madenciliği: İlişki Analizi ve Birliktelik Kuralları

2 2 İlişki Analizi ve Birliktelik Kuralları Temel tanımlar ve yol haritası Verimli ve ölçeklenebilir yaygın örüntü bulma yöntemleri Çeşitli birliktelik kuralları bulma Birliktelik kurallarından korelasyon analizine Özet

3 3 Yaygın Örüntü analizi nedir? Yaygın örüntü (Frequent pattern): bir veri tabanında sık olarak beraber geçen nesneler arasındaki ilişki örüntüleri İlk olarak Agrawal, Imielinski, and Swami [AIS93] tarafından yaygın öğeler (frequent itemsets) ve birliktelik kuralı (association rule mining) konuları üzerine önerilmiştir. Motivasyon: Veri içindeki düzenleri bulmak Hangi ürünler çoğunlukla birlikte satılıyor? -Bira ve bebek bezi?! PC alanlar daha sonraki alışverişlerinde neler alıyor? Yeni bir ilaca duyarlı olan DNA tipleri hangileridir? Web dokümanları otomatik olarak sınıflandırılabilir mi?

4 4 Niye yaygın örüntü analizi önemli? Veri kümelerinin esas ve önemli özelliklerini ortaya çıkarır Birçok veri madenciliği yönteminde kullanılır Birliktelik, korelasyon ve nedensellik analizi Sıralı yada yapısal (e.g., sub-graph) örüntüler spatiotemporal, multimedia, ve stream data üzerinde analizler Demetleme ve sınıflandırma yöntemlerinde Birçok başka uygulama

5 Birliktelik Kuralları Bilgisayar alan bir müşterinin aynı zamanda antivirus yazılımı almasına ait ilişkilendirme kuralı PC  antivirus-sw [support =2%, conf= 60%] 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’I antivirüs yazılımı da almış Geçerli olabilmesi için minimum support ve confidence değerlerini sağlaması gerekir 5

6 Tanımlar 6 Bütün öğelerden oluşan küme: I = {ekmek, süt, bira, kola, yumurta, bez} Transaction (Hareket) T 1 = {süt, yumurta} Öğ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 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 CS583, Bing Liu, UIC7 Hareket verisi: dokümanlar kümesi Dokümanın içerdiği metin kelimeler kümesi olarak ifade edilir. doc1: Student, Teach, School doc2: Student, School doc3: Teach, School, City, Game doc4: Baseball, Basketball doc5: Basketball, Player, Spectator doc6: Baseball, Coach, Game, Team doc7: Basketball, Team, City, Game

8 İlişkilendirme Kuralları Oluşturma Destek s (Support) Bir öğeler kümesinin içinde bulunduğu hareketlerin toplam hareketlere oranı s({Süt, Ekmek,Bez}) = 2/5 Birliktelik kuralı (Association rule): ima kuralı (implication) Veri kümesi içinden en az, minimum destek ve güven değerine sahip A  B şeklinde kuralların bulunması A  B A ⊂ I, B ⊂ I, A ∩ B= ∅ Örnek: {Süt,Bez}  {Bira} 8

9 İlişkilendirme Kuralları Belli bir destek (support) ve güven (confidence) oranına göre değerlendirilir Support (A  B): A U B öğeler kümesinin bulunduğu hareketler sayısının toplam hareket sayısına oranı P(A U B) Confidence (A  B): A öğesini içeren bir hareketin B öğesini de içerme olasılığı P(B|A) = freq(AUB) / freq(A) Minimum support ve minimum confidence önceden belirlenen eşik değerleri 9

10 10 Basic Concepts: Frequent Patterns and Association Rules Öğeler kümesi I = {i 1, …, i k } minimum support and confidence değerlerini sağlayan tüm X  Y kurallarını bul support, s, hareketin X  Y içerme olasılığı confidence, c, X içeren hareketin Y yi de içerme olasılığı Let sup min = 50%, conf min = 50% Yaygın öğeler: {A:3, B:3, D:4, E:3, AD:3} Birliktelik kuralları: A  D (60%, 100%) D  A (60%, 75%) Customer buys diaper Customer buys both Customer buys beer Transaction-idItems bought 1A, B, D 2A, C, D 3A, D, E 4B, E, F 5B, C, D, E, F

11 Geçerli İlişkilendirme Kuralları Oluşturma Amaç minimum support ve confidence sağlayan tüm kuralları çıkartmak İki adımda gerçeklenir Yaygın öğeleri belirleme: destek değeri minimum support değerinden büyük ya da eşit olan öğeler kümelerini bulma Güçlü 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 İlk kısım daha zor 11

12 12 Kapalı Örüntüler Çok fazla yaygın öğe var: eğer bir öğe kümesi yaygın ise tüm alt kümeleri de yaygındır Uzun örüntülerin çok fazla alt örüntüsü olacaktır e.g., {a 1, …, a 100 } içerdiği alt kümeler Hesaplamak ve depolamak için çok büyük Çözüm: kapalı örüntüler (closed patterns) üzerinde çalışmak

13 Kapalı Örüntü Bir X öğe kümesi kapalıdır eğer: X yaygınsa (frequent) ve aynı destek seviyesinde X’i kapsayan baska bir öğe kümesi yoksa (Pasquier, et ICDT’99) i.e. belli bir destek seviyesi (support level) için en büyük öğe kümesi (itemset) Yaygın örüntüleri kayıpsız sıkıştırır Örüntü ve kural sayısını azaltır 13

14 14 Kapalı örüntü Örnek. DB = {, } Min_sup = 1. closed itemset (kapalı örüntüler) kümesi? : 1 : 2 Tüm örüntüler kümesi? !!

15 15 İlişki Analizi ve Birliktelik Kuralları Temel tanımlar ve yol haritası Verimli ve ölçeklenebilir yaygın örüntü bulma yöntemleri Çeşitli birliktelik kuralları bulma Birliktelik kurallarından korelasyon analizine Özet

16 16 Verimli ve ölçeklenebilir yaygın örüntü bulma yöntemleri Yaygın örüntülerin aşağıya doğru kapalılık özelliği Yaygın bir öğe kümesinin tüm alt kümeleri de yaygın olmak zorundadır Eğer {bira, b. bezi, çerez} yaygın ise, {bira, b. bezi} de yaygındır i.e., bir hareket {bira, b. bezi, çerez} içeriyorsa {bira, b. bezi} de içerir Birkaç farklı yaklaşım: İki temel yönteme bakıcaz Apriori (Agrawal & Freq. pattern growth (FPgrowth—Han, Pei & Her yöntem aynı sonucu çıkartmalı ama verimlilik ve hafıza ihtiyaçları değişebilir

17 17 Apriori: yaygın örüntü aday kümeleri Yaygın öğe aday sayısını azaltma yöntemi (Apriori pruning principle): Yaygın öğe olmayan bir kümenin üst kümeleri yaygın öğe adayı olarak oluşturulmaz (destek değeri hesaplanmaz) Yöntem: Başlangıç: DB’yi bir kere tara ve yaygın 1-öğeler kümesi (1-itemset) çıkar K uzunlukta yaygın öğekümelerinden, (k+1) uzunlukta aday öğe kümeleri yarat Adayları verikümesinde test et Eğer yeni aday veya yaygın öğekümesi üretemezsen dur

18 18 The Apriori Algorithm—Örnek Database TDB 1 st scan C1C1 L1L1 L2L2 C2C2 C2C2 2 nd scan C3C3 L3L3 3 rd scan TidItems 10A, C, D 20B, C, E 30A, B, C, E 40B, E Itemsetsup {A}2 {B}3 {C}3 {D}1 {E}3 Itemsetsup {A}2 {B}3 {C}3 {E}3 Itemset {A, B} {A, C} {A, E} {B, C} {B, E} {C, E} Itemsetsup {A, B}1 {A, C}2 {A, E}1 {B, C}2 {B, E}3 {C, E}2 Itemsetsup {A, C}2 {B, C}2 {B, E}3 {C, E}2 Itemset {B, C, E} Itemsetsup {B, C, E}2 Sup min = 2

19 19 The Apriori Algorithm Pseudo-code: C k : Candidate itemset of size k L k : frequent itemset of size k L 1 = {frequent items}; for (k = 1; L k !=  ; k++) do begin C k+1 = candidates generated from L k ; for each transaction t in database do increment the count of all candidates in C k+1 that are contained in t L k+1 = candidates in C k+1 with min_support end return  k L k ;

20 Apriori Algorithm 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 20

21 21 Apriori – önemli detaylar Nasıl aday yaratlıyor? Step 1: self-joining L k Step 2: pruning (azaltma) Aday yaratma örneği L 3 ={abc, abd, acd, ace, bcd} Self-joining: L 3 *L 3 abc ve abd kullanarak abcd acd ve ace kullanarak acde Azaltma: ade L 3 miçinde geçmediği için acde elenir C 4 ={abcd}

22 2inci adım: Yaygın öğelerden Kuralları çıkartmak Yaygın öğeler ≠ birliktelik kuralları Her yaygın öğeler kümesi X için Tüm alt kümeleri A lar için B = X-A ise A  B birliktelik kuralıdır eğer; Confidence(A  B) > min_conf Confidence(A  B) ≥ minconf, support(A  B) = support(A  B) = support(X) confidence(A  B) = support(A  B) / support(A) 22

23 Kural olusturma: Örnek {2,3,4} sup=50% ile yaygın öğekümesi olsun Alt kümeleri: {2,3}, {2,4}, {3,4}, {2}, {3}, {4}, Sırasıyla sup=50%, 50%, 75%, 75%, 75%, 75% Şu birliktelik kuralları oluşur: 2,3  4, confidence=100% 2,4  3, confidence=100% 3,4  2, confidence=67% 2  3,4, confidence=67% 3  2,4, confidence=67% 4  2,3, confidence=67% Tüm kuralların supportu = 50% support(A  B) = support(A  B)

24 Kural olusturma: Özet kısaca, A  B kuralını oluşturmak için, support(A  B) ve support(A) bilgileri lazım Confidence hesaplamak için gereken tüm değerler başta zaten hesaplanmış oluyor. Veriyi tekrar taramaya gerek yok Dolayısıyla bu adım yaygın öğekümelerini çıkartmaya kıyasla çok daha kolay.

25 25 Apriori Alg Sıkıntılı noktası Sık veritabanı taraması çok maliyetli Uzun örüntüleri çıkarmak tekrar tekrar tarama gerektirir ve çok fazla sayıda aday yaratılır i 1 i 2 …i 100 örüntüsünü bulmak için Tarama sayısı: 100 Dar boğaz : aday yaratma ve test Aday yaratma aşamasından kaçınmak mümkün mü?

26 26 Aday Yaratmadan Yaygın Örüntüleri Çıkarma Yerel yaygın öğeleri kullanarak kısa örüntülerden uzun örüntülere ulaşmak “abc” bir yaygın örüntü Veritabanından “abc” içeren tüm hareketleri (transaction) çek: DB|abc Eğer “d” DB|abc içinde yaygın bir öğe ise  abcd yaygın bir örüntüdür

27 27 Hareket tablosundan FP-tree (yaygın örüntü ağacı) yaratmak min_support = 3 TIDAlınan ürünler (sıralı) yaygın ürünler 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} 1.Veri Tabanını 1kere tara, yaygın 1-itemset (tek öğeli örüntü) bul 2.Yaygın öğeleri sıklığına göre büyükten küçüğe sırala, f-list 3.Veri tabanını tekrar tara, FP-tree oluştur {} f:1 c:1 a:1 m:1 p:1 Header Table Item frequency head f4 c4 a3 b3 m3 p3

28 28 Construct FP-tree from a Transaction Database min_support = 3 TID Alınan ürünler (sıralı) yaygın ürünler 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} {} f:2 c:2 a:2 b:1m:1 p:1m:1 Header Table Item frequency head f4 c4 a3 b3 m3 p3 F-list=f-c-a-b-m-p

29 29 Construct FP-tree from a Transaction Database min_support = 3 TID Alınan ürünler (sıralı) yaygın ürünler 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} {} f:4c:1 b:1 p:1 b:1c:3 a:3 b:1m:2 p:2m:1 Header Table Item frequency head f4 c4 a3 b3 m3 p3 F-list=f-c-a-b-m-p

30 30 Construct FP-tree from a Transaction Database min_support = 3 TIDItems 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} F-list=f-c-a-b-m-p {} f:4c:1 b:1 p:1 b:1c:3 a:3 b:1m:2 p:2m:1 Header Table Item frequency head f4 c4 a3 b3 m3 p3

31 31 X öğesini içeren örüntüleri bulmak FP-tree deki yaygın öğeler tablosundan Her yaygın öğeye ulaşan tüm linkleri takip et x öğesine ulaşan ama x’i içermeyen tüm transformed prefix path’leri çıkar Conditional pattern bases itemcond. pattern base cf:3 afc:3 bfca:1, f:1, c:1 mfca:2, fcab:1 pfcam:2, cb:1 {} f:4c:1 b:1 p:1 b:1c:3 a:3 b:1m:2 p:2m:1 Header Table Item frequency head f4 c4 a3 b3 m3 p3

32 Örnek: ‘p’ içerme koşullu örüntüler ‘p’ ye giden tüm rotaları bul Bunlar: (f:4, c:3, a:3, m:2, p:2) ve (c:1, b:1, p:1) ‘p’ içeren rotalar (f:2, c:2, a:2, m:2, p:2) ve (c:1, b:1, p:1) Prefix rotalar (‘p’ yi sil) (f:2, c:2, a:2, m:2) ve (c:1, b:1) 32

33 33 Koşullu örüntü rotalarından koşullu FP-tree lere For each pattern-base Koşullu rotadaki tüm öğeler için toplam sayımları tut Koşullu rotadaki yaygın öğeler için FP-tree oluştur min_sup=3 m-conditional pattern base: fca:2, fcab:1 {} f:3 c:3 a:3 m-conditional FP-tree All frequent patterns relate to m m, fm, cm, am, fcm, fam, cam, fcam   {} f:4c:1 b:1 p:1 b:1c:3 a:3 b:1m:2 p:2m:1 Header Table Item frequency head f4 c4 a3 b3 m3 p3

34 örnek2 TransactionitemsetSorted itemsetFreq items T1a,b,eb,a,eb:7 T2b,d a:6 T3b,c c:6 T4a,b,db,a,dd:2 T5a,c e:2 T6b,c T7a,c T8a,b,c,eb,a,c,e T9a,b,cb,a,c 34 Min_sup = 2

35 Örnek- devam ItemKoşullu örüntükoşullu FP-treeYaygın örüntüler e{b,a:1}{b,a,c:1} {b,e:2}{a,e:2}{a,b,e:2} d{b,a:1}{b:1} {b,d:2} c{b,a:2}{b:2}{a:2} {b,c:4}{a,c:4}{a,b,c:2} a{b:4} {b,a:4} 35

36 36 FP-tree Yapısının Faydaları Bütünlük (Completeness) Tüm yaygın örüntüleri bulur Hiçbir hareketin uzun örüntüsünü bölmez Compactness Gereksiz bilgi tutulmaz — yaygın olmayan öğeler atılır Öğeler yaygınlık oranına göre büyükten küçüğe sıralıdır: en yaygın olan en çok paylaşılan öğedir Orjinal veritabanından daha büyük yer tutmaz

37 37 Örüntüleri Bölmek f-list kullanılarak uzun örüntülerden kısa örüntüler türetilebilir F-list=f-c-a-b-m-p p içeren örüntüler m içeren ama p içermeyenler … c ve m içeren ama a yada b içermeyenler

38 38 VT yansıtma ile FP-tree ölçeklendirme FP-tree hafızaya sığmassa? VT yansıtma (DB projection) Önce veri tabanını dha ufak parçalara ayır Her parça için ayrı FP-tree oluştur Küçük FP-treelerde kurallar olusturup sonra birleştir

39 39 Niye FP-Growth daha iyi? Divide-and-conquer: Hem madencilik işini hem de veri tabanını o ana kadar çıkartılmş yaygın örüntülere göre parçalıyor Daha ufak veri üzerinde odaklanmış çalışmaya imkan veriyor Diğer faktörler Aday yaratma ve aday testi yok Sıkıştırılmış veritabanı: FP-tree structure Tüm veriyi tekrar tekrar taramak gerekmiyor Basit işlemler —yerel yaygın öğelerin sayımı ve alt ağaçlar yaratımı

40 40 İlişki Analizi ve Birliktelik Kuralları Temel tanımlar ve yol haritası Verimli ve ölçeklenebilir yaygın örüntü bulma yöntemleri Farklı birliktelik kurallarını bulma Birliktelik kurallarından korelasyon analizine Özet

41 41 Farklı birliktelik kurallarını bulma Çok seviyeli birliktelikler Çok boyutlu birliktelikler Nicel (quantitative) verilerde birliktelikler Diğer ilginç birliktelikler

42 42 Çok seviyeli birliktelik kuralları çıkarma Öğeler genellikle hiyerarşik bir yapı içerir Alt eviyelerde olan ürünlerin support seviyeleri de düşüktür Logitech wireless laser mouse M505 & Norton antivirus 2015 Bu öğelerden güçlü kurallar çıkarmak zordur Birden fazla min_sup seviyesi kullan uniform support Milk [support = 10%] 2% Milk [support = 6%] Skim Milk [support = 4%] Level 1 min_sup = 5% Level 2 min_sup = 5% Level 1 min_sup = 5% Level 2 min_sup = 3% reduced support

43 uniform support sıkıntı yaratır Eğer öğelerin geçme sıklıkları çok değişiyorsa iki temel sıkıntı vardır Eğer min_sup çok yüksek seçilirse, nadir geçen öğeleri içeren kurallar bulunamaz. Bu kuralları da çıkartabilmek için, min_sup çok düşük seçilmeli. Bu seferde kural sayısında patlama yaşanır. Çok fazla yaygın öğe olacağından, herşey herşeyle ilişkiliymiş gibi gözükür Çok seviyeli yapı bunu çözer

44 44 Çok-boyutlu kurallar Tek-boyutlu kurallar: buys(X, “milk”)  buys(X, “bread”) Çok-boyutlu kurallar:  2 boyut yada nitelik Inter-dimension (boyutlar arası) kurallar (sağ ve sol taraftaki nitlikler farklı) age(X,”19-25”)  occupation(X,“student”)  buys(X, “coke”) Hibrit boyutlu kurallar (ilişkili nitelikler) age(X,”19-25”)  buys(X, “popcorn”)  buys(X, “coke”) Kategorik nitelikler: sonlu sayıda seçenek var, değerler arasında büyüklük karşılaştırması yapılamaz— veri küpleri Nicel nitelikler: sayısal, değerler arasında sıralama- ayrık yapma, demetleme

45 45 Nicel Birliktelik Kuralları Yaş, maaş gibi nicel yani sayısal veriler verinin yapısına göre farklı tekniklerle işlenir 1.Statik ayrıklama: baştan belirlenmiş kurallara göre gruplara ayırma {0-15},{15-30}….gibi 2.Dinamik ayrıklama: Verinin nasıl dağıldığına bağlı olarak grupların sınırlarını dinamik olarak belirler Intervals dynamically determined 3.Demetleme: konumların bribirlerine uzaklığına bağlı olarak gruplara ayırır Önce tek boyutlu demetleme sonra birliktelik kuralları yaratma

46 46 Diğer ilginç örüntüler Esnek support koşulları Mücevher gibi bazı öğeler nadir geçer ama önemi yüksektir Ürüne özel sup min belirleme Top-K yakın yaygın örüntüler 5li gruplar halinde alınan ürünler Sup min belirlemek zordur

47 47 İlişki Analizi ve Birliktelik Kuralları Temel tanımlar ve yol haritası Verimli ve ölçeklenebilir yaygın örüntü bulma yöntemleri Çeşitli birliktelik kuralları bulma Birliktelik kurallarından korelasyon analizine Özet

48 İlginçlik ölçümü Güçlü kurallar herzaman önemli değildir Sadece bir yaklaşımdır, ilişkinin gerçek gücünü ölçemez Basketball oynamak  peynir yemek [40%, 66.7%] yanıltıcıdır Toplamda peynir yeme oranı 75% > 66.7%. Basketball oynamak  peynir yememek [20%, 33.3%] daha doğrudur, dah düşük support ve confidence içerse de 48 Basketball evet Basketball hayır Toplam (row) Peynir-evet Peynir-hayır Toplam(col.)

49 49 İlginçlik Ölçümü Lift (kaldıraç): Korelasyon Alakalı/korelasyon içeren olaylar ölçümü: lift lift > 1 pozitif korelasyon lift < 1 negatif korelasyon lift = 0 independent (bağımsız) Basketball evet Basketball hayır Toplam (row) Peynir-evet Peynir-hayır Toplam(col.)

50 50 İlişki Analizi ve Birliktelik Kuralları Temel tanımlar ve yol haritası Verimli ve ölçeklenebilir yaygın örüntü bulma yöntemleri Çeşitli birliktelik kuralları bulma Birliktelik kurallarından korelasyon analizine Özet

51 51 Özet Yaygın örüntüleri çıkarma —veri madenciliğinin çok önemli bir aşaması Support (destek) & Confidence (güven) Ölçeklenebilir yaygın örüntü bulma yöntemleri Apriori (Candidate generation & test) FPgrowth (Projection-based) Yaygın örüntü  birliktelik kuralları  Korelasyon/alaka analizi  Lift (kaldıraç)


"1 Veri Madenciliği: İlişki Analizi ve Birliktelik Kuralları." indir ppt

Benzer bir sunumlar


Google Reklamları