VERİ MADENCİLİĞİ ISE 302 Dr. Tuğrul TAŞCI
Birliktelik Kuralları (Association Rules) Birliktelik kuralları, birbiriyle ilişkili olan değişkenlerin ortaya çıkarılması ve aralarındaki bağlantının büyüklüğünün tespit edilmesine yöneliktir. Uygulama Alanları Pazarlama Tıbbi tanı Bilimsel veri analizi Sıklıkla tekrar eden kalıpların belirlenmesi ve bu kalıplar sayesinde tahmin gerçekleştirilmesi Acaba X ve Y ürününü alan müşteriler aynı zamanda hangi ürünü almayı tercih ediyorlar. Eğer X ve Y alanlar genellikle Z alıyorsa, bu durumda X ve Y alan ama Z almayanlar potansiyel Z müşterisidir. (Pazar Sepet Analizi) Satış ve Satın alma Tahminleri, Reyon organizasyonu, kampanyalar ve promosyonlar
Birliktelik Kuralları – Ölçüler Birliktelik kuralları, veri seti içindeki kayıtlara ait birlikte bulunma ve/veya bulunmama sıklığı ve/veya olasılığı gibi çeşitli istatistiki ölçü değerlerini hesaplayıp bunlar arasında oransal bir ilişki kuran çeşitli algoritma ve yöntemler ile oluşturulur. Birliktelik kuralları oluşturmada en çok kullanılan ölçüler Destek (Support) ve Güven (Confidence) ölçüleridir. Destek, bir ilişkinin tüm veri seti içinde hangi oranda tekrarlandığını belirler. Güven, X değişkeninin Y değişkeni ile birlikte bulunma olasılığını ortaya koyar. Birliktelik kurallarının geçerli olabilmesi için minimum destek ve güven (eşik) değerlerini sağlaması gereklidir. Birliktelik kurallarının oluşturulmasında destek ve güven dışında çok sayıda farklı istatistiki ölçüler de kullanılır. Bu ölçülerin çoğu destek ve güvene dayalı olarak hesaplanır.
Birliktelik Kurallarının Yorumlanması Bilgisayar alan bir müşterinin aynı zamanda antivirus yazılımı almasına ait ilişkilendirme kuralı Bilgisayar → Antivirus [Destek = %2, Güven = %60] Destek – Müşterilerin %2’si bilgisayar ve antivirüs yazılımını beraber almıştır. Güven – Bilgisayar alan müşterilerin %60’ı antivirüs yazılımı da almıştır.
Birliktelik Kuralları / Destek Kitap DVD Ramses Harry Potter Yüzüklerin Efendisi Toplam Müşterilerin ancak % 30 u Harry Potter kitabı ile Yüzüklerin Efendisi DVD lerini birlikte almışlardır. (Klasik Olasılık) 𝐷𝑒𝑠𝑡𝑒𝑘 𝑋→𝑌 = 𝑆𝑎𝑦𝚤(𝑋,𝑌) 𝑁 𝐷𝑒𝑠𝑡𝑒𝑘 𝐻𝑃→𝑌𝐸 = 𝑆𝑎𝑦𝚤(𝐻𝑃,𝑌𝐸) 10 𝐷𝑒𝑠𝑡𝑒𝑘 𝐻𝑃→𝑌𝐸 = 3 10 𝐷𝑒𝑠𝑡𝑒𝑘 𝐻𝑃→𝑌𝐸 =0,30
Birliktelik Kuralları / Güven Harry Potter kitabını alan müşterilerin %60 ı Yüzüklerin Efendisi DVD sini almıştır. (Şartlı Olasılık) Kitap DVD Ramses Harry Potter Yüzüklerin Efendisi 𝐺ü𝑣𝑒𝑛 𝑋→𝑌 = 𝑆𝑎𝑦𝚤(𝑋,𝑌) 𝑆𝑎𝑦𝚤(𝑋) 𝐺ü𝑣𝑒𝑛 𝐻𝑃→𝑌𝐸 = 𝑆𝑎𝑦𝚤(𝐻𝑃,𝑌𝐸) 𝑆𝑎𝑦𝚤(𝐻𝑃) 𝐺ü𝑣𝑒𝑛 𝐻𝑃→𝑌𝐸 = 3 5 𝐺ü𝑣𝑒𝑛 𝐻𝑃→𝑌𝐸 =0,60
Birliktelik Kuralları / Örnek Parça Destek B, C → D 2/5 = 0,40 B, D → C C, D → B D → B, C C → B, D B → C, D Parça Güven B, C → D 2/3 = 0,67 B, D → C 1/1 = 1,00 C, D → B D → B, C C → B, D 2/4 = 0,50 B → C, D İşlem Parçalar 1 A, B 2 A, C, D, E 3 B, C, D, F 4 A, B, C, D 5 A, B, C, F Bütün Destek değerleri aynı olmasına rağmen güven değerleri farklılık gösterebilir.
Birliktelik Kuralları / Kaldıraç (Lift) 𝐾𝑎𝑙𝑑𝚤𝑟𝑎ç {Süt, Ekmek} → {Tereyağı} = 𝐷𝑒𝑠𝑡𝑒𝑘({Süt, Ekmek, Tereyağı}) 𝐷𝑒𝑠𝑡𝑒𝑘({Süt, Ekmek})×𝐷𝑒𝑠𝑡𝑒𝑘({Tereyağı}) 𝐾𝑎𝑙𝑑𝚤𝑟𝑎ç 𝑋→𝑌 = 𝐷𝑒𝑠𝑡𝑒𝑘(𝑋,𝑌) 𝐷𝑒𝑠𝑡𝑒𝑘(𝑋)×𝐷𝑒𝑠𝑡𝑒𝑘(𝑌) 𝐾𝑎𝑙𝑑𝚤𝑟𝑎ç {Süt, Ekmek} → {Tereyağı} = 0,2 0,4×0,4 =1,25 X ve Y nin bağımsız olup olmadığını gösteren oransal destek değeri Eğer iki değişken birbirinden bağımsız ise, bunlarla ilişkili bir kural çıkarılmaz. Eğer Kaldıraç değeri 1’den büyük ise değişkenler birbirine bağımlıdır ve bunlarla ilişkili kural oluşturulabilir. İşlem No Süt Ekmek Tereyağı Çay Peynir 1 2 3 4 5 𝐾𝑢𝑟𝑎𝑙 : {𝑆ü𝑡, 𝐸𝑘𝑚𝑒𝑘}→{𝑇𝑒𝑟𝑒𝑦𝑎ğ𝚤}
Birliktelik Kuralları / İnanç (Conviction) İ𝑛𝑎𝑛ç {Süt, Ekmek} → {Tereyağı} = 1−𝐷𝑒𝑠𝑡𝑒𝑘({Tereyağı}) 1−𝐺ü𝑣𝑒𝑛({Süt, Ekmek}, {Tereyağı}) İ𝑛𝑎𝑛ç 𝑋→𝑌 = 1−𝐷𝑒𝑠𝑡𝑒𝑘(𝑌) 1−𝐺ü𝑣𝑒𝑛(𝑋,𝑌) İ𝑛𝑎𝑛ç {Süt, Ekmek} → {Tereyağı} = 1−0,4 1−0,5 =1,2 X’ in Y ‘nin olmadığı durumdaki oransal frekans değeri Eğer İnanç değeri 1 ise X ve Y değişkenleri birbirinden bağımsızdır. Eğer İnanç değeri 1’den uzak ise ilişkili kural oluşturulabilir. İşlem No Süt Ekmek Tereyağı Çay Peynir 1 2 3 4 5 𝐾𝑢𝑟𝑎𝑙 : 𝑆ü𝑡, 𝐸𝑘𝑚𝑒𝑘 →{𝑇𝑒𝑟𝑒𝑦𝑎ğ𝚤}
Birliktelik Kuralları / Diğer Ölçüler http://michael.hahsler.net/research/association_rules/measures.html Difference of Confidence Example and Counterexample Rate Fisher's Exact Test Gini Index Hyper-Confidence Hyper-Lift Imbalance Ratio Jaccard coefficient J-Measure Kappa Klosgen Kulczynski Goodman-Kruskal Laplace Corrected Confidence Added Value (AV), Centered Confidence All-confidence Casual Confidence Casual Support Certainty Factor Chi-Squared Cross-Support Ratio Collective Strength Cosine Coverage Descriptive Confirmed Confidence Least Contradiction Lerman Similarity Leverage, Piatetsky-Shapiro Measure Mutual InformationOdds Ratio Correlation Coefficient Ralambrodrainy Measure Relative Linkage Disequilibrium Sebag-Schoenauer measure Varying Rates Liaison Yule's Q and Yule's Y
Birliktelik Kuralı Oluşturma Yöntemleri Brute-Force Yöntemi Apriori Yöntemi Veri seti içerisindeki her bir birlikteliğin güven ve destek değerleri hesaplanarak şartları sağlayanlar seçilir. 𝑛 veri seti boyutu olmak üzere kural sayısı 3 𝑛 − 2 𝑛+1 +1’ dir. Zaman alıcıdır, uygulanabilirliği düşüktür. Destek ve güven ölçülerini karşılaştırmak için eşik değerleri belirlenir. Her bir ürün için destek sayıları hesaplanır. Eşik değeri ile karşılaştırılan destek değerlerinin içinden eşik değerinden düşük olanlar çıkarılır. Kalan ürünler ikişerli gruplanarak, grup destek sayıları hesaplanır. Tekrar eşik değerleri ile karşılaştırılan destek değerlerinden eşik değerinin altında kalanlar iptal edilir. Daha sonra üçerli, dörderli, beşerli, vb. biçimde gruplar için aynı karşılaştırma ve eleme işlemi devam ettirilir. Eşik değerlere uygun olduğu sürece işlemler sürdürülür. Belirlenen ürün grubunun destek ölçülerine bakarak birliktelik kuralları türetilir ve bu kurallarının her biri için güven ölçüleri belirlenir.
Birliktelik Kuralı Oluşturma Yöntemleri ECLAT Yöntemi FP-Growth Yöntemi Dikey yönlü veri seti üzerinde işleyen bir yapıya sahiptir. İlişki kuralları çıkarmak için küme kesişimleri kullanılır. Küçük boyutlu veri setleri için uygundur ve Apriori yöntemine göre daha az zaman gerektirir. Veri setinin büyük olduğu durumlarda geçici kümeler için depolama ihtiyacı çok yüksek olur ve kesişim kümelerinin üretilmesi oldukça fazla zaman alır. Her bir ürün için destek değeri hesaplanır. Eşik değerinin altında desteğe sahip ürünler çıkarılır. Sık tekrar eden ürünler destek değerlerine göre büyükten küçüğe sıralanır. Bir ağaç yapısı oluşturularak ürünler bu ağaç üzerinde yerleştirilir. Veri setinin büyük olması durumunda çok yüksek bellek ihtiyacı oluşur. Karmaşık veri yapısından dolayı çok fazla zamana gereksinim duyar.
Apriori Algoritması Örnek – 1 (TID) Alınan Ürünler 10 A, B, E 20 B, D 30 B, C 40 A, B, D 50 A, C 60 70 80 A, B, C, E 90 A, B, C Yandaki örnek veri seti için birliktelik kurallarını Apriori algoritması ile çıkaralım.
Apriori Algoritması / Örnek – 1 İlk adımda destek ve güven için eşik değerleri belirlenmelidir. 𝐷𝑒𝑠𝑡𝑒𝑘 𝑚𝑖𝑛 =0,25 𝐺ü𝑣𝑒𝑛 𝑚𝑖𝑛 =0,70 N=9 olduğu dikkate alındığında destek sayısı: 9∗0,25=2,25 olacaktır. (2 olarak alınabilir) Herhangi bir işlem adımda destek sayısı 2 den az olan kayıtlar elenecektir.
Apriori Algoritması / Örnek – 1 (TID) Alınan Ürünler 10 A, B, E 20 B, D 30 B, C 40 A, B, D 50 A, C 60 70 80 A, B, C, E 90 A, B, C İkinci adımda her bir ürün için yandaki tabloda gösterildiği şekilde destek sayıları hesaplanır. Ürün Adı Destek A 6 B 7 C D 2 E Şartlar sağlandığı için eleme yapılmaz.
Apriori Algoritması / Örnek – 1 Ürün Adı Destek A, B 4 A, C A, D 1 A, E 2 B, C B, D B, E C, D C, E D, E (TID) Alınan Ürünler 10 A, B, E 20 B, D 30 B, C 40 A, B, D 50 A, C 60 70 80 A, B, C, E 90 A, B, C İkili eşleştirmeler için destek sayıları hesaplanır. Ürün Adı Destek A 6 B 7 C D 2 E
Apriori Algoritması / Örnek – 1 Üçlü eşleştirmeler için destek sayıları hesaplanır. Sadece yandaki tabloda verilen ikililerle yazılan üçlüler dikkate alınır. (TID) Alınan Ürünler 10 A, B, E 20 B, D 30 B, C 40 A, B, D 50 A, C 60 70 80 A, B, C, E 90 A, B, C Ürün Adı Destek A, B 4 A, C A, E 2 B, C B, D B, E Ürün Adı Destek A, B, E 2 A, B, C
Apriori Algoritması / Örnek – 1 Bu adımda ise A, B, E ve A, B, C için birliktelik kuralları türetilir. Kurallar alt kümeler dikkate alınarak türetilir. ABE → (A, B), (A, E), (B, E), (A), (B), (E) ABC → (A, B), (A, C), (B, C), (A), (B), (C) Birliktelik Kuralı Güven A & B → E 2/4=0,50 A & E → B 2/2=1,00 B & E → A A → B & E 2/6=0,33 B → A & E 2/7=0,28 E → A & B Birliktelik Kuralı Güven A & B → C 2/4=0,50 A & C → B B & C → A A → B & C 2/6=0,33 B → A & C 2/7=0,28 C → A & B
Apriori Algoritması / Örnek – 1 Örnekte güven eşik değeri % 70 olarak verilmişti. Bu durumda sadece 3 kuralın bu değerden daha yüksek güven değerine ulaştığı görülmektedir. Değerlendirme sonucunda kurallar aşağıdaki gibi elde edilir. A ve E ürününü alanlar %100 ihtimalle B ürününü de alırlar. B ve E ürününü alanlar %100 ihtimalle A ürününü de alırlar. E ürününü alanlar % 100 ihtimalle A ve B ürününü de alırlar.
Apriori Algoritması / Örnek – 2 Aşağıdaki örnek tablo için birliktelik kurallarını Apriori algoritması ile çıkaralım. İlk adımda destek ve güven için eşik değerleri belirlenmelidir. 𝐷𝑒𝑠𝑡𝑒𝑘 𝑚𝑖𝑛 =0,30 𝐺ü𝑣𝑒𝑛 𝑚𝑖𝑛 =0,80 Bu durumda destek sayısı N=10 olduğu da dikkate alındığında 10*0,3=3 olacaktır. Yani herhangi bir adımda destek sayısı 3 ten az olan değerler elemine edilecektir. Müşteri ID (TID) Alınan Ürünler 5401300197 Gofret, Kola, Su, Çekirdek 5401300198 Antep Fıstığı, Çekirdek, Çikolata, Kola 5401300199 Gofret, Çekirdek, Antep Fıstığı 5401300200 Kola, Su, Çekirdek, Kahve 5401300201 Gofret, Çekirdek, Çikolata, Su 5401300202 Süt, Çekirdek, Su 5401300203 Gofret, Cips, Çekirdek 5401300204 Çikolata, Patlamış Mısır, Su 5401300205 Patlamış Mısır, Kola, Su 5401300206 Su, Süt, Gofret, Çikolata, Çekirdek
Apriori Algoritması / Örnek – 2 İkinci adımda ise her bir ürün için aşağıdaki gibi destek sayıları hesaplanır. Ürün Adı Destek Gofret 5 Kola 4 Su 7 Çekirdek 8 Antep Fıstığı 2 Çikolata Kahve 1 Süt Cips Patlamış Mısır Müşteri ID (TID) Alınan Ürünler 5401300197 Gofret, Kola, Su, Çekirdek 5401300198 Antep Fıstığı, Çekirdek, Çikolata, Kola 5401300199 Gofret, Çekirdek, Antep Fıstığı 5401300200 Kola, Su, Çekirdek, Kahve 5401300201 Gofret, Çekirdek, Çikolata, Su 5401300202 Süt, Çekirdek, Su 5401300203 Gofret, Cips, Çekirdek 5401300204 Çikolata, Patlamış Mısır, Su 5401300205 Patlamış Mısır, Kola, Su 5401300206 Su, Süt, Gofret, Çikolata, Çekirdek
Apriori Algoritması / Örnek – 2 Ürün Adı Destek Gofret 5 Kola 4 Su 7 Çekirdek 8 Çikolata İkili Destek Gofret, Kola 1 Gofret, Su 3 Gofret, Çekirdek 5 Gofret, Çikolata 2 Kola, Su Kola, Çekirdek Kola, Çikolata Su, Çekirdek Su, Çikolata Çekirdek, Çikolata Alınan Ürünler Gofret, Kola, Su, Çekirdek Antep Fıstığı, Çekirdek, Çikolata, Kola Gofret, Çekirdek, Antep Fıstığı Kola, Su, Çekirdek, Kahve Gofret, Çekirdek, Çikolata, Su Süt, Çekirdek, Su Gofret, Cips, Çekirdek Çikolata, Patlamış Mısır, Su Patlamış Mısır, Kola, Su Su, Süt, Gofret, Çikolata, Çekirdek İkili eşleştirmeler için destek sayıları hesaplanır.
Apriori Algoritması / Örnek – 2 İkili Destek Gofret, Su, Çekirdek 3 Gofret, Su, Kola 1 Gofret, Su, Çikolata 2 Gofret, Çekirdek, Kola Gofret, Çekirdek, Çikolata Kola, Su, Çekirdek Kola, Su, Çikolata Kola, Çekirdek, Çikolata Su, Çekirdek, Çikolata İkili Destek Gofret, Su 3 Gofret, Çekirdek 5 Kola, Su Kola, Çekirdek Su, Çekirdek Su, Çikolata Çekirdek, Çikolata Üçlü eşleştirmel er için destek sayıları hesaplanır.
Apriori Algoritması / Örnek – 2 Birliktelik Kuralı Açıklama (Şartlı Olasılık) Güven Gofret & Su Çekirdek Gofret ve Su alanların Çekirdek alma ihtimali 3/3=1,00 Gofret & Çekirdek Su Gofret ve Çekirdek alanların Su alma ihtimali 3/5=0,60 Su & Çekirdek Gofret Su ve Çekirdek alanların Gofret alma ihtimali Gofret Su & Çekirdek Gofret alanların Su ve Çekirdek alma ihtimali Su Gofret & Çekirdek Su alanların Gofret ve Çekirdek alma ihtimali 3/7=0,42 Çekirdek Gofret & Su Çekirdek Alanların gofret ve Su alma ihtimali 3/8=0,38 Bu adımda ise Gofret, Su ve Çekirdek için birliktelik kuralları türetilir. Kurallar alt kümeler dikkate alınarak türetilir. (Gofret, Su), (Gofret, Çekirdek), (Su, Çekirdek), (Gofret), (Su), (Çekirdek)
Apriori Algoritması / Örnek – 2 Örnekte güven eşik değeri % 80 olarak verilmişti. Bu durumda elimizde sadece Gofret ve Su alanların, çekirdek te aldığı bilgi mevcuttur. Güven değeri 1,00 olduğundan, Gofret ve Su alan herkes mutlaka (%100) ihtimalle çekirdekte alacaktır.
ECLAT Algoritması / Örnek – 3 İlk adımda destek ve güven için eşik değerleri belirlenmelidir. 𝐷𝑒𝑠𝑡𝑒𝑘 𝑚𝑖𝑛 =0,20 𝐺ü𝑣𝑒𝑛 𝑚𝑖𝑛 =0,70 N=10 olduğundan destek sayısı: 10∗0,2=2 olacaktır. Herhangi bir işlem adımda destek sayısı 2 den az olan kayıtlar elenecektir. ECLAT Algoritmasında öncelikli olarak, yatay olarak biçimlendirilmiş veri seti dikey yönlü olacak şekilde düzenlenir. Sonraki adımda, sırasıyla ikişerli, üçerli ya da daha yüksek sayıdaki birliktelik durumları hesaplanır. Her adımda asgari destek sayısından daha düşük sayıda desteğe sahip olan birliktelikler veri setinden çıkarılır. Yüksek desteğe sahip olan birlikteliklerle ilişkili kurallar elde edilir.
ECLAT Algoritması / Örnek – 3 TID Alınan Ürünler 197 Gofret, Kola, Su, Çekirdek 198 Antep Fıstığı, Çekirdek, Çikolata, Kola 199 Gofret, Çekirdek, Antep Fıstığı 200 Kola, Su, Çekirdek, Kahve 201 Gofret, Çekirdek, Çikolata, Su 202 Süt, Çekirdek, Su 203 Gofret, Cips, Çekirdek 204 Çikolata, Patlamış Mısır, Su 205 Patlamış Mısır, Kola, Su 206 Su, Süt, Gofret, Çikolata, Çekirdek Ürün TID Listesi Gofret {197, 199, 201, 203, 206} Kola {197, 198, 200, 205} Su {197, 200, 201, 202, 204, 205, 206} Çekirdek {197, 198, 199, 200, 201, 202, 203, 206} Antep Fıstığı {198, 199} Çikolata {198, 201, 204, 206} Kahve {200} Süt {202, 206} Cips {203} Patlamış Mısır {204, 205}
ECLAT Algoritması / Örnek – 3 TID Alınan Ürünler 197 Gofret, Kola, Su, Çekirdek 198 Antep Fıstığı, Çekirdek, Çikolata, Kola 199 Gofret, Çekirdek, Antep Fıstığı 200 Kola, Su, Çekirdek, Kahve 201 Gofret, Çekirdek, Çikolata, Su 202 Süt, Çekirdek, Su 203 Gofret, Cips, Çekirdek 204 Çikolata, Patlamış Mısır, Su 205 Patlamış Mısır, Kola, Su 206 Su, Süt, Gofret, Çikolata, Çekirdek Ürün TID Listesi Gofret, Kola {197} Gofret, Su {197, 201, 206} Gofret, Çekirdek {197, 199, 201, 203, 206} Gofret, Antep Fıstığı {199} Gofret, Çikolata {201, 206} Gofret, Kahve { } Gofret, Süt {206} Gofret, Cips {203} Gofret, Patlamış Mısır
ECLAT Algoritması / Örnek – 3 TID Listesi Gofret, Su {197, 201, 206} Gofret, Kola {197} Gofret, Çekirdek {197, 199, 201, 203, 206} Gofret, Antep Fıstığı {199} Gofret, Çikolata {201, 206} Gofret, Kahve { } Gofret, Süt {206} Gofret, Cips {203} Gofret, Patlamış Mısır Ürün TID Listesi Gofret, Su, Çekirdek {197, 201, 206} Gofret, Su, Çikolata {201, 206} Ürün TID Listesi Gofret, Su, Çekirdek, Çikolata {201, 206}
ECLAT Algoritması / Örnek – 3 Birliktelik Kuralı Açıklama (Şartlı Olasılık) Güven Gofret & Su Çekirdek Gofret ve Su alanların Çekirdek alma ihtimali 3/3=1,00 Gofret & Çekirdek Su Gofret ve Çekirdek alanların Su alma ihtimali 3/5=0,60 Su & Çekirdek Gofret Su ve Çekirdek alanların Gofret alma ihtimali Gofret Su & Çekirdek Gofret alanların Su ve Çekirdek alma ihtimali Su Gofret & Çekirdek Su alanların Gofret ve Çekirdek alma ihtimali 3/7=0,42 Çekirdek Gofret & Su Çekirdek Alanların gofret ve Su alma ihtimali 3/8=0,38 Bu adımda ise Gofret, Su ve Çekirdek için birliktelik kuralları türetilir. Kurallar alt kümeler dikkate alınarak türetilir. (Gofret, Su), (Gofret, Çekirdek), (Su, Çekirdek), (Gofret), (Su), (Çekirdek)
ECLAT Algoritması / Örnek – 3 Örnekte güven eşik değeri % 80 olarak verilmişti. Bu durumda elimizde sadece Gofret ve Su alanların, çekirdek te aldığı bilgi mevcuttur. Güven değeri 1,00 olduğundan, Gofret ve Su alan herkes mutlaka (%100) ihtimalle çekirdekte alacaktır.