Praktikum Modul 6 Clustering Dan Segmentasi Pasar

Daftar Isi

Pada bagian praktikum ini, mahasiswa akan mempelajari bagaimana menerapkan teknik clustering untuk melakukan segmentasi pelanggan e-commerce berdasarkan perilaku transaksi. Praktikum difokuskan pada penggunaan dua algoritma populer yaitu K-Means Clustering dan Hierarchical Clustering. Selain itu, mahasiswa juga akan melakukan pengujian jumlah cluster yang berbeda, melakukan visualisasi hasil clustering, serta menganalisis struktur pengelompokan menggunakan dendrogram.

Tujuan dari praktikum ini adalah agar mahasiswa mampu memahami langkah-langkah analisis data secara menyeluruh, mulai dari persiapan dataset, standarisasi fitur, pelatihan model clustering, evaluasi menggunakan Silhouette Score, hingga interpretasi hasil pengelompokan.

Secara garis besar, praktikum ini akan mencakup:

• Persiapan dataset dummy pelanggan e-commerce
• Standarisasi data
• Penerapan algoritma K-Means
• Visualisasi clustering
• Menentukan jumlah cluster optimal menggunakan Metode Elbow
• Evaluasi cluster menggunakan Silhouette Score
• Implementasi Hierarchical Clustering
• Interpretasi dendrogram dan pembentukan cluster

Setiap langkah akan dijelaskan secara rinci agar mahasiswa memahami tidak hanya teknisnya, tetapi juga konsep statistik dan logika di balik proses clustering tersebut.

1. Persiapan Dataset Pelanggan E-Commerce

Pada tahap awal ini, kita akan membuat dataset dummy pelanggan e-commerce yang berisi informasi perilaku belanja pelanggan. Dataset dibuat secara acak menggunakan modul NumPy. Dataset tersebut terdiri dari tiga fitur utama yang sering digunakan dalam segmentasi pelanggan:

Nama Fitur Deskripsi
Frekuensi_Transaksi Jumlah transaksi yang dilakukan pelanggan selama periode tertentu.
Rata2_Nilai_Transaksi Nilai rata-rata belanja pelanggan per transaksi (dalam ribuan rupiah).
Lama_Berlangganan_bulan Berapa lama pelanggan telah terdaftar atau berlangganan (dalam bulan).

Ketiga fitur ini mewakili pola pembelian pelanggan dari sisi aktivitas, nilai ekonomi, dan loyalitas berdasarkan durasi berlangganan. Kombinasi fitur ini sangat ideal untuk segmentasi pelanggan dalam bisnis digital.

Untuk membuat dataset, jalankan script berikut:

import pandas as pd import numpy as np np.random.seed(42) data = { "Frekuensi_Transaksi": np.random.randint(1, 30, 50), "Rata2_Nilai_Transaksi": np.round(np.random.uniform(50, 500, 50), 2), "Lama_Berlangganan_bulan": np.random.randint(1, 36, 50) } df = pd.DataFrame(data)

Dataset kemudian dapat disimpan ke dalam file CSV dan ditampilkan menggunakan perintah display(df.head()). Hasil ini menjadi dasar untuk proses clustering di langkah berikutnya.

2. Standarisasi Fitur dan K-Means Clustering

Langkah penting dalam pengolahan data sebelum menerapkan algoritma clustering adalah melakukan standarisasi. Hal ini karena setiap fitur memiliki skala yang berbeda, yang dapat mengakibatkan bias ketika menghitung jarak antar data.

Sebagai contoh:

  • Frekuensi transaksi: nilai 1 – 30
  • Nilai transaksi: 50 – 500
  • Lama berlangganan: 1 – 36

Jika tidak distandarisasi, fitur dengan skala besar seperti nilai transaksi akan mendominasi proses perhitungan jarak Euclidean pada K-Means. Oleh sebab itu, semua fitur distandarisasi agar memiliki rata-rata 0 dan standar deviasi 1.

Standarisasi dilakukan menggunakan kode berikut:

from sklearn.preprocessing import StandardScaler scaler = StandardScaler() X_scaled = scaler.fit_transform(df)

