Apriori Algoritması ile Python’da Market Sepeti Analizi

Apriori Algoritması Nedir?

Apriori algoritması, veri madenciliği ve özellikle market sepeti analizi gibi alanlarda sıkça kullanılan bir algoritmadır. Bu algoritma, bir veri kümesindeki sık kullanıma sahip olan öğeleri belirlemek ve bu öğeler arasındaki ilişkileri keşfetmek üzere tasarlanmıştır. Market sepeti analizi, müşteri davranışlarını anlamak ve ürünlerin bir arada satın alınma olasılıklarını keşfetmek amacıyla sıklıkla uygulanan bir tekniktir.

Apriori algoritması, öğelerin birlikte bulunma oranını ve bu oranların destek değerleri ile ölçülmesini sağlar. Örneğin, bir müşteri X ürününü satın aldıysa, Y ürününü satın alma olasılığının değerlendirilmesine yardımcı olur. Bu tür bilgiler, perakendecilere hangi ürünlerin birlikte sunulması gerektiği konusunda karar verme aşamasında önemli bir avantaj sunar. Bu yazıda, Python programlama dili kullanarak Apriori algoritmasını nasıl uygulayacağınıza dair pratik bir rehber sunacağız.

Apriori algoritması, temel olarak iki önemli metriği esas alır: destek ve güven. Destek, bir öğenin toplam işlemlerin ne kadarında bulunduğunu gösterirken, güven iki öğe arasındaki ilişkiyi ölçer. Bu algoritmanın sağlam bir temele dayandığını belirtmek önemlidir; çünkü büyük veri kümelerinde anlamlı sonuçlar elde edebilmemizi sağlar.

Apriori Algoritması ile Python Uygulaması

Apriori algoritmasını Python dilinde kullanarak uygulamak için öncelikle gerekli kütüphaneleri yüklememiz gerekecek. Python için en yaygın kullanılan kütüphanelerden biri ‘mlxtend’ (machine learning extensions) kütüphanesidir. Bu kütüphane, özellikle Apriori algoritmasının uygulanmasını kolaylaştırır. Aşağıda, gerekli kütüphanelerin yüklenmesi sürecini ve örnek bir veri kümesi oluşturmayı adım adım açıklayacağız.

Öncelikle, gerekli kütüphaneleri yükleyelim ve bir örnek veri seti oluşturalım:

import pandas as pd
from mlxtend.frequent_patterns import apriori, association_rules

# Örnek veri seti
dataset = {'ID': [1, 2, 3, 4, 5],
'Ürünler': [['Süt', 'Ekmek'], ['Süt', 'Bisküvi'], ['Ekmek', 'Bisküvi'], ['Süt', 'Ekmek', 'Bisküvi'], ['Bisküvi']]}
df = pd.DataFrame(dataset)
df

Yukarıdaki kod parçasında, birkaç basit ürün içeren bir veri seti oluşturduk. Her bir satır, belirli bir müşterinin satın aldığı ürünleri temsil etmektedir. Bu veri setini kullanarak Apriori algoritmasını uygulayacağız.

Veri Hazırlığı

Apriori algoritması ile çalışabilmek için veri setimizi uygun bir formata dönüştürmemiz gerekmektedir. Bu süreç, genellikle her ürün için ikili bir matris oluşturmayı içerir. Yani, eğer bir ürün belirli bir işlemde varsa ‘1’, yoksa ‘0’ kullanılır. Bu dönüşümü gerçekleştirerek verimizi hazırlayabiliriz:

from mlxtend.preprocessing import TransactionEncoder
te = TransactionEncoder()
te_ary = te.fit(df['Ürünler']).transform(df['Ürünler'])
df_onehot = pd.DataFrame(te_ary, columns=te.columns_)
df_onehot

Bu aşamada, ürünlerin ikili temsillerini elde ettik ve verilerimizi Apriori algoritmasının kullanımına uygun hale getirdik. Artık algoritmayı uygulamak için hazırsınız.

Apriori Algoritmasını Uygulamak

Şimdi, hazırladığımız veriler üzerinde Apriori algoritmasını uygulayacağız. Algoritmanın temel parametrelerinden biri ‘min_support’ (minimum destek) değeridir. Bu değer, bir ürün grubunun sık olan öğeler olarak kabul edilmesi için gereken minimum destek değerini belirtir. Aşağıdaki kod parçasında Apriori algoritmasının uygulanışı gösterilmektedir:

frequent_itemsets = apriori(df_onehot, min_support=0.4, use_colnames=True)
frequent_itemsets

Yukarıdaki kodu çalıştırdığımızda, belirtilen minimum destek değerine göre sık öğe kümelerini elde edeceğiz. Örneğin, sonuçlarımız aşağıdaki gibi görünebilir:

  support  itemsets
0 0.6 (Süt)
1 0.8 (Bisküvi)
2 0.4 (Ekmek)
3 0.4 (Süt, Bisküvi)

Burada, hangi ürünlerin ne sıklıkla bir arada bulunduğunu anlamış olduk. Örneğin, Bisküvi %80 destek oranı ile sık bir öğe olarak karşımıza çıkmaktadır.

Bağlantı Kurallarını Belirleme

Apriori algoritmasından elde ettiğimiz sık öğe kümeleri üzerinden, bağlantı kurallarını çıkarmak için ‘association_rules’ fonksiyonunu kullanacağız. Bu süreç, ürünler arasındaki ilişkileri keşfetmemize olanak tanır. Güven değerine göre kural oluşturmak için aşağıdaki kodları kullanabilirsiniz:

rules = association_rules(frequent_itemsets, metric=

Scroll to Top