Repeat Order Customer Prediction

Defrian Dwi Kurniawan

Background

Pada umumnya manusia mampu memprediksi atau memperkirakan suatu kejadian yang belum terjadi hanya dengan seringnya melihat pola dari suatu kejadian secara berulang, contohnya adalah prediksi terhadap pertandingan sepak bola antara tim A melawan tim B, dilihat dari sejarah pertandingan dari kedua tim tersebut dari 2 tahun terakhir, tim A lebih sering menang terhadap tim B. Dengan kenyataan tersebut maka kita bisa memprediksi petandingan berikutnya akan dimenangkan oleh tim A. Kemampuan ini jika diterapkan kedalam suatu sistem yang berupa perangkat lunak maupun perangkat keras, akan sangat berguna dalam banyak hal.

Begitu juga dengan website e-commerce, pengguna yang melakukan transaksi atau hanya sekedar melihat-lihat saja di website memiliki suatu behaviour yang bisa direcord dan dianalisa datanya apakah perilaku tersebut bisa dijadikan sebuah insight baru untuk merumuskan strategi kedepannya serta dapat mengoptimalkan proses Customer relationship management (CRM) pada perusahaan. Terbukti proses CRM yang tepat sasaran dan optimal berdasarkan jurnal mengenai CRM di Grapari Telkomsel Malang dapat meningkatkan kepuasan pelanggan sebesar 66.1% dan meningkatkan loyalitas pelanggan sebesar 36.1% yang mana dengan menggunakan machine learning yang bisa memprediksi pengguna mana yang lebih tepat dan berkemungkinan besar bertransaksi selanjutnya bisa meningkatkan persentase tersebut, tentu saja variabel behavior bisa menjadi salah satu hal yang bisa menjadi data yang dianalisis agar bisa mendapatkan model machine learning yang tepat dalam memprediksi pelanggan yang akan melakukan repeat order. Hal itu bisa berpengaruh ke sejumlah aspek krusial, seperti terciptanya loyalitas, meningkatkan reputasi perusahaan, berkurangnya elastisitas harga, berkurangnya biaya transaksi masa depan, dan meningkatkan efisiensi dan produktivitas karyawan.

Pada website merch google, data behaviour tersebut dicatat dengan harapan data tersebut dapat digunakan untuk menunjang keputusan kedepannya. Pada project ini data akan digunakan untuk melakukan prediksi apakah pengguna tersebut akan melakukan pembelian di kunjungan selanjutnya dengan memperhatikan behaviour pengguna selama menggunakan website tersebut, mulai dari durasi pengguna berselancar di laman tersebut, darimana user tersebut mendapatkan informasi mengenai laman, perangkat apa yang digunakan dan lain sebagainya.

Project semacam ini sangatlah bermanfaat untuk dunia bisnis digital yang mana dapat membantu proses pemasaran menjadi lebih tepat sasaran, dan meningkatkan peluang penjualan kepada orang yang tepat dengan menggiring pengguna sampai ketahap pembelian produk. Hal ini dapat menambah pelanggan baru dan meningkatkan revenue bagi perusahaan.

Project Idea

Prediksi pengunjung website yang akan melakukan pembelian di kunjungan berikutnya dengan menganalisa behaviour pengunjung dapat membantu perusahaan dalam menentukan strategi agar fokus rekomendasi dapat tepat sasaran sehingga meningkatkan peluang penjualan kepada orang yang tepat. Oleh karena itu, pada project ini akan dikembangkan sebuah model klasifikasi untuk mengidentifikasi apakah pengunjung akan melakukan pembelian di kunjungan berikutnya.

Problem Scope

