Recommendation Systems — Association Rules Learning (Tavsiye Sistemleri — Birliktelik Kuralı)

Şevval Yurtekin
Machine Learning Turkiye
4 min readJun 13, 2021
https://dev.to/sanfernoronha/recommender-systems-for-podcasts-5ckb

Tavsiye sistemleri ile, günümüzde popüler olan bir çok kişinin aktif olarak kullandığı Netflix, Spotify, Youtube, Instagram gibi çok sayıda site sayesinde tanıştık. Tavsiye sistemleri , bir kullanıcının bir ögeye (film, şarkı vs.) vereceği değerlendirme veya tercih miktarını tahmin etmeyi amaçlayan bir bilgi filtreleme sistemidir. 4 tip tavsiye sistemi çoğunlukla kullanılmaktadır. Bunlar,

Basit Tavsiye Sistemleri (Simple Recommendation Systems)

İş bilgisi ya da basit tekniklerle yapılan genel öneriler olarak adlandırılabilir. Örneğin, kategorinin en yüksek puanlıları, trend olanlar gibi.

İçerik Temelli Filtreleme (Content Based Filtering)

Kullanıcıların daha önce yaptığı işlemlerden yola çıkarak tavsiyede bulunulmasıdır. Ürün benzerliklerine göre yapılan uzaklık temelli bir yöntemdir.

İş Birlikçi Filtreleme (Collaborative Filtering)

Kullanıcı ya da ürün bazında ortak kanaatleri yansıtan bir yöntemdir. Benzer kullanıcı davranışlarını belirleyerek bu doğrultuda öneri sunan sistemlerdir. Kullanıcı temelli (user-based), ürün temelli (item-based) ve model temelli yapılardan oluşmaktadır.

Kullanıcı temelli , hedef kullanıcıyla benzer zevklere sahip diğer kullanıcılar tarafından o ögeye verilen puanlar temelinde bir kullanıcının beğenebileceği ögeleri tahmin etmek için kullanılan bir tekniktir.

Ürün temelli, ürünlerin, filmlerin, eşyaların vb. benzerliğine dayalı olarak önerilerde bulunulur.

Birliktelik Kuralı (Association Rule Learning)

Veri içerisindeki örüntüleri (davranışları) bulmak için kullanılan kural tabanlı bir makine öğrenmesi tekniğidir.

Apriori Algoritması

Sepet analizi yöntemi olarak bilinir. Ürün birlikteliklerini ortaya çıkarmak için kullanılır.

Support(X,Y) = Freq(X,Y) / N -(X ve Y’nin birlikte görülme olasılığı) N = gözlem sayısı

Confidence(X,Y) = Freq(X,Y) / Freq(X) - X satın alındığında Y’nin satılma olasılığı

Lift = Support(X,Y) / (Support(X) * Support(Y)) -X satın alındığında Y’nin satın alınma olasılığı lift kat artar.

Bir market sepeti örneğiyle bu kavramları ele alalım.

Bir markette 8 tane işlemi ele alalım. Yukarıdaki tabloda her bir müşterinin alışverişini görmekteyiz. Ekmek & Süt değerlerini ve Süt & Kek satın alma değerlerini hesapladık. Lift hesabında görüyoruz ki, Süt satın alındığında Kek’in alınma olasılığı 1,60 kat artmaktadır.

Apriori algoritması minimum support ve minimum confidence parametreleri ile çalışmaktadır. Başlangıçta kullanıcı tarafından bir support belirlenir.

Veri setinde her ürün için support değerleri hesaplanır ve belirlenen support değerinden küçük değere sahip olan ürünler çıkarılır. Daha sonra ürünler ikili olarak gruplanır ve support değerlerine bakılır. Belirlenen support değerinden küçük olanlar çıkarılır.

Aynı şekilde ne kadar ürün varsa ikili, üçlü, dörtlü gibi gruplarla işlemler tekrar edilir. Support değerinden küçük olanlar çıkartılır.

Şimdi bir veri setinden sepet aşamasındaki kullanıcılara birliktelik kuralı ile ürün önerisinde bulunalım. Veri setine buradan erişebilirsiniz.

Veriyi çağırdık. Aşağıdaki kodda aykırı değerlerden kurtulmak için veriyi baskıladık. Veri setinde bulunan boş değerleri ve fatura iptal işlemlerini veriden çıkarttık. Bize bir anlam ifade edebilmesi için Price değerleri 0'dan büyük olanları ve Quantitiy değerleri 0'dan büyük olanları aldık. Yani gerçek işlemleri aldık.

İlk 5 veriyi gözlemleyebiliriz.

Ülke olarak Germany üzerinden ilerleyeceğiz. Bu yüzden Germany verilerini çekiyoruz. Bu verileri fatura ve ürüne göre groupby işleminden geçiriyoruz ve miktara göre sum alıyoruz. Böylelikle bir faturada kaç tane ürün var onu tespit ediyoruz.

Daha sonra pivot tablo yaratıyoruz. Ürünleri column name haline getiriyoruz ve faturada var olan ürüne 1 var olmayan ürüne 0 ataması yapıyoruz.

Peki, elimizde ID’ler var. Fakat bu Id’lerin isimleri nelerdir? Aşağıdaki id’lere göre isimleri bulalım.

Birliktelik kuralı için gerekli olan bazı metrikleri hesaplayalım.

antecedents; önceki ürün kodu — consequent; sonraki ürün kodu

antecedent support; önceki ürünün tek başına support değeri

consequent support; sonraki ürünün tek başına support değeri

support, confidence ve lift değerlerini yukarıda açıklamıştım.

Şimdi de müşteriye özel ürün önerisinde bulunalım. Sepetinde 21987 kodlu ürün yani PACK OF 6 SKULL PAPER CUPS olan kişiye 2 öneride bulunalım.

Sonuç olarak, birbirine benzer, yakın ürünleri önerdi. Kodların tamamına buradan ulaşabilirsiniz.

REFERANS

Veri Bilimi Okulu DSMLBC5

--

--