Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

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

Benzer bir sunumlar


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

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

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 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 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

6 Tanımlar Bütün öğelerden oluşan küme: Transaction (Hareket)
I = {ekmek, süt, bira, kola, yumurta, bez} Transaction (Hareket) T1 = {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 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 CS583, Bing Liu, UIC

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}

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

10 Basic Concepts: Frequent Patterns and Association Rules
Transaction-id Items bought 1 A, B, D 2 A, C, D 3 A, D, E 4 B, E, F 5 B, C, D, E, F Öğeler kümesi I = {i1, …, ik} 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ığı Customer buys diaper buys both buys beer Let supmin = 50%, confmin = 50% Yaygın öğeler: {A:3, B:3, D:4, E:3, AD:3} Birliktelik kuralları: A  D (60%, 100%) D  A (60%, 75%)

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 minconf 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

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., {a1, …, a100} 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

14 Kapalı örüntü Örnek. DB = {<a1, …, a100>, < a1, …, a50>}
Min_sup = 1. closed itemset (kapalı örüntüler) kümesi? <a1, …, a100>: 1 < a1, …, a50>: 2 Tüm örüntüler kümesi? 2100-1!!

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 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 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 The Apriori Algorithm—Örnek
Supmin = 2 Itemset sup {A} 2 {B} 3 {C} {D} 1 {E} Database TDB Itemset sup {A} 2 {B} 3 {C} {E} L1 C1 Tid Items 10 A, C, D 20 B, C, E 30 A, B, C, E 40 B, E 1st scan C2 Itemset sup {A, B} 1 {A, C} 2 {A, E} {B, C} {B, E} 3 {C, E} C2 Itemset {A, B} {A, C} {A, E} {B, C} {B, E} {C, E} L2 2nd scan Itemset sup {A, C} 2 {B, C} {B, E} 3 {C, E} C3 L3 Itemset {B, C, E} 3rd scan Itemset sup {B, C, E} 2

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

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

21 Apriori – önemli detaylar
Nasıl aday yaratlıyor? Step 1: self-joining Lk Step 2: pruning (azaltma) Aday yaratma örneği L3={abc, abd, acd, ace, bcd} Self-joining: L3*L3 abc ve abd kullanarak abcd acd ve ace kullanarak acde Azaltma: ade L3 miçinde geçmediği için acde elenir C4={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)

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. Han and Kamber 2001

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

28 Construct FP-tree from a Transaction Database
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} min_support = 3 {} f:2 c:2 a:2 b:1 m:1 p:1 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

29 Construct FP-tree from a Transaction Database
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} min_support = 3 {} f:4 c:1 b:1 p:1 c:3 a:3 m:2 p:2 m:1 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

30 Construct FP-tree from a Transaction Database
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 {} f:4 c:1 b:1 p:1 c:3 a:3 m:2 p:2 m:1 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

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 {} f:4 c:1 b:1 p:1 c:3 a:3 m:2 p:2 m:1 Header Table Item frequency head f 4 c 4 a 3 b 3 m 3 p 3 Conditional pattern bases item cond. pattern base c f:3 a fc:3 b fca:1, f:1, c:1 m fca:2, fcab:1 p fcam:2, cb:1

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)

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 {} Header Table Item frequency head f 4 c 4 a 3 b 3 m 3 p 3 f:4 c:1 All frequent patterns relate to m m, fm, cm, am, fcm, fam, cam, fcam {} f:3 c:3 a:3 m-conditional FP-tree c:3 b:1 b:1 a:3 p:1 m:2 b:1 p:2 m:1

34 örnek2 Min_sup = 2 Transaction itemset Sorted itemset Freq items T1
a,b,e b,a,e b:7 T2 b,d a:6 T3 b,c c:6 T4 a,b,d b,a,d d:2 T5 a,c e:2 T6 T7 T8 a,b,c,e b,a,c,e T9 a,b,c b,a,c Min_sup = 2

35 Örnek- devam Item Koşullu örüntü koşullu FP-tree Yaygın örüntüler e
{b,a:1}{b,a,c:1} <b:2,a:2> {b,e:2}{a,e:2}{a,b,e:2} d {b,a:1}{b:1} <b:2> {b,d:2} c {b,a:2}{b:2}{a:2} <b:4,a:2><a:2> {b,c:4}{a,c:4}{a,b,c:2} a {b:4} <b:4> {b,a:4}

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 Ö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 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 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 İ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 Farklı birliktelik kurallarını bulma
Çok seviyeli birliktelikler Çok boyutlu birliktelikler Nicel (quantitative) verilerde birliktelikler Diğer ilginç birliktelikler

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

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 supmin belirleme Top-K yakın yaygın örüntüler 5li gruplar halinde alınan ürünler Supmin belirlemek zordur

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 Basketball evet hayır Toplam (row) Peynir-evet 2000 1750 3750 Peynir-hayır 1000 250 1250 Toplam(col.) 3000 5000

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 hayır Toplam (row) Peynir-evet 2000 1750 3750 Peynir-hayır 1000 250 1250 Toplam(col.) 3000 5000

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 Ö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ç)


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

Benzer bir sunumlar


Google Reklamları