Dalam industri retail, salah satu yang sering dilakukan para analis bisnis adalah customer segmentation atau segmentasi pelanggan atau seting juga disebut segmentasi pasar yang pada dasarnya adalah memilah pelanggan ke dalam kelompok-kelompok yang memiliki kesamaan tersendiri. Kelompok bisa dibentuk berdasarkan demografi, pola pembelian, geografis dan sebagainya.
Salah satu Algoritma yang sering dipakai dalam Clustering adalah K-Means Clusering yang akan kita coba pelajari. Kita tidak tahu dari awal bagaimana dan berapa banyak cluster yang akan terbentuk melalui proses clustering. Clustering sifatnya bukan prediksi (memperkirakan masa depan), namun lebih bersifat knowledge discovery , yaitu melihat apa yang telah terjadi,.
Bagaimana caranya algoritma Machine Learning bisa mencari cluster? Pendekatannya adalah mnengelompokkan data sehingga elemen yang serupa atau saling terkait ditempatkan di cluster yang sama Ada banyak penerapan yang umumterkait clustering. Selain segmentasi pelanggan, kita juga bisa melakukan deteksi perilaku yang tidak umum, misalnya transaksi perbankan yang polanya ada di luar cluster yang ada.
Code Library yang digunakan : numpy pandas matplotlib.pyplot sklearn.cluster
Step Gunakan Pandas untuk membaca file csv Gunakan Matplotlib untuk menggambarkan grafik dengan X = Waktu dan Y = Jarak Gunakan Fungsi KMeans yang ada di sklearn.cluster dengan jumlah cluster (pada kasus ini n_clusters = 2) Masukan data dari csv ke Fungsi KMeans dengan fungsi fit. Kita bisa membaca center/centroid dari cluster dengan fungsi cluster_centers_
Kita bisa menampilkan data centroid dengan menambahkan scatter pada matplotlib. plt.scatter(centroid_X, centroid_Y, color=”black”, marker=’X’, s=200) kita dapat menghitung jumlah total seluruh jarak titik data ke centroid terdekat dengan rumus inertia_ Apa fungsi dari Inertia? Fungsinya adalah untuk membantu user mencari jumlah cluster terbaik / ter-efisien
jarak_total = [] K = range(1,10) for k in K: kMeans = km.KMeans(n_clusters=k) kMeans.fit(df) jarak_total.append(kMeans.inertia_) plt.plot(K, jarak_total) plt.show()
Semakin rendah hasil grafik artinya cluster semakin homogen. Dari gambar tersebut nampak bahwa kurva melandai saat k lebih besar dari 3, yang artinya dengan data tersebut jumlah cluster yang paling efisien adalah 3 cluster.