Market Basket Analysis merupakan analisis untuk menemukan hubungan antar produk berdasarkan data transaksi penjualan dengan tujuan meningkatkan penjualan. Algoritma Apriori digunakan untuk menemukan aturan asosiasi antar produk secara otomatis dari data transaksi menggunakan library arules di R. Hasilnya berupa itemset dan rules yang dapat digunakan untuk merekomendasikan produk, menata rak, dan meningkatkan penjualan.
WA 0821-2636-0569, Sekolah Pra Nikah Janda Duda Di Semarang
Market Basket Analisis dengan R
1. Market Basket Analysis
konsep dan implementasi dengan Bahasa R
Muhammad Rifqi Ma’arif, M.Eng
Matakuliah Ilmu Data Industrial
Program Studi Teknik Industri
Fakultas Teknik & Teknologi Informasi
Universitas Jenderal Achmad Yani Yogyakarta
2020
2. Pengantar Market Basket Analysis
• Salah satu inovasi bisnis di bidang ritel dan supply chain adalah mencari
asosiasi atau hubungan antar produk dari data transaksi penjualan yang
bertujuan untuk:
• dipaketkan dan dijual bersamaan.
• memberikan rekomendasi produk kepada seseorang.
• menyusun rak display.
• menyusun halaman produk e-commerce.
• Semua hal ini bertujuan untuk meningkatkan penjualan sekaligus
memecahkan masalah inventory – karena produk yang tidak begitu laku
jika dipasangkan dengan tepat akan lebih menarik dan punya kemungkinan
besar dibeli dalam satu paket. Proses ini merupakan proses analisa yang
disebut dengan Market Basket Analysis (MBA).
3. Tujuan Market Basket Analysis
• Market Basket Analysis bertujuan untuk mencari
rekomendasi paket produk berdasarkan pola unik dari
data transaksi/pembelian pelanggan.
• Aplikasi MBA
• Optimaliasi strategi retail yang dapat meningkatkan
penjualan.
• Sebagai dasar prediksi kebutuhan barang di masa depan
untuk meningkatkan manajemen inventory pada proses
supply chain
• Inovasi pengembangan produk
• Supply chain risk analysis & management
• Dan lain sebagainya
4. Market Basket Analysis di R
• Penerapan Market Basket Analysis
(MBA) di R dapat menggunakan
algoritma apriori – yang
merupakan salah satu algoritma
terpopuler di area machine
learning - pada package arules.
• Arules sendiri adalah singkatan
dari association rules - kategori
machine learning. Untuk
menjalankan algoritma ini
diperlukan dibutukan dua data,
yaitu data produk dan data
transaksi.
#Menggunakan library arules
library(arules)
#Membaca transaksi dari file data_transaksi.txt
transaksi <- read.transactions(file="data_transaksi.txt",
format="single", sep="t", cols=c(1,2), skip=1)
#Menampilkan data transaksi dengan print dan inspect
inspect(transaksi)
#Menghasilkan model Market Basket Analysis
mba <- apriori(transaksi,parameter = list(supp = 0.1,
confidence = 0.5))
#Menampilkan paket produk
inspect(subset(mba, lift>1))
6. Association Rule
• Association rule adalah representasi keterkaitan
antar entitas tertentu (e.g produk) yang memiliki
hubungan atau asosiasi kuat di dalam transaksi.
• Hubungan "kuat" disini akan dilihat berdasarkan
proporsi jumlah kemunculan kombinasi entitas dalam
keseluruhan data transaksi.
• Mari kita lihat contoh pada gambar disamping.
• Asd
• Asd
• Asd
• Asd
• Asd
• Asd
7. Algoritma Apriori
• Algoritma apriori adalah salah satu algoritma yang merupakan penerapan praktis dari Market
Basket Analysis (MBA). Algoritma ini digunakan untuk menganalisa banyaknya kombinasi produk
yang terjadi di dalam transaksi ritel, yang akan sulit dan lama jika dilakukan secara manual.
• Secara teknis, algoritma apriori akan mencari tingkat asosiasi antar item di dalam banyak
kombinasi kelompok data secara otomatis. Kombinasi ini juga bisa disusun dengan suatu aturan
(rule) asosiasi "Jika membeli ini produk A maka akan membeli produk B", sehingga algoritma ini
dikategorikan sebagai Association Rules di ranah machine learning.
• Dengan menemukan paket produk yang asosiasinya kuat, Anda sebagai seorang data scientist
dapat menyarankan kepada bisnis dapat melakukan berbagai action item seperti membuat paket
produk dengan penawaran khusus, mendekatkan produk-produk tersebut saling berdekatan
dalam satu rak, mengeluarkan rekomendasi produk di sistem e-commerce, mengurangi masalah
stok, dan lain-lain.
8. Algoritma Apriori di R
• Menampilkan kombinasi transaksi
#Membaca transaksi dari file data_transaksi.txt
transaksi <- read.transactions(file="data_transaksi.txt", format="single",
sep="t", cols=c(1,2), skip=1)
#Menampilkan jumlah kombinasi dari produk yang terdapat pada daftar transaksi yang ada
inspect(apriori(transaksi, parameter = list(support=.1, minlen=2, target='frequent itemsets')))
9. Item dan Trasaction
• item, itemset dan rules dihasilkan dari
transaksi atau transaction
• Transaction (transaksi) adalah.....
• Output disamping adalah tampilan dari
dataset yang berjumlah sepuluh transaksi,
dengan dua kolom yang terdiri dari:
• Kolom pertama adalah itemset yang berisi
item-item yang dibeli pada transaksi
tertentu.
• Kolom kedua berisi kode struk transaksi
yang menjadi penanda unik untuk tiap
transaksi.
10. Membaca Item & Transaction di R
• Dibaca sebagai dataframe
• Dibaca sebagai transaksi
transaksi_dataframe <-
read.csv("data_transaksi.txt", sep="t")
print(transaksi_dataframe)
read.transactions(file="data_transaksi.txt",
format="single", sep="t", cols=c(1,2), skip=1)
12. Item, Itemset dan Rules
• Perhatikan output dari pengolahan algoritma apriori berikut
• Keterangan
• Item adalah produk tunggal yang terdapat dalam suatu transaksi.
Contoh: Pet Food, Sirup, Gula, dan Teh Celup.
• Itemset adalah kombinasi satu atau lebih item yang terdapat dalam satu transaksi.
Contoh: {Pet Food}, {Gula, Pet Food}, {Sirup}, dan lain-lain.
• Rule adalah pernyataan hubungan antar Itemset. Biasanya dapat diformulasikan menjadi
"Jika membeli itemset A, maka akan membeli itemset B".
Contoh: {Pet Food} => {Sirup}, {Pet Food, Teh Celup} => {Sirup}, dan lain-lain.
13. Itemset
• Tiap transaksi terdiri atas beberapa item atau itemset. Untuk melihat notasi itemset yang lebih
baik dan mudah dimengerti kita bisa menggunakan function inspect, yang tersedia di arules.
library(arules)
transaksi <- read.transactions
(file="data_transaksi.txt",
format="single",
sep="t",
cols=c(1,2),
skip=1)
inspect(transaksi)
14. Rules
• rule adalah formula yang
menyatakan kombinasi dari dua
itemset. Satu itemset ada di bagian
kiri rule (left hand side) dan satunya
di bagian kanan (right hand side)
dalam format berikut.
{itemset lhs} => {itemset rhs}
• Untuk menghasilkan rules, dapat
digunakan fungsi apriori yang
tersedia dalam arules.
apriori(transaksi)
15. Rules
• Melihat Rules dengan fungsi inspect
• Apa makna dari rule jika ingin kita aplikasikan?
• terlihat rule kedua yaitu {Pet Food} => {Sirup} cukup menarik Karena support 0.4
menunjukkan bahwa kombinasi ini terdapat di 40 persen populasi, sehingga:
• rekomendasikan kepada setiap pelanggan yang membeli Pet Food untuk membeli Sirup.
• rak display Pet Food dan Sirup bisa didekatkan.
• Pet Food dan Sirup dipaketkan bersama dan dijual dengan harga khusus.
library(arules)
transaksi <- read.transactions
(file="data_transaksi.txt",
format="single", sep="t",
cols=c(1,2), skip=1)
mba <- apriori(transaksi)
inspect(mba)
16. Filter RHS
• Dari hasil inspect objek mba yang bertipe association rules diketahui bahwa objek tersebut
mengandung banyak informasi termasuk itemset yang terdapat di left hand side dan right hand
side.
• Ini penting untuk bisnis, misalkan untuk inventory. Kita ingin menjawab, adakah item yang kurang laku
sebelumnya ada di dalam itemset dari rules yang dihasilkan oleh apriori? Jika ada, mungkin saya bisa paketkan
bersama sehingga kemungkinan besar terjual lebih banyak.
• Untuk melakukan ini kita akan melakukan filter atau subsetting dari rules. Banyak cara, salah satunya adalah
dengan menggunakan gabungan function inspect, subset dan operator %in% dengan contoh berikut.
19. Scoring & Evaluation
• Support (nilai penunjang) adalah presentase kombinasi item tersebut
dalam database. Support dari suatu itemset A adalah proporsi dari
kejadian semua item di himpunan A terbeli secara bersamaan.
• Confidence (nilai kepastian) adalah kuatnya hubungan antar-item
dalam aturan asosiasi. Confidence dari suatu itemset A dan B adalah
jumlah dari itemset A,B dari jumlah itemset yang mengandung A.
• Lift adalah sebuah angka ratio yang menunjukkan berapa banyak
kemungkinan menemukan sebuah atribut yang muncul bersamaan
dengan atribut lainnya dibandingkan dengan seluruh kejadian
adanya atribut yang terpenuhi. Lift menunjukkan adanya tingkat
kekuatan ruleatas kejadian acak dari antecedent dan consequent
berdasarkan pada supportnya masing-masing.