Pada industri pengolahan kopi, penentuan mutu biji kopi sangat penting untuk menjaga kualitas produk. Penilaian mutu dilakukan berdasarkan karakteristik fisik biji kopi yang diukur pada tahap pascapanen.
Klasifikasi dilakukan untuk menentukan:
Deskripsi Variabel Dataset
Variabel Prediktor
Variabel Target
mutu
data_kopi <- read.csv("dataset_mutu_biji_kopi_TIP.csv")
str(data_kopi)
## 'data.frame': 20 obs. of 5 variables:
## $ kadar_air_persen : num 9.8 10.5 11 12.2 13.5 14 15.1 10 9.5 13 ...
## $ ukuran_biji_mm : num 7 6.8 6.5 6.2 5.8 5.6 5.3 6.9 7.1 5.9 ...
## $ warna_biji_skor : int 5 5 4 4 3 3 2 5 5 3 ...
## $ jumlah_cacat_per_100g: int 0 1 2 3 6 7 10 1 0 5 ...
## $ mutu : chr "Tinggi" "Tinggi" "Tinggi" "Tinggi" ...
data_kopi$mutu <- as.factor(data_kopi$mutu)
set.seed(123)
index <- sample(1:nrow(data_kopi), 0.7*nrow(data_kopi))
train <- data_kopi[index, ]
test <- data_kopi[-index, ]
library(rpart)
model_tree <- rpart(mutu ~ ., data = train, method = "class")
model_tree
## n= 14
##
## node), split, n, loss, yval, (yprob)
## * denotes terminal node
##
## 1) root 14 6 Tinggi (0.4285714 0.5714286) *
library(rpart.plot)
## Warning: package 'rpart.plot' was built under R version 4.4.3
rpart.plot(model_tree)
hasil Decision Tree yang sangat sederhana (hanya 1 node / stump)
Pada gambar terlihat satu node saja, dengan informasi:
Artinya:
Decision Tree tidak membuat cabang jika:
Dalam kondisi ini, algoritma memilih:
“Lebih baik tidak membagi data sama sekali daripada membuat pemisahan yang tidak signifikan.”
Makna Statistik dari Node Ini:
Model memutuskan bahwa kelas terbaik untuk seluruh data adalah Mutu Tinggi, karena kelas ini paling dominan.
Nilai ini menunjukkan probabilitas kelas mayoritas (57% data adalah Mutu Tinggi).
Menunjukkan bahwa seluruh data (100%) berada pada node tersebut.
Interpretasi:
Visualisasi decision tree menunjukkan bahwa model hanya membentuk satu node tanpa percabangan. Hal ini mengindikasikan bahwa berdasarkan data pelatihan yang digunakan, tidak terdapat variabel prediktor yang mampu memisahkan kelas mutu secara signifikan. Model kemudian mengklasifikasikan seluruh data ke dalam kelas mayoritas, yaitu Mutu Tinggi dengan probabilitas sebesar 57%.
prediksi <- predict(model_tree, test, type = "class")
conf_matrix <- table(Actual = test$mutu, Predicted = prediksi)
conf_matrix
## Predicted
## Actual Rendah Tinggi
## Rendah 0 3
## Tinggi 0 3
akurasi <- sum(diag(conf_matrix)) / sum(conf_matrix)
akurasi
## [1] 0.5
0 data diprediksi sebagai Rendah (benar)
3 data diprediksi sebagai Tinggi (salah)
Artinya:
Seluruh data yang seharusnya bermutu Rendah salah diklasifikasikan sebagai Tinggi.
0 data diprediksi sebagai Rendah (salah)
3 data diprediksi sebagai Tinggi (benar)
Artinya:
Seluruh data bermutu Tinggi berhasil diklasifikasikan dengan benar.
Akurasi dihitung sebagai:
Akurasi = Jumlah prediksi benar/ Total data
Dalam kasus ini:
Akurasi = 3/6 =0.5
Artinya: Model hanya mampu mengklasifikasikan 50% data dengan benar.
✅ Kekuatan Model
❌ Kelemahan Model
📌 Model bersifat bias ke kelas Tinggi.
Dalam konteks klasifikasi mutu produk pertanian:
Model cenderung menganggap seluruh sampel sebagai produk bermutu tinggi, sehingga berpotensi menimbulkan kesalahan serius dalam pengendalian mutu, karena produk bermutu rendah tidak terdeteksi.
Beberapa kemungkinan penyebab:
Berdasarkan confusion matrix, model Decision Tree mampu mengklasifikasikan seluruh data bermutu tinggi dengan benar, namun gagal mengidentifikasi data bermutu rendah. Hal ini menyebabkan nilai akurasi model hanya sebesar 50%, yang menunjukkan bahwa kinerja model belum optimal dan masih bersifat bias terhadap kelas mayoritas.
Rekomendasi Perbaikan Model
Berdasarkan hasil evaluasi model, diperoleh beberapa temuan sebagai berikut: