HeaderRight Teknologi Nalar

Kamis, 29 Januari 2026

Pipeline Machine Learning UMKM dengan Python: K-Means, KNN & Decision Tree

Pipeline Machine Learning UMKM dengan Python: K-Means, KNN & Decision Tree
Pipeline machine learning UMKM menggunakan K-Means KNN dan Decision Tree dengan Python

Pipeline Machine Learning untuk UMKM
Implementasi K-Means, KNN & Decision Tree dengan Python

Artikel ini adalah bagian kedua dari seri Machine Learning untuk UMKM. Jika Anda belum membaca fondasinya, silakan mulai dari: Konsep Dasar Machine Learning & Analisis RFM .

Daftar Isi
  1. Tujuan Pipeline Machine Learning
  2. Persiapan Dataset Transaksi
  3. Menghitung Fitur RFM
  4. Normalisasi Data
  5. Segmentasi Pelanggan dengan K-Means
  6. Klasifikasi Pelanggan Baru dengan KNN
  7. Interpretasi Bisnis dengan Decision Tree

1. Tujuan Pipeline Machine Learning

Data Transaksi Penjualan UMKM RFM Transform Recency • Frequency • Monetary Scaling StandardScaler K-Means Segmentasi Pelanggan KNN / Decision Tree Klasifikasi & Aturan Flask API /predict (JSON) Sistem UMKM POS • CRM • Dashboard • Promo Otomatis

Pipeline machine learning adalah alur terstruktur dari:

  • Data mentah
  • Transformasi fitur
  • Model machine learning
  • Output bisnis
Pipeline memastikan proses analisis konsisten, dapat diulang, dan siap dideploy.

2. Persiapan Dataset Transaksi

Dataset minimal yang dibutuhkan UMKM:

  • ID pelanggan
  • Tanggal transaksi
  • Nilai transaksi

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

Load Data

df = pd.read_csv("dataset-transaksi-umkm.csv")
df["transaction_date"] = pd.to_datetime(df["transaction_date"])

3. Menghitung Fitur 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"]

RFM mengubah data transaksi menjadi representasi perilaku pelanggan.

4. Normalisasi Data

scaler = StandardScaler()
rfm_scaled = scaler.fit_transform(rfm)
Normalisasi penting karena K-Means dan KNN sensitif terhadap skala data.

5. Segmentasi Pelanggan dengan K-Means

kmeans = KMeans(n_clusters=4, random_state=42)
rfm["cluster"] = kmeans.fit_predict(rfm_scaled)

Output K-Means adalah segmen pelanggan, bukan label bisnis. Makna segmen akan ditentukan di tahap evaluasi.

6. Klasifikasi Pelanggan Baru dengan KNN

knn = KNeighborsClassifier(n_neighbors=5)
knn.fit(rfm_scaled, rfm["cluster"])

KNN memungkinkan sistem:

  • Menerima pelanggan baru
  • Memprediksi segmen tanpa retraining
  • Bekerja real-time

7. Interpretasi Bisnis dengan Decision Tree

dt = DecisionTreeClassifier(max_depth=4, random_state=42)
dt.fit(rfm, rfm["cluster"])

Decision Tree menjawab pertanyaan penting:

  • Mengapa pelanggan masuk segmen tertentu?
  • Aturan apa yang bisa dijelaskan ke pemilik UMKM?
Model yang bisa dijelaskan seringkali lebih bernilai daripada model paling akurat.

Langkah Selanjutnya

Pada artikel berikutnya, kita akan:

Tidak ada komentar:

Posting Komentar

Galery Artikel