← Back to list

Tavsiye Sistemleri

Birliktelik Kuramı

Zeynep · 2022-01-01 16:47 · 310 claps · 3.2 min read
#recommendation-system #birliktelik-kuralları #veri-bilimi #veri-bilimi-okulu
Open on Medium ↗

Tavsiye Sistemleri

Birliktelik Kuramı

Tavsiye sistemlerini bu kadar başarılı yapan altyapı nedir? Önümüze çıkan içeriklerin hepsi nasıl olur da bizimle bu kadar uyumlu?

Gelin tavsiye sistemlerinin altındaki temel algoritma mantığına, yazılım aşamalarına birlikte bakalım. Bu yazıdaki amacımız online hediye satışı yapan sitenin verileri üzerine birliktelik analizi uygulayarak kullanıcılara sepetindeki ürünlere göre ürün önermek.

Birliktelik Kuramı

Olayların, ürünlerin birlikte gerçekleşme, satın alınma durumlarını çözümleyen veri madenciliği yöntemlerine dayanan sıkça kullanılan ve tavsiye sistemlerinin temel mantığını kavramamız açısından anlaşılması gereken önemli bir kuramdır.

Öncelikle data setimizdeki değişkenlerimizi tanıyalım.

Data setine ulaşmak için lütfen ***buraya ***tıklayınız.

Sırasıyla aşağıdaki adımları takip edeceğiz.

# 1. Veri Ön İşleme
# 2. ARL Veri Yapısını Hazırlama (Invoice-Product Matrix)
# 3. Birliktelik Kurallarının Çıkarılması
# 4. Sepet Aşamasındaki Kullanıcılara Ürün Önerisinde Bulunmak
  1. Veri Ön İşleme

Verimizi çağırdıktan sonra oluşturduğumuz “thresholds” fonksiyonlarımızla aykırı değerleri baskıladık. Veri setimizdeki boş değerleri ve fatura iptal işlemlerini sildik.

Not: birliktelik kuramını uygulamanız için eğer kütüphane yüklü değilse!pip install mlxtendile kütüphaneyi yükledikten sonrafrom mlxtend.frequent_patterns import apriori, association_rulesile import ediniz.

Ön işlenmiş verimize bir göz atalım.

2. ARL Veri Yapısını Hazırlama (Invoice-Product Matrix)

Analizin yolunu değiştirebilecek düşünülmesi gereken bir adımdayız. En kritik noktası sepeti tanımlamak. Sepet ne? Odak noktanın iyi belirlenmesi gerekiyor. Bu case de faturalar üzerinden gideceğiz. Müşteri-Ürün ile değil Fatura-Ürün ikilisini dikkate alacağız. Ülke seçimi isteğe göre değişkenlik gösterebilir, biz germany üzerinde ilerleyeceğiz.

İstediğimiz Fatura(Invoice)-Ürünlerimiz(StockCode) ikilisi olduğu olduğu için bu değişkenlerimizi groupby ile tablo haline getirdik ve fonksiyon içine tanımladık. Unstack() sayesinde Invoice satırda, StockCode değerlerimiz sütunda yer alacak.

Çıktımıza göz atalım.

  1. Birliktelik Kurallarının Çıkarılması

Bu aşamada kullanılan apriori fonksiyonunu ürün birlikteliklerini ortaya çıkarmak için kullandık. Daha sonra sıklık derecelerine göre sort_values fonksiyonu ile sıraladık. min_support değerinin 0.01 olması demek, herhangi çoklu ürünün birlikte gözükme olasılığı ancak 0.01 den büyükse getir demek.

Daha sonra association_rules fonksiyonu ile birliktelik metriklerinin çıktılarını aldık. Çıktımızı ve işimize yarar çıktı başlıklarımızı inceleyelim.

antecedents: 1. ürünümüz

consequents: 1. ürün ile aynı sepette birlikte görünen 2. veya daha fazla sayıda ürünlerimiz.

antecedent support: ürün1 in tek başına sepette gözükme olasılığı

consequent support: 2. ürün ikinin tek başına sepette gözükme olasılığı

support: İki ürünün beraber sepette gözükme olasılığı (p)

confidence: 1. Ürün alındığında 2. ürünün alınma olasılığı

lift: 1. Ürün alındığında 2. ürünün alınma olasılığının kaç kat arttığı

  1. Sepet Aşamasındaki Kullanıcılara Ürün Önerisinde Bulunmak

Son aşamamızda seçtiğimiz bir kullanıcının sepetinde bulunan ürünlere göre birlikte alabileceği başka ürünler önermek.

not: product_id’i random olarak seçildi.

check_df fonksionu; girdiğimiz id ye göre ürünün ismini çağırmak için oluşturduk.

Sepetimizde var saydığımız 23049 ID li ürünümüz için 3 farklı ürün önerdiğimi arl_recommender fonksiyonu tanımladık. Ve bu önerileri içerisinde tutması için recommendation_list adında liste atadık.

Aşağıdaki son çıktımıza göre sepette olan ‘RECYCLED ACAPULCO MAT RED’ ürününe göre birlikte görülme olasılığına göre önerilecek en isabetli üç ürün listelenmiştir.

Diğer yazılarda görüşmek üzere.

Hoşçakalın.

İletişimde geçebileceğimiz ***Linkedln ve [git.hub](https://github.com/zeyland)*** hesaplarıma tıklayıp ulaşabilirsiniz.

English version of Recommendation System is below.

[embed]Recommendation System Association Rulemedium.com


메타데이터
post_id
98390707881a
slug
tavsiye-sistemleri-98390707881a
url
https://medium.com/@zeyland/tavsiye-sistemleri-98390707881a
canonical_url
https://medium.com/@zeyland/tavsiye-sistemleri-98390707881a
author_url
https://medium.com/@zeyland
status
ok
fetched_at
2026-07-27 16:19:55