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 .
- Tujuan Pipeline Machine Learning
- Persiapan Dataset Transaksi
- Menghitung Fitur RFM
- Normalisasi Data
- Segmentasi Pelanggan dengan K-Means
- Klasifikasi Pelanggan Baru dengan KNN
- Interpretasi Bisnis dengan Decision Tree
1. Tujuan Pipeline Machine Learning
Pipeline machine learning adalah alur terstruktur dari:
- Data mentah
- Transformasi fitur
- Model machine learning
- Output bisnis
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)
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?
Langkah Selanjutnya
Pada artikel berikutnya, kita akan:
Tidak ada komentar:
Posting Komentar