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())
<- read.csv("ecommerce-train.csv", stringsAsFactors = T)
customer 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.