Veri Madenciliği Birliktelik Analizi: Temel Kavramlar ve Algoritmalar Bölüm 6 için Ders Notları Introduction to Data Mining by Tan, Steinbach, Kumar Çeviren Yrd. Doç. Dr. Mete Çelik © Tan,Steinbach, Kumar Introduction to Data Mining 4/18/2004 1
Birliktelik Kural Madenciliği Verilen kayıt (transaction) kümesinden, kayıtlar içerisinde bir elemanın oluşunun diğer elemanların oluşuna bağlı olarak tahmin edilmesini sağlayan kuralları bul. Market-Sepeti Kayıtları Birlikteli Kuralı Örnekleri {Bebk Bezi } {Bira}, {Süt, Ekmek} {Yumurta,Kola}, {Bira, Ekmek} {Süt}, Gerektirme işlemi eş-oluşumu gösterir, nedenselliği göstermez.
Tanım: Sık Eleman Kümesi Eleman_Kümesi (Itemset) Bir veya birden fazla elemanın bir kolleksiyonu Örnek: {Süt, Ekmek, Bebek Bezi} K-elemen_kümesi k tane eleman içeren eleman kümsesi Destek Sayısı (Support Count) () Bir eleman_kümesinin oluşunun frekansı Örnek ({Süt, Ekmek, Bebek Bezi}) = 2 Destek (Support) Bir eleman kümesini içeren kayıtların toplam kayıtlara oranı Örnek: s({Süt, Ekmek, Bebek Bezi}) = 2/5 Sık Eleman Kümesi Destek değeri minsup değerine eşit veya bu değerden yüksek olan eleman kümesidir.
Tanım: Birliktelik Kuralı X Y, şeklinde olan ifadelerdir (C ve Y eleman kümelerini gösterir. Örnek: {Süt, Bebek Bezi} {Bira} Kural Değerlendirme Metrikleri Destek (s) X ve Y’nin herikisini de içeren kayıtların toplam kayıtlara oranı Güven (Confidence= (c) X’i içeren kayıtların kaç tanesinin Y’yi de içerdiğini gösteren ölçüt. Örnek:
Birliktelik Kural Madenciliği İşlemi Verilen T kayıt kümesi için,birliktelik kural madenciliğinin amacı aşağıdaki şartı sağlayan bütün kuralların bulunmasıdır destek≥ minsup (mindes) eşik değeri güven ≥ minconf (mingüv) eşik değeri Kaba (Brute-force) yaklaşım: Bütün mühtemel birliktelik kurallarını listele Herbir kuralın destek ve güvenini hesapla Prune rules that fail the minsup ve minconf eşik değerlerini sağlamayan kuralları ele Hesaplama maliyeti yüksek!
Birliktelik Kurallarının Madenciliği Kural Örnekleri : {Süt, Bebek Bezi} {Bira} (s=0.4, c=0.67) {Süt, Bira} {Bebek Bezi} (s=0.4, c=1.0) {Bebek Bezi, Bira} {Süt} (s=0.4, c=0.67) {Bira} {Süt, Bebek Bezi} (s=0.4, c=0.67) {Bebek Bezi} {Süt, Bira} (s=0.4, c=0.5) {Süt} {Bebek Bezi, Bira} (s=0.4, c=0.5) Gözlemler: Yukarıdaki bütün kurallar aynı eleman kümesinin ikili bölümlemeleridir: {Süt, Bebek Bezi, Bira} Aynı elemen kümesinden oluşan kurallar aynı destek değerlerine sahiptir fakat güvenleri farklı olabilir. Bu nedenle, destek ve güven ihtiyaçlarını ayırı ayrı değerlendiririz.
Birliktelik Kurallarının Madenciliği İki-adımlı yaklaşım.: Sık Eleman Kümesi Üretimi Destek değeri minsup’a eşit veya minsup’tan büyük olanları (destek minsup) üret. Kural Üretimi Herbir sık eleman kümesinden yüksek güvene sahip olan kuralları üret. Herbir kural, sık eleman kümelerinin ikili bölümlemesidir. Sık elemen kümesi üretiminin maliyeti hala yüksektir.
Sık Eleman Kümesi Üretimi Verilen d adet eleman için 2d muhtemel aday eleman kümesi vardır.
Sık Eleman Kümesi Üretimi Kaba (Brute-force) yaklaşım: Kafes (lattice) yapısındaki herbir eleman kümesi bir aday sık eleman kümesidir. Veritabanını tarayarak herbir adayın destek değerini hesapla. Herbir kayıdı bütün adaylar ile eşleştir. Karmaşıklık~ O(NMw) => Pahali çünkü M = 2d !!!
Hesaplama Karmaşıklığı Verilen d adet tekil eleman olsun : Toplam eleman kümesi sayısı= 2d Toplam muhtemel birliktelik kuralı sayısı: Eğer d=6, R = 602 kural
Sık Eleman Kümesi Üretme Stratejileri Aday sayısını azalt (M) Toplam arama: M=2d M’i azaltmak için budama (azaltma) tekniklerini kullan Kayıt sayısını azalt (N) Eleman kümesi boyutu artıyorken N boyutunu azalt DHP ve dikey-tabanlı (vertical-based) madencilik algoritmaları tarafından kullanıldı Karşılaştırma sayısını azalt (NM) Adayları veya kayıtları depolamak için etkili veri yapıları kullan Her adayı her kayıt ile karşılaştırmaya gerek yoktur.
Aday Sayısını Azaltmak Apriori prensibi: Eğer bir eleman kümesi sık ise onun bütün altkümeleri de sık olmalı. Destek ölçütünün aşağıdaki özelliği nedeniyle Apriori prensibi geçerlidir: Bir eleman kümesinin destek değeri onun altkümelerinin destek değerlerini asla aşmaz. Bu destek ölçütünün anti-monoton özelliği olarak bilinir.
Apriori Prensibinin Çalışması Sık olmadığı bulundu Elenen üstkümeler
Apriori Prensibinin Çalışması Elemanlar (1-eleman_kümesi) İkililer (2-eleman_kümesi) (Kola ve Yumurtayı içeren adayları üretmeye gerek yok) Minimum Destek= 3 Üçlüler (3-eleman_kümesi) Eğer her alt küme hesaba katılırsa, 6C1 + 6C2 + 6C3 = 41 Destek-tabanlı eleme ile, 6 + 6 + 1 = 13
Apriori Algoritması Yöntem: k=1 1 uzunluğundaki sık eleman kümelerini üret Yeni sık eleman kümesi üretilmeyene kadar devam et k uzunluğundaki sık elemen kümelerini kullanarak (k+1) uzunluğundaki aday eleman kümelerini üret. Sık olmayan k uzunluğundaki alt kümeleri içeren aday eleman kümelerini ele Veritabanını tarayarak herbir adayın desteğini hesapla Sadece sık eleman kümeleri kalacak şekilde sık olmayan adayları ele
Karşılaştırma Sayısını Azaltma Aday hesaplama : Heribir aday eleman kümesinin desteğini belirlemek için veritabanını tara Karşılaştırma sayısını azaltmak için adayları bir hash (çırpı veya küme) veri yapısında depola
Karmaşıklığı Etkileyen Etmenler Minimum destek eşik değerinin seçimi destek eşik değerini azaltmak daha fazla sık eleman kümesinin üretimine neden olacaktır Bu durum aday sayısını ve sık eleman kümesinin maksimum uzunluğunu arttırabilir Veri kümesinin boyutluluğu (eleman sayısı) herbir elemanın destek değerini depolamak için daha çok alana ihtiyaç vardır eğer sık elemanların sayısı artarsa, hesaplama ve I/O maliyeti de artabilir Veritabanı boyutu Apriori birden fazla okuma yapacağı için kayıt sayısına bağlı olarak algortima çalışma zamanı da artar Ortalama kayıt genişliği yoğun veri kümelerine bağlı olarak kayıt genişliği artar Bu sık eleman kümesinin maksimum uzunluğunu ve hash ağacının gezilmasını (bir kayıttaki altküme sayısı kayıdın genişliği ile artar) arttırabilir
Maximal Sık Eleman Kümesi Hiçbir üst kümesi sık olmayan elaman kümesi maksimal sık eleman kümesidir. Maksimal eleman kümesi Sık olmayan eleman kümeleri Sınır
FP-growth (FP-büyüme) Algoritması FP-ağacı (FP-tree) kullanarak veritabanının sıkıştırılmış gösterimini kullanır FP-ağaç oluşturulduktan sonra sık eleman kümelerini keşfetmek için tekrarlamalı böl-ve- yönet (divide-and-conquer) yaklaşımı kullanır.
FP-ağacı yapılışı null TID=1’i okuduktan sonra: A:1 B:1 TID=2’yi okuduktan sonra: null B:1 A:1 B:1 C:1 D:1
FP-ağacı yapılışı null B:3 A:7 B:5 C:3 C:1 D:1 D:1 C:3 E:1 D:1 E:1 D:1 Kayıt veritabanı null B:3 A:7 B:5 C:3 C:1 D:1 Başlık tablosu D:1 C:3 E:1 D:1 E:1 D:1 E:1 D:1 İşaretçiler, sık eleman kümelerinin üretimine yardım etmek için kullanılır
FP-growth D için şartlı örüntü tabanı : P = {(A:1,B:1,C:1), (A:1,B:1), (A:1,C:1), (A:1), (B:1,C:1)} P üzerine FP-growth’u tekrarlamalı olarak uygula Sık eleman kümeleri bulundu (destek değeri > 1 olanlar): AD, BD, CD, ACD, BCD null A:7 B:1 B:5 C:1 C:1 D:1 D:1 C:3 D:1 D:1 D:1
Literatürde çok sayıda metrik önerilmiştir. Bazıları, bazı uygulamalar için iyidir, bazı uygulamalar için iyi değildir