Penerapan K-Means (k = 3)

Algoritma K-Means bekerja dengan memilih sejumlah cluster tertentu (misalnya 3 cluster), lalu memulai dengan memilih centroid secara acak, kemudian mengelompokkan data berdasarkan kedekatan dengan centroid tersebut. Proses ini terus diulang sampai posisi centroid stabil.

Kode untuk algoritma K-Means:

from sklearn.cluster import KMeans kmeans = KMeans(n_clusters=3, random_state=42) labels_k3 = kmeans.fit_predict(X_scaled) df["Cluster_K3"] = labels_k3

Untuk melihat hasil clustering, gunakan scatter plot berikut:

plt.figure() plt.scatter( df["Frekuensi_Transaksi"], df["Rata2_Nilai_Transaksi"], c=df["Cluster_K3"], s=60 ) plt.title("Hasil Clustering K-Means (k=3)") plt.xlabel("Frekuensi Transaksi") plt.ylabel("Rata-rata Nilai Transaksi") plt.grid(True) plt.show()

Interpretasi Visualisasi

Scatter plot memperlihatkan distribusi pelanggan berdasarkan dua fitur utama. Warna yang berbeda mewakili cluster hasil K-Means. Biasanya cluster akan menunjukkan kelompok seperti:

• Pelanggan dengan transaksi tinggi dan nilai belanja besar
• Pelanggan frekuensi rendah tetapi sekali belanja besar
• Pelanggan dengan transaksi kecil dan sporadis

Mahasiswa diminta melakukan refleksi:

1. Apakah cluster terlihat jelas terpisah?
2. Bagaimana jika k diubah menjadi 2, 4, atau 5?
3. Apakah interpretasinya berubah secara signifikan?

3. Menentukan Jumlah Cluster Optimal

Untuk mengetahui jumlah cluster yang paling tepat, kita menggunakan dua metode:

a. Metode Elbow

Metode Elbow menganalisis nilai WCSS (Within-Cluster Sum of Squares), yaitu total jarak data dalam sebuah cluster terhadap centroid-nya. Semakin kecil WCSS, semakin bagus kualitas cluster.

Kode untuk memplot Elbow:

wcss = [] for k in range(1, 11): km = KMeans(n_clusters=k, random_state=42) km.fit(X_scaled) wcss.append(km.inertia_) plt.figure() plt.plot(range(1, 11), wcss, marker='o') plt.title("Metode Elbow - Menentukan Jumlah Cluster Optimal") plt.xlabel("Jumlah Cluster (k)") plt.ylabel("WCSS") plt.grid(True) plt.show()

Interpretasi Metode Elbow

Hasil grafik biasanya menunjukkan penurunan WCSS yang tajam pada awalnya, namun kemudian melandai setelah jumlah cluster tertentu. Titik belokan inilah yang disebut sebagai "elbow" yang menunjukkan jumlah cluster terbaik.

Dari dataset ini, biasanya terlihat bahwa:

• Penurunan tajam terjadi dari k=1 ke k=2.
• Setelah k=3, grafik mulai landai.
• Pada k=5, penurunan semakin kecil.

Dengan demikian, baik k=3 maupun k=5 dapat dianggap sebagai kandidat cluster optimum.

b. Evaluasi Menggunakan Silhouette Score

Silhouette Score memberikan penilaian kualitas cluster berdasarkan dua faktor utama:

• Seberapa dekat data dalam satu cluster
• Seberapa jauh jarak antar cluster

Nilai berkisar antara -1 sampai 1.

Skor Interpretasi
0.8 - 1.0 Cluster sangat baik, sangat terpisah jelas
0.5 - 0.7 Cluster baik
0.2 - 0.4 Cukup, perlu evaluasi
< 0.0 Penempatan cluster buruk

Kode Silhouette Score:

