Birliktelik Kuralları Analizi (Association Rules Analysis)
Merhaba,
Uzun bir aradan sonra Veri Madenciliğinin esas konularından biri olan Birliktelik Kuralları yazısı ile karşınızdayım. Birliktelik Kuralları veri madenciliğinde kullanılan ilk tekniklerden biri olduğunu ve veri madenciliği denildiğinde akla ilk gelen analizlerden biridir. Günümüzde Birliktelik Kuralları Analizi evrilerek “Recommendation Engine” yani “Tavsiye Motoru” olarak ifade edilmektedir. Günümüzde hepimiz planlı/plansız bir şeyler alıyoruz. Aldığımız bütün ürünler için ihtiyaç kelimesini kullanmamız doğru olabilir mi? Bazen çapraz satışlar ile X ürününü satın alacak iken çok ama çok avantajlı bir şekilde birlikte satışa sunulan X ve Y ürünleri bir arada aldığınız olmadı mı? Bu alışveriş sırasında almış olduğumuz ürünler arasında bir ilişkin olup olmadığı işletmeler açısından duygusal nedenler ile bir merak konusu olmuştur. İşletmeler daha fazla kar maksimizasyonu elde edebilmek için daha fazla ürün satabilmek bunu için de müşteri alışkanlıkları bilmek ve ortaya çıkarmak istemektedir. Amerikada eticaret devi Amazon’nun gelirlerinin ciddi bir kısmını (yaklaşık %75’i) buradan elde ettiğini, Netflix’in ise yaklaşık %35’ini elde ettiğini bilmemizde fayda var. Aynı zamanda Spotify kullanıcılarına tavsiye olarak önerdiği müzikleri nasıl yapıyor olabilir. Ürün(Item) ve Kullanıcı(User) bazlı benzerliklerden yararlanarak ne kadar başarılı işler çıkardığı görülmektedir.
Birliktelik Kurallarının çıkış hikayesine dönecek olursak: “Bebek Bezi ve Bira İlişkisi”
Amerika da zincir marketlerden olan Wal-Mart, müşterilerin yapmış oldukları alışveriş hareketlerini incelediklerinde “Cuma akşamları bebek bezi alan erkek müşterilerin beraberinde bira aldıkları ortaya çıkmasıydı. Bu ilişki Birliktelik Kuralları Analizi olmaksızın öngörülebilir/ortaya çıkarılabilir mi? Pek sanmıyorum 😊 Bu çarpıcı örneğin; Veri madenciliğinin bir sihir olmadığı bir amaca (sınıflandırma, segmentasyon, birliktelik) yönelik teknikleri içerdiğini hatırlamamızda fayda var. Birliktelik Kuralları Pazarlama alanında Pazar Sepeti Analizi (Market Basket Analysis) ile müşterilerin satın alma örüntülerinin belirlenmesinde kullanmaktadır. Ayrıca Çapraz Pazarlama, Promosyon Analizi ve Katalog ve Yerleşim Düzeni gibi uygulama alanlarının bulunmaktadır.
Birliktelik Kuralları (Association Rules)
Birliktelik kuralları analizi problemi ilk olarak Agrawal, Imielinski ve Swami tarafından 1993 yılında ele alınmış olup ve veri madenciliğinde kullanılan ilk tekniklerden birisidir (Agrawal vd., 1993). Olayların birlikte gerçekleşme durumlarını çözümleyen veri madenciliği yöntemlerine Birliktelik Kuralları denir. Bu yöntemler, birlikte olma kurallarını belirli olasılıklarla ortaya koyar. Birliktelik kuralları, geçmiş verilerin analiz edilerek bu veriler içindeki birliktelik davranışlarının tespiti ile geleceğe yönelik çalışmalar yapılmasını destekleyen bir yaklaşımdır.
Birliktelik kuralı uygulamasına pazar sepeti analizi örnek verilebilir (Frawley vd., 1991). Birliktelik kuralındaki amaç; alışveriş esnasında müşterilerin satın aldıkları ürünler arasındaki birliktelik ilişkisini bulmak, bu ilişki verisi doğrultusunda müşterilerin satın alma alışkanlıklarını tespit etmektir. Satıcılar, keşfedilen bu birliktelik bağıntıları ve alışkanlıklar sayesi ile etkili ve kazançlı pazarlama ve satış imkanına sahip olmaktadırlar.
Analizi biraz daha realize edecek olursak; Bir markette Süt ve Peynir satın alan müşterilerin %70’inin bu ürünler ile birlikte Yoğurt da satın alınmıştır. Bu tür birliktelik örüntüsünün tespit edilebilmesi için, örüntü içinde yer alan ürünlerin birden çok satın alma hareketinde birlikte yer alması gerekir. Milyonlarca veri üzerinde veri madenciliği teknikleri uygulandığında, birliktelik sorgusu için kullanılan algoritmalar hızlı olmalıdır (Agrawal ve Srikant, 1995).
Birliktelik Kuralları Analizi için kullanılan bazı algoritmalar: Apriori, Carma, Sequence, GRI, Eclat, FP-Growth ve diğerleri. Bunlar içerisinde popüler ve kullanılan Apriori Algoritmasının olduğunu belirtmek isterim.
Apriori Algoritması (Apriori Algorithm)
Apriori Algoritmasının ismi, bilgileri bir önceki adımdan aldığı için “prior” anlamında Apriori’dir (Agrawal ve Srikant, 1994). Bu algoritma temelinde iteratif (tekrarlayan) bir niteliğe sahiptir (Han ve Kamber, 2006) ve hareket bilgileri içeren veri tabanlarında sık geçen öğe kümelerinin keşfedilmesinde kullanılır.
Apriori algoritmasına göre, eğer k-öğe kümesi (k adet elemana sahip öğe kümesi) minimum destek değerini sağlıyorsa, bu kümenin alt kümeleri de minimum destek ölçütünü sağlar.
Birliktelik kuralı analizi, tüm sık geçen öğelerin bulunması ve sık geçen bu öğelerden güçlü birliktelik kurallarının üretilmesi olmak üzere iki aşamalıdır.
Birliktelik kuralının ilk aşaması için kullanılan Apriori Algoritması, sık geçen öğeler madenciliğinde kullanılan en popüler ve klasik algoritmadır. Bu algoritmada özellikler ve veri, Boolean ilişki kuralları ile değerlendirilir (Gao, 2004). Apriori algoritması, Birliktelik kuralları çıkarmak için en çok kullanılan algoritmadır.
Algoritma Gereksinimler:
- Kullanılacak olan veri seti Tabular ya da Transactional yapıya sahip olmalı,
- Veri seti kategorik yapıda olmalıdır.
- Veri setindeki değişkenler yönleri (direction) in, out yada both olarak tanımlanmalıdır.
Veri seti içerisinde yer alan her değişkenin sadece Girdi, sadece Çıktı ya da Herİkisi olarak ifade edilmesini belirtir.
in: Girdi
out: Çıktı
both: Hem girdi, hemde çıktı olduğunu ifade eder.
Veri Seti:
Tabular Veri Seti: Verilerin sütun bazlı olarak tutulduğu veri yapısıdır. Örnek verecek olursak;
Transactional Veri Seti: Verilerin satır bazlı olarak genellikle veri tabanlarında tutulduğu veri yapısıdır.
Algoritma Parametreleri:
Apriori algoritması minimum Destek (Support) ve minimum Güven (Confidence) parametrelerini alarak çalışmaktadır.
Destek ve Güven parametreleri ne kadar büyükse birliktelik kurallarının da o kadar güçlü olduğunu ifade eder. Parametre başlangıç değerlerinin çok büyük olmasının bazı kuralların gözden kaçmasına, çok küçük olmasının ise bulunmak istenen örüntüden uzaklaşılmasına sebebiyet vereceğini unutmamak gerekir. Apriori algoritmasının varsayılan Destek değerinin %10 ve Güven değerinin ise %80 olduğunu ve eğer parametre değeri verilememiş ise bu değerler ile kurallar oluşacaktır.
Destek (Support) Değeri: Bir ilişkinin tüm alışverişler içinde hangi oranda tekrarlandığını belirtir.
Destek (X -> Y) = Frekans(X, Y) / N
N: Toplam alışverişlerin sayısı
Güven (Confidence) Değeri: X ürününü alan müşterilerin Y ürününü alma olasılığını ortaya belirtir
Güven (X -> Y) = Frekans(X, Y) / Frekans(X)
Örneğin X ve Y ürünleri için Destek değerinin %20’i ve Güven değerinin %70 olduğunu varsayarsak; Analiz edilen tüm alışverişlerin %20’sinde X ile Y ürünlerinin birlikte geçtiği, X ürününü satın alan müşterilerin %70’inin aynı alışverişte Y ürününü de satın aldığını gösterir.
Algoritma Nasıl Çalışır?
- Birliktelik Kuralları Analizi yapılabilmesi için minimum Destek ve minimum Güven parametre değerleri belirlenir. Uygulamadan elde edilen sonuçlar bu parametre değerlerine eşit ya da büyük olacaktır.
- Veri seti taranarak her bir ürün için tekil olarak frekans sayıları yani Destek değerleri belirlenir ve Minimum Destek parametre değerinden küçük değerlere sahip olan ürünler çözümlemeden çıkarılır.
- Yukarıdaki işlemin ardından ürünler ikişerli olarak gruplanarak frekans değerleri elde edilir. Minimum Destek değerinden küçük olan ikili gruplar çözümlemeden çıkarılır.
- Aynı şekilde üçlü, dörtlü vb. gruplandırmalar yaparak gruplara ait frekans bilgileri ile Minimum Destek değeri karşılaştırılır. Uygun olmayanlar çözümlemeden çıkarılır.
- Yukarıdaki işlemler bittikten sonra Nitelik Kümesi (Itemsets) ortaya çıkarılır. Verilen d adet ürün için 2d adet olası aday Nitelik Kümesi vardır. Devamında ise Güven değerleri hesaplanarak parametre olarak verilen Güven parametre değerinin üzerinde olan ürünler ile kurallar oluşturulur.
Yukarıda paylaşmış olduğum veri seti üzerinden bazı hesaplamaları yapacak olursak; Destek parametre değerinin %30’i ve Güven parametre değerinin %60 alındığında
Destek Değeri: 0,30 ve Güven Değeri: 0,60 ve N:10 (Toplam Alışveriş Sayısı)
Destek Sayısı: 0,30 x 10 = 3’tür. Burada 3 ve üzeri değerler ile devam edeceğiz.
25 = 32 adet olası aday Nitelik Kümesi bulunmaktadır. Kırmızı ile boyanan ürünler listeden çıkartılır ve 2’li, 3’lü ve artarak diğer gruplandırmalar yapılır. Burada frekans değeri 3 ve üzeri olan çözümlemeler ile devam edilir.
Tekli Gruplandırma:
Kırmızı ile boynan ürünler Minimum Destek değerinin altında olduğu için listeden çıkarılmıştır.
İkili Gruplandırma:
Kırmızı ile boynan ürünler Minimum Destek değerinin altında olduğu için listeden çıkarılmıştır.
Üçlü Gruplandırma
Tekli, İkili ve Üçlü Nitelik Listesine bakacak olursak;
Buradan örneğin; Bread ile Milk arasındaki destek ve güven değeri hesaplayalım:
Destek (Bread -> Milk): Frekans(Bread, Milk) / N
Destek: 4/10: 0.4
Güven(Bread ->Milk): Frekans(Bread, Milk) / Frekans(Bread)
Güven: 4/6 = 0,66 yani %66 olduğu görülmüş olup Minimum Güven değeri olan %60’ın üzerindedir.
Lift Değeri (Lift Value):
Algoritma Parametreleri kısmında belirtmediğim bir önemli değerde Lift Değeri’dir. Kuralın ilginçliği/farklılığını ifade eder. Hesaplaması aşağıdaki gibidir.
Lift Değeri: Support (X, Y) / ( Support(X) * Support(Y) ) yani
Lift Değeri: Frekans (X, Y) / ( Frekans(x) * Frekans(Y) )
Yine Bread ve Milk ürünleri için lift değerine bakacak olursak;
Lift (Bread -> Milk): Frekans(Bread, Milk) / ((Frekans(Bread)*Frekans(Milk)
Lift Değeri: 4/(6*7) = 0,095
Kural Gösterimi:
Bread ürün grubunu alanların Milk ürün grubunu da alma durumu; yani birliktelik kuralı:
Bread -> Milk
biçiminde gösterilir.
Antecedent (LHS: Left Hand Side): Kuralın sol tarafını ifade eder.
Consequent (RHS: Right Hand Side): Kuralın sağ tarafını ifade eder.
Yorum 1: Bread ve Milk ürünleri tüm alışverişlerin %40’ında bir arada görülmektedir.
Yorum 2 : Bread satın alan müşterilerin %66’sının Milk de satın aldığını görülmüştür. Kuralın RHS yani Consequent kısmı ile ilgilenir.
Yorum 3: Bread ürününü olan alışverişlerde Milk ürünlerinin satışı 0,095 kat artırıyor. Kuralın LHS yani Actecedent kısmı ile ilgilenir.
Son Olarak; En kısa süre içerisinde R Project, Python, IBM SPSS Modeler ve diğer tool’lar üzerinde uygulamaları yapmayı planlamaktayım.
Devam Yazıları:
- R Project ile Birliktelik Kuralları Analizi yazısına buradan ulaşabilirsiniz.
- Python ile Birliktelik Kuralları Analizi yazısına buradan ulaşabilirsiniz.
- IBM SPSS Modeler ile Birliktelik Kuralları Analizi yazısına buradan ulaşabilirsiniz.
- Weka ile Birliktelik Kuralları Analizi yazısına buradan ulaşabilirsiniz.
Yazıyı beğenerek ve paylaşarak daha fazla kişiye ulaşmasına yardımcı olabilirsiniz. Görüş ve önerileriniz için uslumetin@gmail.com’dan bana ulaşabilirsiniz. Yeniden görüşmek üzere, Selamlar 🙂
Kaynaklar:
- https://en.wikipedia.org/wiki/Association_rule_learning
- http://www.slideshare.net/uslumetin/birliktelik-kurallar-kullanlarak-pazar-sepeti-analizi-market-basket-analysis-using-association-rules
- Data Mining: Concepts and Techniques, Jiawei Han; Micheline Kamber
- Shopping Markets: https://www.researchgate.net/figure/Shopping-Basket-Analysis-example-source-33_fig3_320427692