Pengenalan
Market basket evaluation adalah teknik analisis yang digunakan untuk menemukan pola antar item-item yang sering dibeli secara bersamaan dalam transaksi penjualan. Analisis ini bertujuan untuk menemukan asosiasi atau korelasi antara item-item tersebut, yang kemudian dapat digunakan untuk berbagai tujuan, seperti pemasaran lintas penjualan (cross-selling), rekomendasi produk, pengelompokan produk, dan manajemen stok (Ramadana, Setyahadewi & Perdana, 2022).
Langkah-Langkah
Untuk melakukan market basket evaluation pada dataset transaction dengan phyton di google colab maka, terlebih dahulu unduh knowledge yang ada pada kaggle, kemudian add dataset ke dalam google colab dan import dataset dengan code
import pandas as pd#mengimport dataset wine
transaksi = pd.read_csv("/content material/knowledge nomor 3.csv")
# Menampilkan beberapa baris pertama
print(transaksi.head())
kemudian, sebelum melakukan market basket evaluation pertama-tama lakukan cleansing knowledge dengan mengapus knowledge not accessible (NA) sehingga memudahkan dalam melakukan market basket evaluation.
#membersihkan knowledge NA
transaksi.dropna(inplace=True)
kemudian sebelum melakukan agregat berdasarkan “TransactionID” terlebih dahulu dilakukan mengeliminasi atau menghapus knowledge yang memiliki “NumberOfItemsPurchased” ≤ 0. Karena analisis ini ingin mencari tau apa saja barang yang dibeli secara bersamaan sehingga jika tidak ada barang yang dibeli dikarenakan pembatalan hal itu tidak bisa termasuk ke dalam analisis, maka knowledge tersebut harus dihapus.
transaksiplus=transaksi[transaksi['NumberOfItemsPurchased']>=0]
Kemudian untuk melakukan agregat berdasarkan “TransactionID”, dilakukan grup by atau dikelompokkan negara dan diurutkan berdasarkan “TransactionID” dari yang terbesar ke yang terkecil.
top_10_transaction = pd.DataFrame(transaksiplus.groupby('Nation').nunique().sort_values('TransactionId',
ascending=False).head(10)['TransactionId'])
top_10_transaction
Dari hasil didapatkan bahwa negara dengan jumlah pembelian terbanyak adalah UK, maka untuk mempermudah analisis, hanya negara UK yang dipakai untuk analisis. Untuk selanjutnya adalah melihat jumlah barang yang terbeli dari setiap transaksi dengan cara,
basketplus=(transaksiplus[transaksiplus['Country']=="United Kingdom"].groupby(['TransactionId','ItemDescription'])['NumberOfItemsPurchased'].sum().unstack().reset_index().fillna(0).set_index('TransactionId'))
print(basketplus)
Hal ini dilakukan untuk mengetahui berapa banyak barang yang dibawa di dalam keranjang ke kasir, karena analisis ini ingin mengetahui hubungan antara barang-barang yang dibeli maka jika keranjang kosong knowledge tidak akan dipakai karena tidak memeliki pengaruh.
Saat melakukan Market Basket Evaluation , jumlah barang yang dibeli tidak terlalu penting yang penting produk itu dibeli atau tidak. Karena hanya ingin mengetahui apa hubungan antara pembelian suatu produk dengan pembelian produk lainnya. Oleh karena itu, kita perlu mengubah knowledge keranjang belanja menjadi knowledge biner yang menunjukkan apakah barang tersebut dibeli (1) atau tidak (0). Dengan cara
def encode_units(x):
if x<=0:
return 0
if x>= 1:
return 1
basket_encode_plus = basketplus.applymap(encode_units)
basket_encode_plus.tail()
setelah dilakukan pengkodean, selanjutnya dilakukan pem-filter-an knowledge untuk transaksi yang membeli lebih dari 1 barang. Karena pada analisis ini mempelajari hubungan dalam pembelian 1 barang akan mempengaruhi pembelian barang lain, sehingga jika pembelian barang kurang dari 2 maka knowledge tersebut tidak terpakai karena tidak mempengaruhi pembelian barang lain.
basket_filter_plus = basket_encode_plus[(basket_encode_plus > 0).sum(axis=1) >= 2]
basket_filter_plus
Dalam tahap ini maka knowledge sudah siap untuk dilakukan Market Basket Evaluation (MBA). Dengan menggunakan algoritma apriori maka akan didapatkan merchandise yang sering muncul atau sering dibeli.
#apriori
from mlxtend.frequent_patterns import apriorifrequent_itemsets_plus = apriori(basket_filter_plus, min_support=0.03,
use_colnames=True).sort_values('assist', ascending=False).reset_index(drop=True)
frequent_itemsets_plus['length'] = frequent_itemsets_plus['itemsets'].apply(lambda x: len(x))
frequent_itemsets_plus
Dari hasil yang didapatkan, diketahui bahwa barang yang sering dibeli adalah “white hanging coronary heart t-light holder” dengan assist sebesar 0.1298. hal ini berarti white hanging coronary heart t-light holder sering dibeli dengan persentase sekitar 13% jika dibandingkan dengan jumlah complete transaksi.
kemudian untuk menghasilkan aturan asosiasi dengan metrik seperti assist, confidence, dan carry. Aturan asosiasi dalam market basket evaluation merujuk pada hubungan atau korelasi yang ditemukan antara merchandise atau barang dalam transaksi atau keranjang belanja pelanggan. Aturan asosiasi terdiri dari dua bagian utama: “antecedent” (premise) dan “consequent” (hasil). Contohnya jika membeli roti maka (antecedent) membeli mentega (consequent).
#asosiation
from mlxtend.frequent_patterns import association_rulesassociation_rules(frequent_itemsets_plus, metric='carry',
min_threshold=1).sort_values('carry', ascending=False).reset_index(drop=True)
Dari hasil yang didapatkan dapat dilihat bahwa jika membeli inexperienced regency teacup and saucer maka akan membeli pink regency teacup and saucer. Kedua barang tersebut adalah barang yang memiliki asosiasi yang paling tinggi dikarenakan nilai “carry” yang tinggi. Semakin tinggi nilai carry yang didapatkan maka menunjukkan semakin tinggi hubungan kedua barang tersebut. Sehingga disini inexperienced regency teacup and saucer dan pink regency teacup and saucer memiliki nilai carry sebesar 14.618. Sehingga jika kedua barang tersebut dijual secara bersamaan akan besar kemungkinan barang tersebut terjual dalam jumlah yang banyak.
Dari hasil aturan asosiasi yang didapatkan maka hal-hal yang bisa dilakukan adalah
- cross-selling atau promo silang, contohnya adalah jika pelanggan membeli inexperienced regency teacup and saucer maka akan mendapatkan promo/diskon untuk pink regency teacup and saucer,
- penempatan barang yang berdekatan, contohnya tempatkan barang barang yang memiliki nilai carry yang tinggi sehingga ketika pelanggan membeli inexperienced regency teacup and saucer maka akan tertarik untuk membeli pink regency teacup and saucer karena letaknya yang berdekatan,
- bundling, artinya barang-barang yang memiliki nilai carry yang tinggi dijadikan sebagai promo bundling contoh membeli inexperienced regency teacup and saucer dan pink regency teacup and saucer secara bersamaan akan mendapatkan diskon atau potongan harga,
- Jika dilakukan pada e-commerce maka barang-barang yang memiliki nilai carry yang tinggi, yang menjadi consequent dijadikan sebagai saran barang yang dibeli secara bersamaan,
- Program Loyalitas, gunakan aturan asosiasi untuk membangun program loyalitas yang lebih efektif. Berikan poin reward atau diskon khusus untuk pembelian item-item yang sering dibeli bersama menurut MBA,
- Personalisasi komunikasi, gunakan informasi dari aturan asosiasi untuk melakukan personalisasi dalam komunikasi pemasaran Anda. Misalnya, kirimkan electronic mail atau pesan teks yang berisi penawaran khusus untuk produk yang relevan dengan pola belanja sebelumnya pelanggan,
- Optimasi penyimpanan dan persediaan, selain penempatan produk di dalam toko, gunakan informasi dari MBA untuk mengoptimalkan penyimpanan dan persediaan. Pastikan stok produk yang sering dibeli bersama tersedia dalam jumlah yang mencukupi.
Referensi
Ramadana, W. D., Setyahadewi, N., & Perdana, H. (2022). PENERAPAN MARKET BASKET ANALYSIS PADA POLA PEMBELIAN BARANG. Buletin Ilmiah Math. Stat. dan Terapannya (Bimaster), 431.