HeaderRight Teknologi Nalar

Rabu, 28 Januari 2026

Tutorial Implementasi K-Means, KNN & Decision Tree untuk Klasifikasi Pelanggan UMKM

Tutorial Implementasi K-Means, KNN & Decision Tree untuk Klasifikasi Pelanggan UMKM
Ilustrasi tutorial implementasi K-Means, KNN, dan Decision Tree untuk klasifikasi pelanggan UMKM berbasis data transaksi

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 data
  • KMeans: segmentasi pelanggan
  • KNN: klasifikasi pelanggan baru
  • Decision 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

Galery Artikel