Pada project ini akan digunakan sebuah data transaksi dari merch-shop Google yang diambil dari google BigQuery. Dataset ini mengandung informasi sebagai berikut:
- will_buy_on_return_visit : apakah pembeli akan melakukan transaksi di kunjungan berikutnya
- latest_ecommerce_progress : Progress pembeli dalam menggunakan website, semakin dekat dengan pembelian, tingkatannya semakin tinggi.
- bounces : berapa kali pengguna yg bersangkutan menutup website tanpa membeli
- time_on_site : waktu dalam detik user stay di website kita
- pageviews : berapa banyak pageview dalam satu sesi
- source : Pengunjung berasal dari sesi mana
- medium : pengunjung menemukan website dari referral, iklan, atau mencarinya sendiri
- channelGrouping : pengunjung menemukan website dari referral, iklan, atau mencarinya sendiri
- deviceCategory : Perangkat yang digunakan oleh pengunjung untuk mengunjungi laman
- country : Negara pengunjung laman berasal

Selanjutnya, kebutuhan pembuatan model machine learning untuk mengidentifikasi apakah pengunjung website akan melakukan pembelian di kunjungan berikutnya atau tidak akan menggunakan variabel will_buy_on_return_visit untuk target variabelnya, dan variabel lain sebagai prediktor.

Sedangkan modelnya akan dibuat model klasifikasi dengan memanfaatkan algoritma Naive Bayes dan Random Forest.

Output

Output dari project ini berupa dashboard analysis yang menampilkan prediksi apakah pengunjung website akan melakukan pembelian di kunjungan berikutnya atau tidak.

Business Impact : Selain identifikasi pelanggan potensial agar bisa diberikan perlakuan khusus kepada pengguna yang bersangkutan, proses klasifikasi ini juga bisa menjadi patokan marketing dalam menargetkan iklan kepada pengguna yang sekiranya lebih cenderung akan tertarik dan juga bisa membantu developer web untuk mencari behaviour customer yang bagaimana yang dapat membuat pengunjung tersebut cenderung sampai ke tahap pembelian. Selain itu, project ini juga bisa dikembangkan lebih lanjut untuk rekomendasi barang yang akan dipasarkan dan negara yang potensial sebagai marketnya.

Exploratory Data Analysis

library(tidyverse)
library(e1071)
library(caret)
library(partykit)
library(rsample)
library(randomForest)
library(ggplot2)
library(naniar)
# supaya semua plot memiliki theme_minimal()
theme_set(theme_minimal())
customer <- read.csv("ecommerce-train.csv", stringsAsFactors = T)
head(customer)
##   will_buy_on_return_visit latest_ecommerce_progress bounces time_on_site
## 1                        0                         0       1            0
## 2                        0                         0       1            0
## 3                        0                         0       1            0
## 4                        0                         0       1            0
## 5                        0                         0       1            0
## 6                        0                         0       1            0
##   pageviews source  medium channelGrouping deviceCategory       country
## 1         1 google organic  Organic Search        desktop         Italy
## 2         1 google organic  Organic Search        desktop     Australia
## 3         1 google organic  Organic Search        desktop         India
## 4         1 google organic  Organic Search        desktop       Armenia
## 5         1 google organic  Organic Search        desktop        Brazil
## 6         1 google organic  Organic Search         mobile United States

Deskripsi Data :
- will_buy_on_return_visit : apakah pembeli akan melakukan transaksi di kunjungan berikutnya
- latest_ecommerce_progress : Progress pembeli dalam menggunakan website, semakin dekat dengan pembelian, tingkatannya semakin tinggi.
- bounces : berapa kali pengguna yg bersangkutan menutup website tanpa membeli
- time_on_site : waktu dalam detik user stay di website kita
- pageviews : berapa banyak pageview dalam satu sesi
- source : Pengunjung berasal dari sesi mana
- medium : pengunjung menemukan website dari referral, iklan, atau mencarinya sendiri
- channelGrouping : pengunjung menemukan website dari referral, iklan, atau mencarinya sendiri
- deviceCategory : Perangkat yang digunakan oleh pengunjung untuk mengunjungi laman
- country : Negara pengunjung laman berasal

glimpse(customer)
## Rows: 573,001
## Columns: 10
## $ will_buy_on_return_visit  <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ latest_ecommerce_progress <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ bounces                   <int> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,~
## $ time_on_site              <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ pageviews                 <int> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,~
## $ source                    <fct> google, google, google, google, google, goog~
## $ medium                    <fct> organic, organic, organic, organic, organic,~
## $ channelGrouping           <fct> Organic Search, Organic Search, Organic Sear~
## $ deviceCategory            <fct> desktop, desktop, desktop, desktop, desktop,~
## $ country                   <fct> Italy, Australia, India, Armenia, Brazil, Un~

