Tutorial Implementasi K-Means, KNN & Decision Tree (Klasifikasi Pelanggan UMKM Langkah demi Langkah)
Tutorial ini adalah lanjutan dari:
1. Tujuan Tutorial
Di tutorial ini, kita akan membangun sistem klasifikasi pelanggan UMKM yang:
- Mengelompokkan pelanggan dengan K-Means
- Memprediksi pelanggan baru dengan KNN
- Menghasilkan aturan bisnis dengan Decision Tree
2. Persiapan Dataset & Library
Gunakan dataset transaksi berikut:
Download Dataset Transaksi UMKM (1200+ baris)
Import Library
import pandas as pd
import numpy as np
from datetime import datetime
from sklearn.preprocessing import StandardScaler
from sklearn.cluster import KMeans
from sklearn.neighbors import KNeighborsClassifier
from sklearn.tree import DecisionTreeClassifier
Library di atas digunakan untuk:
pandas: manipulasi dataKMeans: segmentasi pelangganKNN: klasifikasi pelanggan baruDecision Tree: interpretasi bisnis
3. Load & Praproses Data
df = pd.read_csv("dataset-transaksi-umkm-1200.csv")
df["transaction_date"] = pd.to_datetime(df["transaction_date"])
Langkah ini memastikan:
- Data terbaca dengan benar
- Tanggal transaksi bisa dihitung untuk RFM
4. Menghitung RFM
snapshot_date = df["transaction_date"].max() + pd.Timedelta(days=1)
rfm = df.groupby("customer_id").agg({
"transaction_date": lambda x: (snapshot_date - x.max()).days,
"customer_id": "count",
"order_value": "sum"
})
rfm.columns = ["recency", "frequency", "monetary"]
Penjelasan:
- Recency: hari sejak transaksi terakhir
- Frequency: jumlah transaksi
- Monetary: total nilai belanja
RFM mengubah data transaksi mentah menjadi sinyal perilaku pelanggan yang mudah dianalisis.
5. Normalisasi Data
scaler = StandardScaler()
rfm_scaled = scaler.fit_transform(rfm)
Normalisasi diperlukan karena:
- Nilai monetary jauh lebih besar dari frequency
- K-Means sensitif terhadap skala data
6. Segmentasi dengan K-Means
kmeans = KMeans(n_clusters=4, random_state=42)
rfm["cluster"] = kmeans.fit_predict(rfm_scaled)
Hasilnya:
- Setiap pelanggan memiliki label cluster
- Cluster belum bermakna bisnis
7. KNN untuk Pelanggan Baru
knn = KNeighborsClassifier(n_neighbors=5)
knn.fit(rfm_scaled, rfm["cluster"])
KNN digunakan untuk:
- Memprediksi segmen pelanggan baru
- Operasional real-time
8. Decision Tree untuk Aturan Bisnis
dt = DecisionTreeClassifier(max_depth=4, random_state=42)
dt.fit(rfm, rfm["cluster"])
Decision Tree membantu menjawab pertanyaan:
- Mengapa pelanggan masuk segmen tertentu?
- Aturan apa yang bisa dijelaskan ke pemilik UMKM?
9. Contoh Interpretasi Segmen
- Hemat: recency tinggi, monetary rendah
- Reguler: frequency stabil
- Loyal: frequency & monetary tinggi
- Premium: monetary sangat tinggi
10. Penutup
Pipeline RFM → K-Means → KNN → Decision Tree adalah pendekatan ideal untuk UMKM karena:
- Mudah diimplementasikan
- Murah secara komputasi
- Bisa dijelaskan secara bisnis
Tidak ada komentar:
Posting Komentar