Market Basket Analysis Sederhana Part 1

revata maggandari
6 min readJun 5, 2019

--

Market basket analysis adalah suatu analisa atas perilaku konsumen secara spesifik dari suatu golongan / kelompok tertentu. Sumber data dari market basket analysis antara lain dapat bersumber dari transaksi kartu kredit, kartu lotere, kupon diskon, panggilan keluhan pelanggan. Market basket analysis umumnya dimanfaatkan sebagai titik awal pencarian pengetahuan dari suatu transaksi data ketika kita tidak mengetahui pola spesifik apa yang kita cari. Kebutuhan market basket analysis berawal dari keakuratan dan manfaat yang dihasilkannya dalam wujud aturan assosiasi (association rules). Yang dimaksud dengan association rules adalah pola-pola keterkaitan data dalam basis data.

Proses market basket analysis dimulai dengan transaksi yang terdiri dari satu/lebih penawaran produk/jasa dan beberapa informasi dasar suatu transaksi. Hasil dari market basket analysis adalah berwujud aturan assosiasi (association rules).

Persaman 1 menjelaskan bahwa nilai support
itemset (group variasi produk) A terhadap itemset B sebesar probabilitas dari gabungan itemset A dan B.

Persamaan 2 menjelaskan bahwa persentase keyakinan (confidence) itemset A terhadap itemset B sebesar probabilitas dari gabungan itemset A dan B dibagi probabilitas itemset A.

Persamaan 3 menampilkan perhitungan improvement. Dari persamaan tersebut dijelaskan bahwa besar nilai improvement diperoleh dari probabilititas gabungan penentu (conditional) danhasil (result) dibagi dengan hasil perkalian antara probabilititas penentu dengan probabilititas hasil.

Ketika improvement lebih besar dari 1 maka hasil aturan menjadi lebih baik dari pada kesempatan acak dan merupakan hasil yang berguna. Dari rumus ini dapat disimpulkan bahwa nilai improvement akan semakin besar bila nilai probabilitas penentu (conditional) dan probabilitas hasil (result) semakin kecil.

Kelebihan dari proses market basket analysis:

  • Hasilnya jelas dan mudah dimengerti sebab hanya merupakan suatu pola “jika-maka”. Misalnya: Jika produk A dan B dibeli secara bersamaan, maka kemungkinan produk C turut dibeli.
  • Market basket analysis sangat berguna untuk undirected data mining, yaitu pencarian awal pola.
  • Market basket analysis dapat memproses transaksi tanpa harus kehilangan informasi sebab dapat memproses banyak variabel tanpa perlu dirangkum (summarization) terlebih dahulu.
  • Proses komputasi yang lebih mudah daripada teknik yang kompleks seperti algoritma genetik & sistem syaraf, meskipun jumlah perhitungan akan meningkat pesat bersamaan dengan peningkatan jumlah transaksi dan jumlah items yang berbeda dalam analisis.

Kekurangan dari proses market basket analysis:

  • Tingkat pertumbuhan proses secara eksponensial sebagai akibat pertumbuhan ukuran data.
  • Memiliki keterbatasan untuk atribut data, misalnya hanya berdasarkan tipe produk.
  • Sulit untuk menentukan items yang akan diolah secara tepat, sebab frekuensi dari items tersebut harus diusahakan seimbang.

Contoh MBA Sederhana

Dimisalkan ada dua orang remaja sedang belanja di suatu toko alat tulis dan ingin membeli beberapa kebutuhan sekolah. Si A membeli Buku, dan Si B membeli Buku dan Pena.

Untuk contoh Market Basket Analysis (MBA) seperti ini maka dapat diselesaikan dengan menggunakan bantuan software R dengan beberapa packages pendukung. Pertama install packages yang digunakan yaitu packages Matrix, arules, grid, aruslesviz.

library(Matrix)
library(arules)
library(grid)
library(arulesViz)
  • Packages Matrix merupakan Bangun Matriks kelas yang diwarisi dari Matrix. Jika salah satu dari nrow atau ncol tidak diberikan, upaya dilakukan untuk menyimpulkannya dari panjang data dan parameter lainnya. Lebih jauh, Matrix() berupaya menjaga agar matrik logis tetap logis, mis., Mewarisi dari kelas Matrix, dan untuk menentukan matriks terstruktur khusus seperti yang simetris, segitiga atau diagonal. Perhatikan bahwa matriks simetris juga perlu nama dimetri simetris, mis., Dengan menentukan dimnames = daftar (NULL, NULL), lihat contohnya.
  • Packages arules digunakan untuk menyediakan infrastruktur untuk mewakili, memanipulasi, dan menganalisis data dan pola transaksi (itemet yang sering dan aturan asosiasi). Juga menyediakan implementasi C dari algoritma penambangan asosiasi, Apriori dan Eclat.
  • Packages grid digunakan untuk menambahkan nx oleh ny kotak persegi panjang ke plot yang ada.
  • Packages arulesviz digunakan untuk memperluas ‘arules’ paket dengan berbagai teknik visualisasi untuk aturan dan item asosiasi. Paket ini juga mencakup beberapa visualisasi interaktif untuk eksplorasi aturan.
