Python kullanarak birliktelik analizi çalışması yaptık. Özellikle B2C ticaret modelinde kullanılan birliktelik analizi, gelecek için tahmin yapmamıza yardımcı oluyor. Apriori algoritması kullanılarak yapılır.
Vahit Keskin’in “Veri Bilimi ve Makine Öğrenmesi” eğitiminde bu hafta 2.projemizi gerçekleştirdik. RFM analizi çalışmamızdan sonra bugün ise birliktelik analizi ile ilgili bir projeyi bitirdik.
Bu projede kullandığımız data seti yurtdışında bir süpermarkete ait dar bir tarih aralığında gerçekleşmiş alışverişleri kapsıyor.
Birliktelik Analizi Nedir?
Birliktelik analizi olayların birlikte gerçekleşme durumunu gösterir. Genellikle daha önce gerçekleşmiş olaylarda analiz yapılarak hangi olayların ne kadar gerçekleştiği ve farklı olayların ne kadar birlikte gerçekleştiğini gösterir. Perakende sektöründe ise bu sepet analizi olarak da adlandırılır. Alışveriş yapan müşterilerin/kullanıcıların aldığı ürünlerin ne kadar alındığını ve hangi ürünlerin birlikte alındığını tespit etmek için kullanılır. Bu tespit sonunda ise yapılacak pazarlama çalışmaları kullanıcılara daha anlamlı ürünler sunabilir ve alışveriş oranını arttırabilir.
Birliktelik Analizi İçin Hangi Algoritma Kullanılır?
Apriori Algoritması
Kelime anlamı olarak önsel anlamını taşımaktadır. Apriori algoritması ile sık geçen veriler ortaya çıkarılmaktadır. Tekrarlayan verileri bulmamıza yardımcı olur. Birliktelik analizi için Apriori algoritmasının yanı sıra boolean ilişki kuralı da kullanılır.
Birliktelik analizini kullanırken bilmemiz gereken ve bize yol gösteren bazı değerler var. Bu değerler:
- Frekans
- Support
- Confidence
- Lift
Frekans
Veri setindeki ürünün ne kadar satıldığı.
Support
Her bir ürünün ilgili data setinde satılma oranı. Örneğin toplam 10 alışveriş gerçekleşti. X ürünün satılma sayısı 5, o halde support 0.5 olacak. X ve Y ürünü birlikte 3 kere alındıysa bunun da support değeri 0.3 olacak.
Confidence
Bir ürün alan kullanıcının diğer ürünü alma olasılığıdır. Örneğin X ve Y ürünü alan kullanıcının Z ürününü alma olasılığı.
Lift
Bir ürün alındığında diğer ürünü alınma ihtimali. Örneğin X ürünü alan kullanıcıların Y ürünü alma ihtimali.
Python ile Birliktelik Analizi Nasıl Yapılır?
Süpermarket verisi üzerinden yaptığımız çalışmanın kodları için github linkini bırakıyorum.
Yorum ve Aksiyonlar
Kodlamadan ziyade tanım ve yorumlarla ilgilenenler için aşağıda birkaç örnek ve yorum paylaşacağım.
Support
Aşağıda gördüğümüz örnekte ürünlerin satın alınma oranlarını görüyoruz.
Örneğin biscuit bu data setine göre yapılan alışverişlerin %35’inde yer almış.
Ekmek(bread) %65 satın alınma oranı ile en yüksek support değerine sahip. Alışverişlerin %65’inde ekmek satılmış.
Biscuit ve Bread ürünlerinin aynı anda satın alınma oranı ise %20. Yani bu alışveriş data setinde bu iki ürün 100 alışverişin 20’sinde aynı sepette yer almış.
Confidence
Confidence (güven) değerine baktığımızda süt alanların %80 oranla ekmek alma ihtimali de var. Cornflakes alanlar ise %66 oranla kahve de alabilir. Maggi adlı ürünü alanlar ise %80 oranla çay da alma ihtimaline sahip.
Lift
Lift aslında güven ( confidence ) değerini doğrulamak için kullanılır. Bazı durumlarda ilk ürünün ( x diyelim ) işlemleri içeren veri setindeki popülerliğinden dolayı confidence yanıltıcı sonuç verebilir. Bu durumu hem kontrol etmek hem de confidence değerini sağlamlaştırmak için lift değerine bakabiliriz. Örneğin ilk indexteki milk bread verisine bakarsak; milk alan kullanıcı olduğunda bread satılma ihtimalini %23 arttırıyor. Bu veri oluşturulurken bread’in ( Y diyelim ) veri setindeki popülerliği de dikkate alındığı için sağlıklı bir veri çıkıyor. Lift 1 ‘ in üzerinde olduğunda iki ürün arasında pozitif ilişki var demek. Eğer 1’in altındaysa bir ürünün satılması diğer ürünün satılmasını etkilemiyor demek.
Veri Bilimi ile ilgili diğer yazılarıma buradan ulaşabilirsiniz.