Skip to content

codebyrixi/Predict-Customer-Personality

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 

Repository files navigation

Predict Customer Personality to Boost Marketing Campaign by Using Machine Learning

Project ini merupakan project yang bertujuan untuk melakukan pediksi perilaku pelanggan guna meningkatkan campaign marketing di suatu perusahaan. Project ini dibuat menggunakan bahasa pemrograman Python

Daftar Isi

Bagian 0: Pendahuluan

Background
Sebuah perusahaan dapat berkembang dengan pesat saat mengetahui customer personality nya, sehingga dapat memberikan layanan serta manfaat lebih baik kepada pelanggan yang berpotensi menjadi pelanggan yang loyal. Dengan mengolah data historis marketing campaign, dapat menaikkan performa dan menyasar pelanggan yang tepat agar dapat bertransaksi di platform perusahaan. Dari insight data tersebut, difokuskan membuat sebuah model prediksi kluster sehingga memudahkan perusahaan dalam membuat keputusan.

Goal
Tujuan dari analisis profil dan perilaku pelanggan dengan pendekatan clustering adalah untuk memahami pelanggan dengan lebih baik, menyediakan layanan yang lebih personal, meningkatkan performa penjualan, dan membangun hubungan yang kuat dengan pelanggan.

Objective

  • Membuat model mechine learning yang dapat mengelompokkan pelanggan ke segmen-segmen berbeda berdasar karakteristiknya.
  • Mengekstraksi insight mendalam tentang profil dan perilaku pelanggan.
  • Menentukan strategi bisnis yang efektif dari hasil clustering.

Business Matric: Conversion Rate

Deskripsi Fitur

Feature Descriptions
ID ID unik dari setiap pelanggan
Year_Birth Tahun kelahiran pelanggan
Complain Bernilai 1 jika pelanggan komplain dalam 2 tahun terakhir
Dt_Customer Tanggal pendaftaran pelanggan dengan perusahaan (gabung member)
Education Tingkat pendidikan pelanggan
Marital_Status Status pernikahan pelanggan
Kidhome Jumlah anak kecil dalam rumah tangga pelanggan
Teenhome Jumlah remaja dalam rumah tangga pelanggan
Income Pendapatan rumah tangga pelanggan per tahun
MntFishProducts Jumlah yang dibelanjakan untuk produk ikan dalam 2 tahun terakhir
MntMeatProducts Jumlah yang dibelanjakan untuk produk daging dalam 2 tahun terakhir
MntFruits Jumlah yang dibelanjakan untuk produk buah-buahan dalam 2 tahun terakhir
MntSweetProducts Jumlah yang dibelanjakan untuk produk manis dalam 2 tahun terakhir
MntWines Jumlah yang dibelanjakan untuk produk anggur dalam 2 tahun terakhir
MntGoldProds Jumlah yang dibelanjakan untuk produk emas dalam 2 tahun terakhir
NumDealsPurchases Jumlah pembelian yang dilakukan dengan diskon
NumCatalogPurchases Jumlah pembelian dengan katalog (membeli barang yang akan dikirim melalui pos)
NumStorePurchases Jumlah pembelian langsung di toko
NumWebPurchases Jumlah pembelian melalui situs web perusahaan
NumWebVisitsMonth Jumlah kunjungan ke situs web perusahaan dalam sebulan terakhir
Recency Jumlah hari sejak pembelian terakhir
Response Bernilai 1 jika pelanggan menerima penawaran di kampanye terakhir, 0 jika tidak

Bagian 1: Analisis Tingkat Konversi Berdasarkan Pendapatan, Pengeluaran dan Usia

Gambar diatas merupakan plot korelasi conversion rate dengan pendapatan, total pengeluaran, serta usia. Hasil penelitian menunjukkan korelasi positif yang signifikan antara pendapatan dan total pengeluaran terhadap tingkat konversi. Ini menunjukkan bahwa semakin besar pendapatan dan pengeluaran total seseorang, semakin besar kemungkinan mereka akan melakukan pembelian.

Dapat dilihat pada plot regresi dengan pendapatan dan total pengeluaran berikut, bahwa adanya korelasi positif yang kuat antara pendapatan dan pengeluaran total, yang menunjukkan hubungan yang signifikan antara tingkat pendapatan dan pola pengeluaran; dengan demikian, semakin tinggi pendapatan seseorang, semakin besar kemungkinan mereka mengeluarkan lebih banyak uang. Dalam dunia bisnis, pemahaman seperti ini dapat membantu bisnis memahami segmen pelanggan yang memiliki potensi pembelian yang lebih besar dan membuat strategi pemasaran yang tepat untuk meningkatkan keterlibatan dan kepuasan pelanggan.

Bagian 2: Data Cleaning, Preprocessing

Pada proses ini dilakukan pemrosesan data sekaligus pembersihan data, yang terdiri dari pemeriksaan null / missing value pada data, duplikasi data, tipe data dan konsistensi nilai, serta outlier atau data yang tidak biasa. Hasilnya tertera pada tabel dibawah.

Asesmen Data Temuan Penyelesaian
Null Values Tidak terdapat null values -
Duplicate Values Tidak terdapat duplicate values -
Konsistensi Nilai Tipe data dt_customer sebaiknya datetime Mengubah tipe data nya menjadi datetime
Nilai Anomali Keseluruhan fitur memiliki outlier. Terlihat juga fitur income dan year_birth memiliki nilai ekstrim Handling outlier menggunakan IQR.

Bagian 3: Feature Engineering