#Input Data
Remaja <- list(c("Buku"), c("Buku","Pena"))
Remaja
Output Dari Input Data

Jika kita ingin menggunakan packages “arules” maka kita harus merubah data menjadi data transaksi terlebih dahulu.

#Mengubah Data Remaja Menjadi Data Transaksi
Remaja.tran <- as(Remaja, "transactions")
Remaja.tran
Output Dari Data Transaksi

Dari output diatas terlihat bahwa data sudah berbentuk data transaksi. Terlihat bahwa data Remaja merupakan data transactions in sparse format with dengan 2 baris dan 2 item kolom didalamnya. Untuk melihat lebih detail data Remaja maka kita bisa melihat jumlah dimensi dari data Remaja.

#Dimensi
dim(Remaja.tran)
Output Dimensi Data Remaja

Dimensi 2 2 yang dimaskud disini adalah data Remaja.tran atau data remaja yang telah di ubah menjadi bentuk data transaksi memiliki 2 baris dan 2 kolom. Selanjutnya kita juga bisa melihat tipe atau jenis dari data Remaja.tran tersebut.

#Class
class(Remaja.tran)
Output Dari Class Remaja.tran

Remaja.tran merupakan data transactions dari packages arules. Selanjutnya kita juga bisa melihat tabulasi silang atau crosstable dengan perintah crosstable. Tabulasi silang digunakan untuk melihat keakuratan antara aktual dan prediksi.

#crossTable
crossTable(Remaja.tran)
Output Dari Tabulasi Silang Remaja.tran

Tabulasi silang dari Remaja.tran adalah Buku dan Buku terbeli sebanyak 2, Buku dan Pena terbeli sebanyak 1, Pena dan Buku terbeli sebanyak 1, Pena dan Pena terbeli sebanyak 1. Perintah selanjutnya adalah algoritma apriori didalam metode MBA.

#Apriori
Remaja.ap <- apriori(Remaja.tran, parameter = list(supp=0.2, conf = 0.2))
Output Dari Apriori Remaja.tran

Algoritma apriori merupakan salah satu algoritma klasik didalam data mining. Algoritma apriori digunakan agar computer dapat mempelajari aturan asosiasi, mencari pola hubungan antar satu atau lebih item didalam suatu dataset. Misal dalam kasus ini Buku-Buku, Buku-Pena, dst. Penting tidaknya suatu aturan assosiatifdapat diketahui dengan dua parameter yaitu

  1. Support (Nilai penunjang) : Persentase kombinasi item tersebut dalam database

2. Confidence (Nilai kepastian) : Kuatnya hubungan antar item dalam aturan assosiatif

Point 1 : menerangkan confiden, minval, smax, arem, aval, originalSupport, maxtime, support, minlen, maxlen, dan target nya adalah rules atau aturan. Aturan Jika-Maka. Contoh jika Buku terbeli maka Buku juga terbeli, jika Buku terbeli maka Pena terbeli, dst.

Point 2 : menerangkan filter, tree, heap, memopt, load, sort, dan verbose dari algoritma

Point 3 : menggambarkan lama waktu dalam memproses dataset.

Selanjutya kita akan memanggil hasil dari algoritma apriori dengan mengurutkan jenis barangnya.

#Memanggil dan Mengurutkan Algoritma Apriori
inspect(sort(Remaja.ap))
Output Dari Mengurutkan Algoritma Apriori

lhs ( Left Hand Side), rhs (Right Hand Side), Support (Dukungan banyaknya data dalam transaksi), Confidence (Banyaknya Barang terbeli jika salah satu barang sudah terbeli), Lift Rasio (Keterikatan barang yang dibeli sebelumnya), Count (Banyaknya barang).

  • Jika buku terbeli maka buku terbeli memiliki support 1, confidence 1, lift 1, dan count 2
  • Jika pena terbeli maka pena terbeli memiliki support 0.5, confidence 0.5, lift 1, dan count 1
  • Jika pena terbeli maka buku terbeli memiliki support 0.5, confidence 1, lift 1, dan count 1
  • Jika buku terbeli maka pena terbeli memiliki support 0.5, confidence 0.5, lift 1, dan count 1

selain melihat dengan bentuk list dan perhitungan seperti diatas kita juga bisa melihat dalam bentuk grafik.

#Plot
plot(Remaja.ap, method = "graph")
Output Plot

Gambar diatas merupakan plot dari hubungan jika maka. Cara membaca plot diatas dimulai dari bola besar berwarna merah muda, jika seseorang membeli buku maka seseorang tersebut juga membeli pena, atau cara membaca plot dari bola kecil berwarna merah muda di kiri atas, jika seseorang membeli pena maka seseorang tersebut juga membeli buku. Jika dilihat dari nilai support (bola berwarna merah muda) buku sebesar 1 atau lebih besar dari nilai support pena sebesar 0.5. Nilai support dari buku ke pena atau pena ke buku juga bernilai 0.5.

--

--