from sklearn.metrics import silhouette_score sil_scores = [] for k in range(2, 11): km = KMeans(n_clusters=k, random_state=42) labels = km.fit_predict(X_scaled) sil = silhouette_score(X_scaled, labels) sil_scores.append((k, sil)) print("k | Silhouette Score") for k, s in sil_scores: print(f"{k:<2 p="" s:.3f="">Interpretasi Silhouette Score

Berdasarkan hasil uji, skor tertinggi biasanya muncul pada k=5, menunjukkan bahwa cluster tersebut paling terpisah dengan baik dan paling kompak.

Kesimpulan berdasarkan kombinasi Elbow + Silhouette Score:

• Elbow menunjukkan belokan pada k=3 dan k=5
• Silhouette Score tertinggi pada k=5

Maka, jumlah cluster optimal untuk dataset pelanggan e-commerce ini adalah k=5.

4. Implementasi Hierarchical Clustering & Dendrogram

Hierarchical Clustering adalah metode pengelompokan yang membentuk struktur bertingkat seperti pohon keluarga. Algoritma ini memulai dengan menganggap setiap data sebagai cluster terpisah, lalu secara bertahap menggabung cluster berdasarkan kemiripan.

Cluster digabung menggunakan beberapa metode seperti ward, complete, average. Pada praktikum ini, digunakan metode ward karena cocok untuk data numerik.

Kode hierarchical clustering:

from scipy.cluster.hierarchy import linkage, dendrogram, fcluster Z = linkage(X_scaled, method='ward')

Kemudian visualisasikan dalam bentuk dendrogram:

plt.figure(figsize=(12, 6)) dendrogram(Z, truncate_mode='lastp', p=20, leaf_rotation=45, leaf_font_size=18, show_contracted=True) plt.title("Dendrogram Hierarchical Clustering") plt.xlabel("Data Pelanggan") plt.ylabel("Distance") plt.show()

Membentuk cluster menggunakan dendrogram:

labels_hc = fcluster(Z, t=3, criterion='maxclust') df["Cluster_HC3"] = labels_hc

Visualisasi hasil:

plt.figure() for cl in sorted(df["Cluster_HC3"].unique()): sub = df[df["Cluster_HC3"] == cl] plt.scatter( sub["Frekuensi_Transaksi"], sub["Rata2_Nilai_Transaksi"], s=60, label=f"Cluster {cl}" ) plt.title("Hasil Hierarchical Clustering (3 Cluster)") plt.xlabel("Frekuensi Transaksi") plt.ylabel("Rata-rata Nilai Transaksi") plt.legend() plt.grid(True) plt.show()

Interpretasi Dendrogram

Dendrogram menggambarkan bagaimana cluster terbentuk dari bawah ke atas. Sumbu Y menunjukkan jarak antar cluster. Semakin tinggi cabangnya, semakin tidak mirip cluster tersebut.

Berdasarkan dendrogram:

• Pemotongan pada jarak sekitar 6–7 menghasilkan 3 cluster utama
• Cluster 2 dan 3 terlihat jelas terpisah
• Cluster 1 memiliki variasi lebih besar

Interpretasi cluster:

Cluster Karakteristik Potensi Strategi
Cluster 1 (Biru) Pelanggan tidak rutin, frekuensi rendah, transaksi tidak stabil Promosi umum, campaign awareness
Cluster 2 (Oranye) Pelanggan loyal, transaksi konsisten, nilai belanja tinggi Program loyalitas, cashback premium
Cluster 3 (Hijau) Pelanggan rutin tetapi nilai belanja kecil Upselling, bundling produk

➡️ Klik di sini untuk membuka file Google Drive (kode praktikum lengkap)

Disusun oleh: [Muhammad Rifaldi] - [20232010011]
Program Studi: [Bisnis Digital], Universitas Kuningan

Referensi

Sumber utama:

Modul Praktikum Machine Learning & AI, disusun oleh Adi Muhamad Muhsidi (2025).
Program Studi Bisnis Digital, Fakultas Ekonomi dan Bisnis, Universitas Kuningan.

Link flipbook: https://heyzine.com/flip-book/cbbbf75431.html

Atau dapat diakses langsung dari blog pribadi penulis di:
https://adi-muhamad.my.id

Posting Komentar