Fira Yusi Rukmana
Customer Segmentation adalah kegiatan membagi suatu pelanggan menjadi kelompok kelompok pembeli yang berbeda dengan memiliki kebutuhan, karakteristik atau perilaku yang berbeda. Sehingga dari kondisi tersebut, pelanggan mungkin saja membutuhkan produk atau bauran pemasaran yang berbeda. Teknik mengelompokkan ini bisa kita gunakan metode clustering. Clustering adalah sebuah metode untuk membuat suatu kelompok dari suatu obyek pada suatu cara untuk mengelompokkan objek sesuai dengan keunikannya dalam kelompok-kelompok yang berbeda.
Algoritma yang digunakan yaitu K-Means dan DBSCAN. Sebenarnya ada banyak jenis algoritma machine learning, namun kali ini yang kita bahas hanya 2 algoritma ini. K-Means ialah algoritma yang melakukan pendekatan sederhana untuk mempartisi kumpulan data menjadi K cluster yang berbeda dan tidak tumpamg tindih. Sedangkan algoritma DBSCAN atau Density Based Spatial Clustering of Applications with Noise ialah suatu algoritma clustering yang memiliki gagasan bahwa cluster itu harus memiliki kepadatan yang tinggi. Jika pada area dengan ruang data kerapatannya besar, maka dianggap kosong dan semua titik disana akan dianggap outliers. Hal ini yang membuat DBSCAN cocok untuk melakukan clustering pada data yang memiliki banyak outliers.
Output pada algoritma ini ialah menghasilkan jumlah cluster dengan berbagai jenis karakter masing-masing klasternya.
Description
Sebelumnya kita sudah membahas pengertian clustering itu sendiri, yaitu mengelompokkan data berdasarkan kesamaan pola berdasarkan jarak.
Lalu bagaimana cara kita mengetahui suatu titik memiliki kelompok yang sama dengan titik kelompok lainnya? Yakni berdasarkan pola kesamaan, seperti contoh berikut:
Dari ilustrasi diatas, kita perlu sebuah teknik untuk mengukur jarak antar titik atau kepadatan sebuah titik dengan titik lainnya. Yakni dengan menggunakan algoritma K-Means dan DBSCAN.
Dataset
Dataset yang digunakan berdasarkan dari platform kaggle.com. jumlah data 200 baris dan 5 kolom. Kolom tersebut yaitu customerID, gender, age, annual income dan spending score. Dataset ini melihat pengunjung mall dan mencoba melihat apakah ada kaitannya pengguna yang rela memberi skor pengeluaran tertinggi itu karena pendapatan tinggi atau karena mereka perempuan sehingga mereka merasa banyak hal yang mereka butuhkan. Ini hanya sekedar hipotesis sementara.
Dataset bisa didownload pada link berikut:
Exploratory Data Analyst
Kita melihat jumlah data kita tidak begitu banyak dan tidak terdapat data kosong. Berikut summary statistic pada data kita sebagai berikut.
Pada kolom annual income dan kolom spending score persebaran datanya cukup jauh antara data minimum dan maksimum. Untuk memastikan tidak terdapat data outliers kita bisa mengeceknya menggunakan diagram boxplot.
Ternyata jumlah data outliers hanya pada kolom annual income, namun hanya sedikit bahkan dikolom lainnya tidak terdapat data outliers.
Pre-Processing
Karena jumlah data tidak terlalu banyak, dan dataset tidak terdapat data kosong. Jadi pada tahap ini kita hanya menghapus kolom costomerID dan melakukan encoding pada kolom gender menjadi male bernilai 1 dan female bernilai 0.
Modelling
K-Means
K-means clustering adalah pendekatan sederhana dan elegan untuk mempartisi kumpulan
data menjadi K cluster yang berbeda dan tidak tumpang tindih. Untuk melakukan clustering K-means, pertama-tama kita harus menentukan jumlah cluster K yang diinginkan; maka algoritma K-means akan menugaskan setiap pengamatan ke tepat satu dari K cluster. Model ini tidak berpengaruh pada dataset yang memiliki outliers.
Algoritme K-means mengelompokkan data dengan mencoba memisahkan sampel dalam n kelompok dengan varians yang sama, meminimalkan kriteria yang dikenal sebagai inersia atau jumlah kuadrat dalam cluster. Algoritma K-means bertujuan untuk memilih centroid yang meminimalkan inersia.
Tahap pada K-Means
Pengulangan berhenti ketika konvergen artinya tidak ada perubahan lagi pada centroid dan jumlah maksimum iterasi.
Hasil Modelling
Pertama kita bisa menentukan jumlah cluster, namun kita juga bisa menggunakan metode elbow untuk menemukan jumlah cluster yang tepat.
Dari sana kita bisa lihat sejauh ini jumlah cluster 5 cukup baik. Kemudian kita mencoba melakukan clustering pada data kita. Berikut hasil clustering.
Pada gambar sebelah kita, terlihat jelas perbedaan untuk masing-masing cluster. Ditemukan 5 jenis cluster sebagai berikut:
Pada gambar sebelah kanan belum mampu diidentifikasi dengan jelas pada parameter usia terhadap spending score.
DBSCAN (Density Based Spatial Clustering of Applications with Noise)
Berbeda dengan DBSCAN, algoritma ini sensitif dengan adanya data outliers. Kelebihan dari algoritma ini ialah bisa mengatasi masalah yang sulit. DBSCAN lebih kompleks dan membutuhkan banyak waktu yang berjalan dibandingkan K-Means. Kemudahan lain ialah kita tidak perlu memberkan suatu nilai K dari cluster yang diprediksi karena algoritma ini akan mencari sendiri.
Cara kerja Algortima DBSCAN
Tujuan dari algortima ini adalah untuk mengidentifikasi area dengan kepadatan tinggi yang dpat diukur dengan jumlah objek yang mendekati titik tertentu. 2 parameter pada algortima ini yaitu eplison (eps) yang bekerja untuk menentukan radius antara titik x terhadap sekelilingnya. Dan minimum points (minPts) yang menentukan jumlah minimum anggota yang ada disekitar radius eps.
Setiap titik x dalam kumpulan data dengan jumlah tetangga lebih dari atau sam dengan minPts, maka ini dijadikan sebagai core point. Jika jumlah tetangga kurang dari minPts, namun masih masuk lingkungan eps, maka itu disebut noise. Hal tersebut bisa diilustrasikan pada gambar berikut.
Hasil Modelling
Pada algortima ini kita tidak perlu menentukan nilai K atau jumlah cluster karena algoritma ini akan menentukan sendiri cluster terbaik. Ditemukan 5 cluster seperti pada gambar dibawah:
Pada ilustrasi diatas di gambar sebelah kiri, jumlah cluster ada 5, namun perbedaan masing-masing cluster tidak terlalu jelas bahkan ada beberapa yang tumpang tindih. Dan di lain sisi juga terdapat berbagai data outliers yang diasumsikan oleh algoritma DBSCAN. Dan untuk kolom age ternyata hasil cluster tidak begitu jelas sama dengan algoritma K-Means dalam mengelompokkan kolom age terhadap kolom spending score.
Jika kita bandingkan dengan algoritma K-Means, jika kita perhatikan secara visual, memang lebih jelas perbandingan antar cluster dibandingkan dengan algortima DBSCAN. Hal ini mungkin disebabkan data kita tidak memiliki terlalu banyak outliers sehingga data ini cocok dianalisis menggunakan algoritma K-Means.
Source Code
https://colab.research.google.com/drive/1dmsOPcVV8cH6AIGPI6nPpiiigveS60et?usp=sharing
Sumber Referensi