Terdapat 573.001 baris data dan 10 kolom pada data customer.

Apakah ada missing value dari data tersebut

colSums(is.na(customer))
##  will_buy_on_return_visit latest_ecommerce_progress                   bounces 
##                         0                         0                         0 
##              time_on_site                 pageviews                    source 
##                         0                        14                         0 
##                    medium           channelGrouping            deviceCategory 
##                         0                         0                         0 
##                   country 
##                         0

Terdapat beberapa missing value pada kolom pageviews, dan pada bagian observasi menggunakan glimpse, terdapat data “(none)” dan “(not set)” pada kolom medium lalu “(not set)” pada kolom source yang selanjutnya akan kita anggap sebagai missing value

Pre Processing Data

Bersihkan missing value

customer <- customer %>% 
  replace_with_na(replace = list(medium = c("(none)","(not set)"),
                                 source = "(not set)")) %>% 
  na.omit()
glimpse(customer)
## Rows: 486,855
## Columns: 10
## $ will_buy_on_return_visit  <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ latest_ecommerce_progress <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ bounces                   <int> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,~
## $ time_on_site              <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ pageviews                 <int> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,~
## $ source                    <fct> google, google, google, google, google, goog~
## $ medium                    <fct> organic, organic, organic, organic, organic,~
## $ channelGrouping           <fct> Organic Search, Organic Search, Organic Sear~
## $ deviceCategory            <fct> desktop, desktop, desktop, desktop, desktop,~
## $ country                   <fct> Italy, Australia, India, Armenia, Brazil, Un~

Setelah dibersihkan missing value, tersisa 486.855 baris data pada data customer.

Visualisasi EDA

Cek proporsi data

customer %>% 
  ggplot(aes(x = will_buy_on_return_visit)) +
  geom_bar()

Dari bar plot di atas, kita dapat melihat bahwa proporsi pengunjung yang melakukan repeat order lebih kecil daripada yang tidak melakukan repeat order. Insight ini nantinya bisa kita gunakan sebagai pertimbangan untuk menambah/mengurangi data jika hasil pemodelan jelek karena faktor kelas data yang tidak seimbang.

Selain itu kita juga bisa lihat darimanakah pengunjung yang melakukan repeat order mendapatkan info mengenai laman

customer %>% 
  filter(will_buy_on_return_visit==1) %>%
  ggplot(aes(medium)) +
  geom_bar()

Dari plot diatas, didapat bahwa rata-rata pengunjung yang melakukan repeat order mendapatkan info mengenai website google shop dari referral atau di rekomendasikan oleh orang lain.

Lalu kita coba visualisasikan pengunjung yang melakukan repeat order menggunakan perangkat apa, apakah ada pengaruhnya device dengan perilaku repeat order.

customer %>% 
  filter(will_buy_on_return_visit==1) %>%
  ggplot(aes(deviceCategory)) +
  geom_bar()

Dari plot bar diatas, pengguna yang melakukan repeat order banyak berasal dari pengguna desktop, berbeda jauh dari perangkat lain.

Kesimpulan


- Data yang akan digunakan adalah data behavior pengguna di website merch shop google yang didapat dari Google BigQuery
- Hasil yang diharapkan adalah sebuah dashboard prediksi pengguna yang akan melakukan pembelian di kunjungan selanjutnya
- Dari data yang memiliki 573.001 baris data dan 10 kolom pada data customer, setelah dibersihkan missing valuenya, didapat 486.855 baris, dan dipilih varibel will_buy_on_return_visit sebagai target variable.
- Proporsi pengunjung yang melakukan repeat order lebih kecil daripada yang tidak melakukan repeat order.
- Rata-rata pengunjung yang melakukan repeat order mendapatkan info mengenai website google shop dari referral atau di rekomendasikan oleh orang lain.
- Pengguna yang melakukan repeat order banyak berasal dari pengguna desktop, berbeda jauh dari perangkat lain.