Apriori Algoritması - Veri Madenciliği

Yusuf Çakal
Deep Learning Türkiye
3 min readJul 18, 2018

Veri Madenciliği alanında Birliktelik Kuralları Yönetimi(Association Rule Mining) konusu altında yer alan ve sıkça kullanılan apriori algoritmasının ismi, tümdengelim ile edinilen anlamına gelir; tam türkçesi önsel (bilgi) “prior” anlamına gelmektedir. Bir veri kümesini adım adım keşfetmeye ve veri kümesi içerisinde bulunan verilerin birliktelik kurallarını incelemeye yarayan bu algoritmayı yakından tanıyalım.

Apriori algoritmasının en bariz örneği alışveriş sepetidir.

Yukarıdaki resimden de anlaşılacağı üzere bir alışveriş sepetinde bulunan ürünlerden ya da alışveriş fişlerinden yola çıkarak hangi ürünün ne sıklıkla satıldığı ve hangi ürünlerin birlikte satıldığını öğrenmemiz mümkündür.

Algoritma da kullanılan destek değeri (support value) veri kümesinin eşik değeridir. Örneğin şunu diyebiliriz. Bir ürün veri kümesinde 3'ten az satıldıysa bu ürünü kampaya veya herhangi bir işleme tabi tutmamıza gerek yoktur.

Veri kümemiz aşağıdaki gibi olsun.

Yani hangi ürünlerin birlikte satıldığına ve kullanım sıklığına (frekans) bu küme üzerinden karar vereceğiz.

Frekans değeri ilgili elemanın toplamda ne kadar kullanıldığı ya da örneğimiz üzerinden gidecek olursak bir ürünün ne kadar satıldığıdır. Tablodan da göreceğiniz üzere toplam alışveriş sayısı 10 , A ürünün satıldığı alışveriş sayısı 8 bu yüzden A ürünün frekansına 0.8 dedik.

Apiori Algoritmasının 1. aşaması bu şekilde şimdi gelelim 2. aşamaya.

Bir desktek (support) değeri belirleyelim ve bu değer üzerinden verilerimizi indirgeyelim. Birlikte satın alınan ürünlerin support (destek, eşik) değeri 0.3 ün altındaysa o alışverişi gözardı edebilirsiniz.

Yukarıda ki tablodan şunu çıkarabiliriz. (ilk satırından) A ve B ürünleri birlikte tüm alışverişin yarısında satılmış demek. Bizim destek (support) değerimiz 0.3 dü. Yani eşik değerinin üstünde ki eğri de seyir ettiğinden bizim için önemli bir bilgi haline geldi. Tabloda ki diğer alışverişler de aynı şekilde farkettiyseniz 0.3 ün altında kalan alışverişleri tabloya dahil etmedik çünkü eşik değerimizin altında yani bizim için anlamlı bilgi değil.

Bir adım daha ilerlediğimiz zaman.

Yukarıda ki tablo oluşacaktır ve algoritma burada bitecektir. Çünkü veri kümemizde 0.3 değeri veya üzerinde başka herhangi bir support değeri bulunmamakta.

Sonuç

Buradan sonuç olarak şu çıkarım yapılabilir. İçinde {A,B,C} ürünleri geçen alışverişler en çok ter. Yani A , B ve C ürünü birlikte en çok satılan üründür diyebiliriz.

Bu algoritmanın örnek kodlarına buradan ulaşabilirsiniz.

Kaynaklar: Hackerearth, Stonybrook

--

--