Pada tahapan ini, dilakukan pembuatan fitur baru berdasar fitur yang telah ada, bertujuan untuk membuat analisis menjadi lebih bermakna. Fitur baru ini dapat memberi informasi tambahan dengan menggabungkan beberapa fitur yang saling berhubungan untuk membentuk fitur yang lebih baik. Selengkapnya dapat dilihat pada tabel dibawah

Nama fitur baru Sumber
membership_duration 2023 - dt_customer
age_categories age
total_children kidhome + teenhome
total_transaction numdealspurchases + numwebpurchases + numcatalogpurchases + numstorepurchases
total_spending mntcoke + mntfruits + mntmeatproducts + mntfishproducts + mntsweet
total_accepted_campaign acceptedcmp1 + acceptedcmp2 + acceptedcmp3 + acceptedcmp4 + acceptedcmp5
cvr total_transaction x numwebvisitsmonth/100

Bagian 4: Data Modelling

Setelah mempersiapkan data, selanjutnya dilakukan pre-processing pada data, yaitu:

  1. Menghapus fitur yang tidak diperlukan untuk model agar data lebih terfokus.
  2. Melakukan encoding pada fitur kategorikal akan agar dapat diolah oleh machine learning.
  3. Melakukan standardisasi fitur untuk memastikan skala data seragam dan menghindari bias dalam model.

Setelah dilakukannya pre-processing pada data, tahap berikutnya adalah penggunaan metode Principal Component Analysis (PCA) yang berfungsi mengurangi dimensi data dengan mempertahankan informasi penting. Mereka dapat mengatasi masalah multikolinearitas antar fitur dan mengoptimalkan kinerja model dengan mengurangi dimensi data. Menentukan jumlah cluster terbaik juga merupakan langkah penting dalam proses ini. Analisis ini memilih jumlah cluster yang ideal dengan menggunakan Distortion Score dan Elbow Method. Jumlah cluster terbaik yang ditemukan berdasarkan hasil analisis adalah 4.

Dapat dilihat pada plot distortion score diatas, bahwa jumlah cluster terbaik yang ditemukan berdasarkan hasil analisis adalah 4 dengan skor 4864.63. Algoritma K-means digunakan untuk mengelompokkan data setelah menentukan jumlah cluster yang ideal sebelumnya. Algoritma ini mengelompokkan data berdasarkan kesamaan fitur, memungkinkan untuk mengidentifikasi pola atau kelompok yang ada dalam data dan memahami karakteristik setiap cluster.

Gambar diatas merupakan hasil clustering dengan menggunakan K-Means, dimana plot tersebut menunjukkan bahwa cluster-cluster terbentuk dengan baik dan mengelompokkan data ke dalam beberapa kelompok berbeda. Ini menunjukkan bahwa algoritma clustering berhasil membedakan dan menggolongkan data berdasarkan ciri-cirinya.
Selanjutnya dilakukan tahap evaluasi hasil model. Dengan menggunakan metode Silhouette Score, diberikan rekomendasi bahwa jumlah cluster terbaik adalah 4.

Hal tersebut didasarkan pada fakta bahwa nilai Silhouette Score tertinggi pada jumlah cluster tersebut, yaitu 0,535. Nilai ini merupakan metrik yang menunjukkan seberapa baik objek dalam satu cluster berada dalam kumpulan data mereka sendiri dibandingkan dengan objek dalam cluster lain. Semakin tinggi nilai Silhouette Score, semakin baik cluster-cluster tersebut terpisah.

Bagian 5: Analisis Kepribadian Pelanggan Untuk Penargetan Ulang Pemasaran

Menurut plot korelasi antara pendapatan dan total pengeluaran, terlihat bahwa terbentuk kelompok yang dapat dibedakan. Dalam kasus ini, cluster 0 dan 3 cenderung berada dalam satu kelompok, yang menunjukkan adanya persamaan dan perbedaan karakteristik di antara mereka. Ketika dua cluster berada dalam satu kelompok, itu menunjukkan bahwa pola pendapatan dan pengeluaran anggota cluster tersebut serupa atau terkait. Tingkat pendapatan dan pengeluaran kedua cluster mungkin sebanding, atau mereka mungkin memiliki tren yang sama.

Berdasarkan plot persentase ppulasi cluster diatas, ditemukan bahwa sekitar 50% dari populasi termasuk dalam kelompok Low Customer. Meskipun kelompok ini memiliki angka transaksi dan pengeluaran yang rendah, namun karena populasi mereka yang besar, perusahaan dapat fokus untuk menarik perhatian mereka.
Sedangkan populasi High Customer A dan B cenderung rendah, namun memiliki potensi transaksi, spending, konversi, dan income yang tinggi. Perusahaan dapat mempertimbangkan strategi pemasaran yang lebih personal dan eksklusif untuk menarik minat mereka.

Berikut ini ditampilkan plot karakteristik mayoritas/rata-rata total transaksi, pengeluaran, pendapatan, recency, dan conversion rate berdasarkan clusternya. Terlihat pada grafik tersebut, bahwa dapat diketahui karakteristik dari tiap cluster berdasar pola transaksi pelanggan dan dapat dikelompokkan berdasarkan kategori berikut.

Dari karakteriktik tersebut, dapat setiap cluster dapat dikelompok berdasarkan kategori, yaitu sebagai berikut.

About

Project ini merupakan project yang bertujuan untuk melakukan pediksi perilaku pelanggan guna meningkatkan campaign marketing di suatu perusahaan. Project ini dibuat menggunakan bahasa pemrograman Python

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors