Veri Madenciliği. Bölüm 4. Birliktelik Kuralları. Doç. Dr. Suat Özdemir.

Benzer belgeler
İlişkilendirme kurallarının kullanım alanları

VERİ MADENCİLİĞİ. İlişkilendirme Kuralları Bulma. Yaygın Nitelikler. İlişkilendirme Kuralları. nitelikler kümesi (Itemset) Destek s (Support)

VERİ MADENCİLİĞİ. İlişkilendirme Kuralları Bulma. İlişkilendirme Kuralları. Yaygın Öğeler. İlişkilendirme Kuralları Madenciliği

Dr. Hidayet Takçı. Veri Madenciliği Eğitimi GYTE Dr. Hidayet Takçı 10/05/2008 #

Web Madenciliği (Web Mining)

inde Sepet Analizi Uygulamaları Market Basket Analysis for Data Mining

PARALEL VERİ MADENCİLİĞİ ALGORİTMALARI. BAŞARIM 09, Nisan 2009, ODTÜ, Ankara

APRIORI ALGORİTMASI İLE ÖĞRENCİ BAŞARISI ANALİZİ

Web Madenciliği (Web Mining)

Pazar Sepeti Analizi için Örneklem Oluşturulması ve Birliktelik Kurallarının

VERİ MADENCİLİĞİ (Birliktelik Kuralları) Yrd.Doç.Dr. Kadriye ERGÜN

Büyük Veri Analitiği (Big Data Analytics)

SOCIAL MENTALITY AND RESEARCHER THINKERS JOURNAL

BİRLİKTELİK KURALI YÖNTEMİ İÇİN BİR VERİ MADENCİLİĞİ YAZILIMI TASARIMI VE UYGULAMASI

Apriori Algoritması. Konu İçeriği. Giriş. Tarihçesi. Apriori Nedir? Örnekler. Algoritma. Açıklama. Weka İle Kullanımı. Kaynakça.

Veri madenciliği yöntemleri

Fiziksel Tasarım Konuları. Dosya Organizasyon Teknikleri Kayıt Erişim Yöntemleri Veri Yapıları

Birliktelik Kuralları Analizi. Yard. Doç. Dr. Derya BİRANT Prof. Dr. Alp KUT

Veri Tabanı, Veri Ambarı, Veri Madenciliği. Veri Madenciliği Uygulama Alanları

İş Zekası Çözümleri için Çok Boyutlu Birliktelik Kuralları Analizi

Eğitim seti (training set) sınıflandırma modelinin elde edileceği kayıtları içerir

VERİ MADENCİLİĞİ (Karar Ağaçları ile Sınıflandırma) Yrd.Doç.Dr. Kadriye ERGÜN

APRİORİ ALGORİTMASI İLE TEKNİK SEÇMELİ DERS SEÇİM ANALİZİ SELECTION BEHAVIOR ANALYSIS OF TECHNICAL ELECTIVE COURSES USING APRIORI ALGORITHM

Web Madenciliği (Web Mining)

Apriori Algoritması ile Teknik Seçmeli Ders Seçim Analizi

Yrd. Doç. Dr. Semra Erpolat

VERI TABANLARıNDA BILGI KEŞFI

127 - Twoing Algoritması ile Sınıflandırma Kalp Hastalığı Uygulaması MEHMET AKİF ERSOY ÜNİVERSİTESİ İLHAN UYSAL MEHMET BİLEN SAMİ ULUKUŞ

Apriori Algoritması ve Türkiye'deki Örnek Uygulamaları

Genel Kavramlar. Bilgisayar ortamında işlenebilecek durumda bulunan kayıtlar. Birbiri ile ilişkili veriler topluluğu ve veriler arası ilişkiler

Konular. VERİ MADENCİLİĞİ Giriş. Problem Tanımı. Veri Madenciliği: Tarihçe. Veri Madenciliği Nedir? Bilgi Keşfi

Veri Tabanı SQL Server ve Management Studio kurulum linkleri:

HACETTEPE ÜNİVERSİTESİ BAHAR DÖNEMİ

10.Hafta Minimum kapsayan ağaçlar Minimum spanning trees (MST)

Apriori Algoritmasının Farklı Veri Kümelerine Uygulanması

HARUN GÖKÇE YÜKSEK LİSANS TEZİ

VERİ MADENCİLİĞİ (Karar Ağaçları ile Sınıflandırma) Yrd.Doç.Dr. Kadriye ERGÜN

VERİ MADENCİLİĞİ Metin Madenciliği

Veri tabanı içinde bulunan tablolardakibazı sütunlarda bulunan bilgilerin, herkes tarafından görülmesi istenmeyebilir.

Yönetim Bilişim Sistemleri Alanında Metin Madenciliği ile Bilgi Haritalama

Sigortacılık Sektöründe Müşteri İlişkileri Yönetimi İçin Birliktelik Kuralı Kullanılması

SQL Komutları (2) Uzm. Murat YAZICI

BLM-431 YAPAY ZEKA. Ders-4 Bilgisiz Arama Yöntemleri. Yrd. Doç. Dr. Ümit ATİLA

BMB204. Veri Yapıları Ders 9. B+ Ağacı, Hash, Heap. Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

YZM 2116 Veri Yapıları

Tanım Bir A kümesinin her elemanı, bir B kümesinin de elamanı ise, A kümesine B kümesinin alt kümesi denir.

Week 6: Bağlı Liste (Linked List) BAĞLI LİSTE KAVRAMI TEKİL (SINGLE) BAĞLI LİSTE ÇİFT (DOUBLE) BAĞLI LİSTE DAİRESEL (CIRCULAR) BAĞLI LİSTE

YAPISAL SORGULAMA DİLİ (SQL)

Sıralı Örüntü Madenciliği ile e-bankacılıkta Kullanıcı Davranışlarının Modellenmesi

VERİ MADENCİLİĞİ MODELLERİ VE UYGULAMA ALANLARI

HACETTEPE ÜNİVERSİTESİ BAHAR DÖNEMİ

Week 9: Trees 1. TREE KAVRAMI 3. İKİLİ AĞAÇ DİZİLİMİ 4. İKİLİ ARAMA AĞACI 2. İKİLİ AĞAÇ VE SUNUMU > =

25 Nisan 2010 Pazar,

bitık MOBİL TİCARET UYGULAMASI ABDULLAH ÇİÇEKCİ

VERİ MADENCİLİĞİ (Sınıflandırma Yöntemleri) Yrd.Doç.Dr. Kadriye ERGÜN

ÇEŞİTLİ TİP VERİTABANLARINDA HASSAS BİLGİ GİZLEME

Bölüm 1. Giriş. Öğretim üyesi: Doç. Dr. Suat Özdemir E-posta: Websayfası:

Veri Madenciliği. Bölüm 1. Giriş. Doç. Dr. Suat Özdemir. w3.gazi.edu.tr/~suatozdemir

BiL416 Hafta-1 Veri Madenciliği:Giriş

TEMEL SQL SORGU ÖRNEKLERİ. Yukarıdaki sorguyu yazıp çalıştırdığımızda db_market adında bir veritabanı oluşturulur.

Veri Madenciliği. Bölüm 5. Sınıflandırma 1. Doç. Dr. Suat Özdemir.

VERİ MADENCİLİĞİ önemsiz olmayan, gizli, önceden bilinmeyen, potansiyel olarak kullanışlı

T.C. Ölçme, Seçme ve Yerleştirme Merkezi

T.C. Ölçme, Seçme ve Yerleştirme Merkezi

Büyük Veri İçin İstatistiksel Öğrenme (Statistical Learning for Big Data)

ASP.NET CLASS KULLANARAK VERİTABANI İŞLEMLERİ

VERİ MADENCİLİĞİ (Kümeleme) Yrd.Doç.Dr. Kadriye ERGÜN

Bu işleçlerin dışında, aşağıda belirtilen karşılaştırma işleçlerinden de yararlanılır.

Mesleki Terminoloji II Veri Madenciliği

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#9: AÇGÖZLÜ ALGORİTMALAR

Genel Graf Üzerinde Mutlak 1-merkez

Veritabanı Yönetim Sistemleri, 2. basım Zehra ALAKOÇ BURMA, 2009, Seçkin Yayıncılık

1. Oracle Data Miner 11g Release 2 Kurulumu Aşamaları

Final Sınavı Soruları Bahar 2018

Boole Cebri. (Boolean Algebra)

Web Madenciliği (Web Mining)

DOSYA ORGANİZASYONU. Ağaç Yapıları ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

Zamansal Veri Madenciliği ve Anomali Tespiti için Bir Uygulama

20461C Querying Microsoft SQL Server Modül Seviye Belirleme Testi

DAO İLE SQL KOMUTLARI. Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım.

YZM YAPAY ZEKA DERS#4: BİLGİSİZ ARAMA YÖNTEMLERİ

Kullanıcı tanımlı fonksiyonlar SQL2000 ile gelen özelliklerden biridir. Fonksiyonlar tek bir değer veya tablo döndürmek için kullanılır.

YZM 2116 Veri Yapıları

2 İlişkisel Veritabanı Tasarımı ve Normalizasyon. Veritabanı 1

Algoritmalar. Heap Sort. Bahar 2017 Doç. Dr. Suat Özdemir 1

Web Madenciliği (Web Mining)

SQL veri tabalarına erişmek ve onları kullanmak için geliştirilmiş bir lisandır.

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi

VERİ TABANI YÖNETİM SİSTEMLERİ Melih BÖLÜKBAŞI

BÖLÜM III: Şebeke Modelleri. Şebeke Kavramları. Şebeke Kavramları. Şebeke Kavramları. Yönlü Şebeke (Directed Network) Dal / ok

Veritabanı Yönetimi Bilgisayarların. Keşfi Hedefler. Veritabanı, Veri ve Bilgi. Veritabanı, Veri ve Bilgi. Veritabanı, Veri ve Bilgi

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#6: AZALT VE FETHET YÖNTEMİ

Çok fazla bilgiden gizli kalmış örüntüleri ortaya çıkarma sürecine Veri Madenciliği denir.

PostgreSQL ve PL/pgSQL

2. Oracle Data Miner İle Örnek Bir Veri Madenciliği Çalışması

Üst Düzey Programlama

XII. Ulusal Matematik Olimpiyatı Birinci Aşama Sınavı

Öğrencilerin Staj Verileri Üzerine Uygulanan Apriori Algoritması ile Birliktelik Kurallarının Çıkarılması ve Staj Eğiliminin Belirlenmesi

YZM 2116 Veri Yapıları

Transkript:

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