alışverişinde birlikte almış olduğu ürünler arasındaki İlişki Kuralları ilişkilerden yola çıkılarak müşterilerin alışveriş
Büyük veri kümeleri içerisinde belirli veriler arasındaki alışkanlıklarının belirlenmesidir. Pazar sepeti analizinde ilişkileri bulan ve olayların birlikte gerçekleşme müşterilerin alışverişlerinde aldıkları her bir ürün nesne, ihtimallerini geçmiş verileri analiz edip ortaya koyarak içerisinde birçok nesneyi yani ürünü barındıran her bir geleceğe yönelik çalışmaları destekleyen veri madenciliği alışveriş ise işlem olarak ifade edilir. Dolayısıyla ilişki yöntemine ilişki kuralları denilmektedir. kurallarını matematiksel bir model olarak ifade edebilmek
Genel olarak ilişki kuralları sayesinde büyük miktarlardaki için,
veriler arasından ilginç birliktelik örüntüleri keşfedilerek I = {i1, i 2, ... , im} nesneler (ürünler) kümesi karar verme, pazarlama ve iş yönetimi vb. gibi konularda D ={t1, t2, ... , tn} işlemler (alışverişler) veritabanı birçok fayda sağlanmaktadır. İlişki kuralları; ekonomi, eğitim, e-ticaret, pazarlama, iletişim ve sağlık gibi birçok olarak tanımlansın. Yapılan tanımlamalara göre t i ⊆ I’dır. sektörde geniş kullanıma sahip veri madenciliğinin özel Yani her bir işlem ya da alışverişi ifade eden t i , I nesneler bir uygulama alanıdır. İlişki kurallarının kullanım kümesinin bir alt kümesidir. Veritabanında yer alan her bir amaçlarına örnek verilecek olursa, Sigorta sektöründe alışveriş (ti ) ayrı bir numara ile ifade edilir ki bu alışılmışın dışında gelen sigorta talepleri bir dolandırıcılık numaralara Tid denir. Dolayısıyla D, işlemlerden oluşan girişiminin belirtisi olabilir. Dolayısıyla tedbir ve önlem veri kümesini yani tüm alışverişlerden oluşan veritabanını almak amacıyla kullanılabilir. ifade eder.
İlişki kuralları, günlük hayatta özellikle insanların İlişki Kuralı: A ve B iki nesne seti olsun. Belirlenen beklentilerinin belirlenmesinde çoğu zaman başarısız destek eşik değeri s ve belirlenen güven eşik değeri c için olmaktadır. Örneğin, bireysel bankacılık alanında çapraz satış A ⇒ B şeklinde ifade edilen bir kural,
modellerinin belirlenmesinde ilişki kuralları iyi bir seçim i. A nesne setinin destek değeri Destek (A) ≥ s değildir. Çünkü oluşturulan kurallar genellikle halihazırda ii. A ⇒ B kuralının güven değeri Güven (A ⇒ B) ≥ c uygulanan promosyon stratejileriyle birebir aynı çıkmaktadır. Bunun altında yatan neden ise zaten her müşteriye koşullarını sağlıyor ise A ⇒ B kuralı bir ilişki kuralı başlangıçta standart bir ürün hizmet paketinin sunulmasıdır. olarak adlandırılır. Burada A öncül, B ise sonuç olarak Farklılaşma ancak müşterilerin zaman içerisinde ilave ürün adlandırılır ki A ⊆ I, B ⊆ I ve A ∩ B= ∅’dir. Yani A ve B ve hizmet taleplerinin olması halinde gözlemlenebilir. nesne setleri, I nesneler kümesinin elemanlarından oluşan nesne setleridir ve bu nesne setlerinin ortak elemanları Pazar sepeti analizi, müşterilerin alışveriş yoktur. alışkanlıklarının veritabanındaki bilgiler aracılığı ile ortaya çıkartılması işlemidir. Pazar sepeti analizinde Özellikle pazarlama alanında satışları arttırabilmek nesneler, müşteriler tarafından satın alınan ürünlerdir. Bir amacıyla yapılan birçok çalışma bulunmaktadır. Örneğin kalemde satın alınan ve içerisinde birçok nesneyi bir marketten yapılan alışverişler üzerinden sıklıkla barındıran satın alma ise işlem veya kayıt olarak birlikte alınan ürünleri belirleyebilmek için A ⇒ B nitelendirilir. Dolayısıyla Pazar sepeti analizinde, bir şeklinde bir ilişki kuralı oluşturulabilir. Marketten süt ve işlemde alınan nesneler arasındaki ilişkiler incelenerek ekmek alan müşterilerin bunlarla birlikte çoğunlukla çeşitli ilişki kuralları oluşturulur. Oluşturulan bu kurallar yumurta da aldıkları yönünde oluşturulacak bir ilişki aracılığı ile müşterilerin daha sonra yapacakları kuralı {Süt, Ekmek} ⇒ {Yumurta} şeklinde ifade edilir. alışverişlerinde hangi mal ve hizmeti alma eğiliminde Böyle bir ilişkiyi keşfeden market sahibi, süt ve ekmek oldukları saptanarak daha fazla ürün satışı alacak müşterilere yumurta fiyatında indirim yaparak veya gerçekleştirebilmek için gerekli düzenlemeler yapılabilir. satış reyonunda süt ve ekmeğin yanına yumurta da koymak suretiyle satışlarını arttırmayı deneyebilir. Büyük veri kümeleri içerisinde nesneler arasında ilişki bulmak için algoritma geliştirmek çok zor olmamasına İncelenecek nesneler kümesinin sahip olduğu nesne karşın, buradaki asıl zorluk geliştirilen algoritma ile elde sayısına göre oluşturulabilecek ilişki kuralı sayısı da edilecek önemli ve önemsiz çok sayıda kural içerisinden işe değişmektedir. İlişki kuralı elde etmek için ilk olarak kural yarayacak bilgiyi üreten ilişki kurallarının seçilmesidir. oluşturmada kullanılacak nesne kümesi sayısının bilinmesi Ortaya çıkarılan ilişki kuralları içerisinden önemli veya ilginç gerekir. m adet nesne içeren bir I nesneler kümesinden olanları ayırt edebilmek için birtakım ölçütlere ihtiyaç elemanları birbirinden farklı oluşturulması mümkün tüm duyulur. Bunun için temel olarak kullanılan ölçütler destek nesne setlerinin sayısı 2m tanedir. Ancak bu nesne
ve güven ölçütleridir. İlişki analizinin amacı, elde edilecek setlerinden bir tanesi boş kümedir ve boş küme ilişki birçok kural içerisinden belirlenen destek ve güven eşik kuralı belirlemek amacıyla kullanılamayacağından, ilişki değerlerini sağlayan kuralların seçilmesidir. kuralı belirlemede kullanılacak nesne seti sayısı 2m-1 tane
olur Pazar Sepeti Analizi Pazar sepeti analizi, müşterilerin daha önceden yapmış Örneğin m=4 adet nesne içeren bir I={a, b, c, d} nesneler oldukları alışverişlerinden oluşan veritabanından her bir kümesinden farklı nesne sayılarına sahip, oluşturulması
mümkün tüm nesne setlerinin sayısı; 2m = 24 =16 tane olur. bırakılır. Bir A nesne setinin destek değeri, D işlemler
Bu 16 nesne seti içerisinde var olan boş küme, ilişki kuralı veritabanında A nesne setini içeren işlem sayısının oluşturmak amacı ile kullanılamaz. Dolayısıyla ilişki veritabanındaki tüm işlemlerin sayısına oranı şeklinde elde kuralı oluşturmak için kullanılabilecek toplam nesne seti | 𝑨 | m 4 edilir ve Destek(A) = eşitliği yardımıyla hesaplanır. sayısı 2 -1=2-1=16-1=15 tanedir. | 𝑫 | Eşitlikte |A|, tüm işlemler içerisinde A nesne setini içeren İkinci olarak, kural belirlemede kullanılabilecek nesne işlem sayısını, |D| ise işlemler veritabanındaki tüm setleri içerisinden kaç tanesinin k tane nesne içeren nesne işlemlerin sayısını ifade eder. Bir A nesne setinin destek seti olduğunun bilinmesi gereklidir. m adet nesne içeren değeri, Bir A nesne setinin destek değeri, P(A), A nesne bir I nesneler kümesinden ilişki kuralı oluşturmada setinin gözlenme olasılığıdır. Destek değeri [0,1] kullanılabilecek k (1 ≤k ≤m) tane nesne içeren nesne aralığında değer alır ve yüzde olarak yorumlanır. ! !! kümelerin sayısı𝐶! = adet olacaktır. Örneğin, beş İşlemden Oluşan Market Veritabanı !!(! ! !)!
Son olarak, oluşturulabilecek toplam ilişki kuralı sayısının Tid Nesneler bilinmesi gerekir. m adet nesne içeren bir I nesneler 1 Süt, Ekmek kümesinden toplamda 3m-2m+1+1 adet ilişki kuralı 2 Ekmek, Yumurta
oluşturulabilir. Örneğin, m=5 nesne içeren nesneler 3 Ekmek, Şeker kümesinden 35-25+1+1=180 tane ilişki kuralı 4 Süt, Ekmek, Yumurta
oluşturulabilirken, m=10 nesne içeren nesneler 5 Ekmek, Yumurta kümesinden 310-210+1+1=57.002 tane ilişki kuralı Veritabanı için iki nesne içeren bir A= {Süt, Ekmek} oluşturulabilir. nesne setinin destek değeri; Bir ilişki kuralının gücü, o kural için hesaplanacak | 𝑺ü𝒕,𝑬𝒌𝒎𝒆𝒌 | ! destek ve güven değerleri ile ölçümlenebilir. Destek(A) = Destek{Süt, Ekmek}= = = 0,40 | 𝑫 | ! (%40) olarak elde edilir. Veritabanında yer alan toplam 5 İlginç Kural Belirleme Ölçütleri (Rule işlemin 2 tanesinde (1. ve 4. işlemlerde) süt ve ekmek Interestingness Measures) nesneleri birlikte alınmış olduğundan, elde edilen bu İlgilenilen problemde ilişki kurallarını belirlemede destek değeri alışverişlerin %40’ında süt ve ekmeğin kullanılacak nesneler kümesinin eleman sayısı arttıkça bu birlikte alınmış olduğunu ifade eder. nesneler aracılığı ile oluşturulacak kural sayısı da katlanarak artmaktadır. Bu kurallar içerisinden belirli Konu ile ilgili örnek S.108’de incelenebilir.
ölçütler kullanmak suretiyle bilgi üretmek amacıyla A⇒B şeklindeki bir ilişki kuralının destek değeri, aslında kullanılmayacak, önemsiz kuralların elenmesi gerekir. Bir P(A∪B)’dir. Yani A ve B nesne setlerinin birlikte alışveriş veritabanından oluşturulacak ilişki kuralları gözlenme olasılığıdır. arasından işe yarayacak bilgiyi üretmek amacıyla kullanılacak ilişki kuralı ilginç kural olarak Bir ilişki kuralının destek değeri, D işlemler veritabanında tanımlanabilir. Bir ilişki kuralının ilginç kural olarak A ve B nesne setlerini birlikte içeren işlem sayısının değerlendirilebilmesi için, veritabanındaki tüm işlemlerin sayısına oranı şeklinde elde | !∪ ! | edilir ve Destek(A) = eşitliği ile hesaplanır. i. Daha önceden keşfedilmemiş, | ! | ii. Eyleme dönük, bir başka ifadeyle uygulanabilir Örneğin, verilen veritabanı üzerinden belirlenecek {Süt, olması gerekir. Ekmek} ⇒ {Yumurta}şeklindeki bir ilişki kuralının destek Bir ilişki kuralının “ilginç”liği, kişiden kişiye değişiklik değeri; gösterebilen yani subjektif bir karar olmasına rağmen, bu |{!ü!,!"#$",!"#"$%&}| kararın verilebilmesi için verilerden elde edilebilecek Destek({Süt,Ekmek}⇒{Yumurt }) = |! | ilişki kurallarının bilimsel veya objektif ölçütler aracılığı ! = = 0, 20(%20) olarak elde edilir. Hesaplanan bu destek ile de elenmesi beklenir. İlginç kuralların belirlenebilmesi ! değeri, yapılan alışverişlerin %20’sinde süt, ekmek ve amacıyla kullanılan başlıca objektif ölçütler destek ve yumurtanın birlikte alınmış olduğunu ifade eder. güven ölçütleridir. Destek Eşik Değeri: İlginç kural elde edebilmek için ilk Destek (Support) eleme işlemi, hesaplanan destek değerleri üzerinden İlginç olarak nitelendirilen ve bilgi üretmek amacıyla yapılır. Bu elemeyi yapabilmek için ise önceden bir destek kullanılacak bir ilişki kuralının belirlenebilmesi için eşik değerinin belirlenmiş olması gerekmektedir. kullanılan ilk ölçüt, nesne setleri içerisinden eleme Belirlenecek destek eşik değeri, tüm nesne setleri yapılmasını sağlayan destek değeridir. Karar verici içerisinden bu destek eşik değerinden daha küçük destek tarafından belirlenmiş olan destek eşik değerine eşit veya değerine sahip nesne setlerinin elenmesini sağlar. Örneğin, bu değerin üzerinde destek değerine sahip nesne setleri beş işlemden oluşan market veritabanı verileri için destek üzerinden işlemler yürütülürken, bu değerin altında destek eşik değerinin 0,30 olarak belirlenmiş olduğunu değerine sahip nesne setleri elenerek değerlendirme dışı varsayalım. Bu durumda, bir nesne içeren nesne setleri
içerisinden sadece {Şeker} nesne setinin destek değeri değerleri üzerinde destek ve güven değerine sahip ilişki 0,20 olduğu için ve destek eşik değerinden küçük olduğu kuralına güçlü kural denir. İlişki analizinin temel amacı, için elenir. Benzer şekilde iki nesneden oluşan nesne bu şekilde tanımlanan güçlü kuralları tespit etmektir. setleri arasından ise {Süt, Şeker}, {Ekmek, Şeker}, {Süt, Kaldıraç (Lift) Yumurta} ve {Yumurta, Şeker} nesne setlerinin hesaplanan destek değerleri belirlenmiş olan 0,30 destek İlişki kuralı oluşturmak için kullanılan algoritmalarının eşik değerinden daha küçük oldukları için elenerek hepsi ilişki kuralı oluşturmada destek ve güven eşik değerlendirme dışı bırakılırlar. Son olarak üç ve dört değerlerini kullanır. Bazı durumlarda değerlendirilmesi nesneden oluşan nesne setleri içerisinden ise hiçbir nesne gereken güçlü kural sayısı yine de fazla olabilmektedir. setinin bu destek eşik değerini aşamadığı görülür. Ortaya çıkan güçlü kurallar içerisinden bir seçim Dolayısıyla tüm üç ve dört nesne içeren nesne setleri de yapabilmek ve problemin amacına en uygun ilişki kuralını elenmiş olur. Elenen bu nesne setleri ilişki kuralı belirleyebilmek için ilave kısıtlamalar kullanmak oluşturmak için kullanılmazlar. gerekmektedir. Bunlar içerisinden en çok kullanılan ölçüt ise, öncül(A) ve sonuç(B) nesne setleri arasındaki Belirlenecek destek eşik değerinin çok yüksek bir değer ilişkinin(korelasyonun) belirlenmesi temeline dayanarak olması, ilginç kural elde edebilmek için ele alınacak nesne hesaplanan kaldıraç(lift) değeridir. setlerinin sayısını aşırı derecede azaltacaktır. Aksine !ü!"#(! ⇒ !) !"#$"%(!∪ ! destek eşik değerinin çok küçük bir değer olarak Kaldıraç (A ⇒ B)= = !"#$"%(!) !"#$"%(!).!"#$"%(!) belirlenmesi durumunda ise, aşırı fazla nesne setinin değerlendirilmesi gerekliliği durumu ile karşı karşıya Eşitliği ile hesaplanır. Oluşturulan güçlü ilişki kuralının kalınacaktır. Özellikle büyük veri tabanlarında düşük ilginç yani bilgi üretmede kullanılabilir bir kural olup destek eşik değeri belirlenerek elde edilecek birçok ilişki olmadığının bir ölçüsü olarak hesaplanan kaldıraç değeri kuralı, karar verecek kişi için ilginç olma niteliği [0,∞) arasında değer alır ve yüzde olarak ifade edilir. taşımamakta ve bilgi üretmek amacıyla Hesaplanan kaldıraç değerinin, kullanılamamaktadır. Bu durum, ilişki kurallarının • Kaldıraç (A⇒B)<1 olması A ve B nesne setleri belirlenmesinde yaşanan en büyük sorunlardan birisidir. arasında ters yönlü (negatif) bir ilişki olduğunu, Belirlenen destek eşik değerine eşit veya daha büyük • Kaldıraç (A⇒B)=1 olması, A ve B nesne setleri destek değerine sahip nesne setine sık görülen nesne seti arasında ilişki olmadığını denir. • Kaldıraç (A⇒B)>1 olması, A ve B nesne setleri
Güven (Confidence) arasında aynı yönlü (pozitif) bir ilişki olduğunu ifade eder. İlginç ilişki kuralı elde edebilmek için kullanılan ikinci ölçüt, güven değeridir. Öncelikle karar verici tarafından A⇒B şeklindeki bir ilişki kuralının kaldıraç değeri, belirlenmiş olan destek eşik değerine eşit ya da daha aslında A ve B nesne setlerinin birlikte gözlenme büyük destek değerine sahip nesne setleri yani sık görülen olasılığının A’nın ve B’nin ayrı ayrı gözlenme nesne setleri ile oluşturulması mümkün tüm ilişki kuralları ! (! ∪ !) olasılıklarının çarpımına oranıdır yani ‘dir. dir. oluşturulur. Karar verici tarafından belirlenmiş olan güven ! (!).! (!)
eşik değerine eşit ya da daha büyük güven değerine sahip Konu ile ilgili örnek S.112’de incelenebilir. ilişki kuralları ilginç kural elde etmek için değerlendirilmeye alınırken, bu değerin altında güven İlişki Kuralı Belirleme Aşamaları
değerine sahip ilişki kuralları ise elenir, değerlendirilmez. Genel olarak, bir ilişki kuralı oluşturmak iki temel !"#$"%(!∪ !) | !∪ ! | adımdan oluşan bir süreçtir. Güven (A ⇒ B) = = !"#$"%(!) |! | 1. Adım: Sık Görülen Nesne Setlerinin Elde Edilmesi:
eşitliği ile hesaplanır. A⇒B şeklindeki bir ilişki kuralının Karar verici tarafından belirlenen destek eşik değerine eşit güven değeri, aslında A’yı içeren işlemlerin aynı zamanda ya da daha yüksek destek değerine sahip nesne setleri yani B’yi de içerme olasılığıdır yani P(B│A)koşullu sık görülen nesne setleri elde edilir. olasılığıdır. Yani A bilindiğinde B’nin ortaya çıkma 2. Adım: Sık Görülen Nesne Setleri ile Güçlü İlişki olasılığıdır. Kuralının Elde Edilmesi: Birinci adımda belirlenen en yüksek mertebeye sahip yani en fazla nesne içeren sık Konu ile ilgili örnek S.110’da incelenebilir. görülen nesne setinin elemanları kullanılarak ilişki
Güven Eşik Değeri: İlginç kural belirlemede ikinci eleme kuralları oluşturulur. k adet nesne içeren bir sık görülen işlemi, sık görülen nesne setleri üzerinden belirlenecek nesne seti Lk şeklinde gösterilir. Lk’nın elemanları kullanılarak oluşturulacak toplam ilişki kuralı sayısı 2k-2 ilişki kuralları için hesaplanan güven değerleri ile yapılır. Belirlenecek güven eşik değerinin eleme gücü yüksek tanedir.
olmalı yani olabildiğince büyük seçilmelidir. Genellikle Etkin bir şekilde bir ilişki kuralı oluşturabilmek için oluşturulan kuralın güçlü destek ve yüksek güven oranına zaman içerisinde AIS, SETM, Apriori, Eclat ve FP- sahip olması istenir. Belirlenen destek ve güven eşik Growth gibi birçok algoritma geliştirilmiştir.
Apriori Algoritması
Algoritmanın ismi, sık görülen nesne kümelerin önsel bilgisini kullanmasından, diğer bir ifadeyle bilgileri bir önceki adımdan almasından dolayı bir önceki (prior) anlamına gelen “apriori” dir.
Apriori özelliği: Apriori algoritmasının temel yaklaşımı, “Eğer k nesneden oluşan nesne setleri kümesi en küçük destek kriterini sağlıyorsa, bu kümenin alt kümeleri de en küçük destek kriterini sağlar.” şeklindedir.
Destek Bazlı Budama Özelliği: Apriori özelliğinin aksine, “Eğer bir alt küme sık görülen nesne kümesi değil ise, onun bütün üst kümeleri de sık görülen nesne kümesi değildir” temel yaklaşımına sahiptir. Böylece belirlenen destek eşik değerini geçemeyen az elemanlı kümelerin üst kümeleri de destek eşik değerini geçemeyeceği için değerlendirme dışı bırakılır.
Örneğin; I={a,b,c,d} nesne kümesi için, şayet {c, d} nesne kümesi bir sık görülen nesne kümesi değil ise, bu kümenin elemanlarını içeren tüm üst kümeleri olan {a, c, d}, {b, c, d} ve {a, b, c, d} kümeleri de sık görülen nesne kümeleri değildir.
Apriori algoritması seviye mantığı arama olarak bilinen yinelemeli bir yaklaşım kullanır. Bu yaklaşımda k ögeli nesne setleri (k-1) ögeli nesne setlerinin birleştirilmesiyle oluşturulur. Böylece algoritma ile başlangıçta hesaplanan bilgiler daha sonraki yinelemelerde kullanıldığı için tekrar hesapların yapılması engellenmiş olur. Apriori algoritmasının, k-1 ögeli sık görülen nesne setleri kümesi Lk-1 kullanılarak k ögeli sık görülen nesne setleri kümesi Lk’nın elde edilmesi iki adımda gerçekleştirilir. Bunlar birleştirme ve budama adımlarıdır.
Konu ile ilgili örnek S.116-120’de incelenebilir.
İlişki Kuralları R Çözümü
R ile ilişki kuralı oluşturabilmek için arules paketinin R’de kurulması ve hafızaya yüklenmesi gerekir. arules paketi içerisinde yer alan apriori() fonksiyonu yardımıyla güçlü ilişki kuralları oluşturulur.
apriori() fonksiyonunun temel parametreleri ilişki kurallarının oluşturulabilmesi için elde edilen tüm işlemleri (alışverişleri) barındıran veri değişkenini ifade eden data ve özellikle destek ve güven eşik değerleri vb. kısıtlamalara ilişkin eşik değerlerinin belirlendiği parameter’dır. Veri girişi standart veri girişlerinden herhangi birisi ile yapılabilir. Ancak girilen verinin apriori() fonksiyonu ile işlenebilmesi için işlemlerden oluşan veritabanı formatına dönüştürülmesi gerekir. Veri dönüşümü için help(“transactions”) komutundan ve fonksiyon ile ilgili yardım için ise, help(“apriori”) komutundan yararlanılabilir.