Dalam analisis data dan machine learning, klasifikasi merupakan salah satu metode supervised learning yang digunakan untuk memprediksi kelas atau kategori dari suatu objek berdasarkan karakteristik tertentu.
Contoh permasalahan klasifikasi dalam kehidupan sehari-hari antara lain:
Pada modul ini, mahasiswa akan mempelajari:
Klasifikasi adalah metode untuk memprediksi variabel target (Y) yang bersifat kategorikal, berdasarkan satu atau lebih variabel prediktor (X).
Contoh:
Karena target bersifat kategori, maka metode regresi tidak cocok, dan digunakan metode klasifikasi.
Decision Tree (Pohon Keputusan) adalah metode klasifikasi yang bekerja dengan cara membuat struktur pohon keputusan berdasarkan aturan if-then.
Karakteristik Decision Tree:
Kelebihan Decision Tree:
Dalam bidang Teknologi Industri Pertanian, klasifikasi sering digunakan untuk membantu proses pengambilan keputusan berbasis data, misalnya dalam pengendalian mutu hasil pertanian atau proses pascapanen.
Pada studi kasus ini, kita akan melakukan klasifikasi mutu biji kopi berdasarkan karakteristik fisik dan kimia yang diukur di laboratorium.
Tujuan klasifikasi:
Dataset yang digunakan merupakan data simulasi yang merepresentasikan kondisi nyata di industri pertanian.
Variabel prediktor (X):
Variabel target (Y):
Target bersifat kategorikal, sehingga metode klasifikasi sangat sesuai digunakan.
Dataset Iris merupakan dataset klasik yang sering digunakan untuk pembelajaran klasifikasi.
Isi dataset:
Variabel prediktor:
Variabel target: Species (setosa, versicolor, virginica)
# Memanggil dataset Iris yang sudah tersedia di R
data(iris)
# Melihat struktur data:
# - tipe variabel
# - jumlah observasi
# - memastikan target bertipe factor
str(iris)
## 'data.frame': 150 obs. of 5 variables:
## $ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
## $ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
## $ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
## $ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
## $ Species : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
Output yang Dilihat:
Artinya:
Dari struktur data terlihat bahwa:
Interpretasi Dataset berhasil dimuat ke dalam lingkungan kerja R. Hasil pemeriksaan struktur data menunjukkan bahwa dataset terdiri dari 150 observasi dengan empat variabel prediktor bertipe numerik dan satu variabel target bertipe faktor. Hal ini menunjukkan bahwa dataset telah memenuhi syarat untuk dilakukan analisis klasifikasi, karena variabel target bersifat kategorikal dan variabel prediktor dapat digunakan sebagai dasar pembentukan aturan keputusan.
Untuk menguji performa model, data dibagi menjadi:
# Menetapkan seed agar hasil pembagian data dapat direproduksi
set.seed(123)
# Mengambil 70% indeks data secara acak
index <- sample(1:nrow(iris), 0.7*nrow(iris))
# Data training digunakan untuk membangun model
train <- iris[index, ]
# Data testing digunakan untuk menguji model
# (data yang tidak ikut dilatih)
test <- iris[-index, ]
Sebanyak 70% data digunakan sebagai training dan 30% sebagai testing.
Output yang Dilihat
Interpretasi
Ini mensimulasikan kondisi nyata di industri: model diuji pada data baru yang belum pernah dilihat.
Interpretasi
Data dibagi menjadi dua bagian, yaitu data pelatihan (training) dan data pengujian (testing). Sebanyak 70% data digunakan untuk membangun model, sedangkan 30% data digunakan untuk mengevaluasi kinerja model. Pembagian ini bertujuan untuk menguji kemampuan model dalam mengklasifikasikan data baru yang tidak digunakan pada proses pelatihan, sehingga hasil evaluasi lebih mencerminkan kondisi nyata.
# Memanggil package rpart untuk membuat decision tree
library(rpart)
# Membangun model decision tree
# Species ~ . artinya Species diprediksi oleh semua variabel lain
# data = train menunjukkan data yang digunakan adalah data training
# method = "class" menandakan bahwa ini adalah klasifikasi
model_tree <- rpart(Species ~ ., data = train, method = "class")
# Menampilkan ringkasan model decision tree
model_tree
## n= 105
##
## node), split, n, loss, yval, (yprob)
## * denotes terminal node
##
## 1) root 105 68 virginica (0.34285714 0.30476190 0.35238095)
## 2) Petal.Length< 2.45 36 0 setosa (1.00000000 0.00000000 0.00000000) *
## 3) Petal.Length>=2.45 69 32 virginica (0.00000000 0.46376812 0.53623188)
## 6) Petal.Width< 1.75 35 4 versicolor (0.00000000 0.88571429 0.11428571) *
## 7) Petal.Width>=1.75 34 1 virginica (0.00000000 0.02941176 0.97058824) *
Model ini mempelajari pola hubungan antara atribut bunga dan jenis spesiesnya.
Output yang Dilihat
Interpretasi
Model Decision Tree berhasil dibangun menggunakan data pelatihan. Model ini mempelajari hubungan antara variabel prediktor dan variabel target melalui proses pemilihan variabel pemisah terbaik pada setiap node. Struktur model yang terbentuk menunjukkan bahwa algoritma telah mengidentifikasi variabel-variabel yang paling berpengaruh dalam proses klasifikasi dan menyusunnya dalam bentuk aturan keputusan yang hierarkis.
Decision Tree menyederhanakan data kompleks menjadi aturan yang mudah dipahami.
Visualisasi pohon keputusan menampilkan struktur model dalam bentuk diagram pohon. Setiap node merepresentasikan kondisi pemisahan berdasarkan nilai variabel tertentu, sedangkan setiap daun (leaf) menunjukkan kelas hasil klasifikasi. Struktur ini memudahkan interpretasi model karena proses pengambilan keputusan dapat ditelusuri secara logis dari node awal hingga node akhir.
Install package rpart.plot (SATU KALI SAJA)
#install.packages("rpart.plot")
# Memanggil package untuk visualisasi pohon keputusan
library(rpart.plot)
## Warning: package 'rpart.plot' was built under R version 4.4.3
# Menampilkan struktur decision tree dalam bentuk grafik
# Setiap node menunjukkan aturan pemisahan data
rpart.plot(model_tree)
Gambar decision tree menunjukkan proses klasifikasi jenis bunga Iris berdasarkan Petal.Length dan Petal.Width. Model membagi data secara bertahap hingga diperoleh keputusan akhir pada setiap daun (leaf).
Visualisasi ini membantu memahami bagaimana model mengambil keputusan berdasarkan aturan tertentu.
Output yang Dilihat
Interpretasi Visual 1. Jalur keputusan dari atas ke bawah 2. Aturan seperti:
Setiap jalur dari akar ke daun = satu aturan klasifikasi.
Visualisasi pohon keputusan menampilkan struktur model dalam bentuk diagram pohon. Setiap node merepresentasikan kondisi pemisahan berdasarkan nilai variabel tertentu, sedangkan setiap daun (leaf) menunjukkan kelas hasil klasifikasi. Struktur ini memudahkan interpretasi model karena proses pengambilan keputusan dapat ditelusuri secara logis dari node awal hingga node akhir.
Berdasarkan hasil visualisasi decision tree, variabel Petal.Length dan Petal.Width merupakan faktor utama dalam proses klasifikasi bunga Iris. Model mampu memisahkan kelas Setosa secara sempurna, serta membedakan kelas Versicolor dan Virginica dengan tingkat ketepatan yang tinggi. Aturan keputusan yang dihasilkan bersifat sederhana dan mudah diinterpretasikan.
Dari pohon keputusan, dapat dirangkum aturan berikut:
Penjelasan detail visual:
Informasi pada Node
Proporsi kelas:
Interpretasi: Node akar merepresentasikan seluruh data pelatihan. Distribusi kelas relatif seimbang, dengan kelas virginica memiliki proporsi terbesar. Pada tahap ini, model belum melakukan pemisahan dan masih mengandung ketidakpastian yang tinggi.
Makna penting
Model perlu melakukan pemisahan karena data masih bercampur antar kelas.
Pemisahan pertama dilakukan berdasarkan panjang kelopak bunga (Petal.Length).
Interpretasi Statistik
Variabel Petal.Length dipilih karena mampu mengurangi ketidakpastian paling besar dibandingkan variabel lainnya. Artinya, variabel ini merupakan faktor paling berpengaruh dalam membedakan kelas bunga.
Hasil
Interpretasi Seluruh data dengan panjang petal kurang dari 2.5 diklasifikasikan sebagai setosa tanpa kesalahan. Hal ini menunjukkan bahwa kelas setosa memiliki karakteristik petal yang sangat berbeda dan mudah dipisahkan dari kelas lainnya.
Makna keputusan
Jika panjang petal < 2.5, maka bunga pasti termasuk kelas setosa.
4️⃣ Cabang Kanan: Petal.Length ≥ 2.5 (No)
Informasi Node
Interpretasi
Setelah setosa dipisahkan, data yang tersisa masih terdiri dari dua kelas (versicolor dan virginica) yang cukup mirip, sehingga diperlukan pemisahan lanjutan.
Pada cabang ini, model menggunakan lebar kelopak (Petal.Width) sebagai variabel pemisah berikutnya.
Interpretasi Statistik
Variabel Petal.Width dipilih karena paling efektif membedakan antara versicolor dan virginica pada subset data ini.
Hasil
Interpretasi Sebagian besar bunga dengan Petal.Length ≥ 2.5 dan Petal.Width < 1.8 diklasifikasikan sebagai versicolor. Masih terdapat sedikit kemungkinan kesalahan karena karakteristik versicolor dan virginica cukup berdekatan.
Makna keputusan
Jika petal panjang dan lebar relatif kecil, bunga cenderung versicolor.
Hasil
Interpretasi Bunga dengan petal panjang dan lebar besar hampir seluruhnya termasuk virginica. Tingkat ketepatan klasifikasi pada node ini sangat tinggi.
Makna keputusan
Jika petal panjang dan lebar besar, bunga hampir pasti virginica.
# Melakukan prediksi kelas pada data testing
# type = "class" berarti hasil prediksi berupa kelas, bukan probabilitas
prediksi <- predict(model_tree, test, type = "class")
# Menampilkan hasil prediksi
prediksi
## 1 2 3 5 11 18 19
## setosa setosa setosa setosa setosa setosa setosa
## 28 29 33 36 45 48 49
## setosa setosa setosa setosa setosa setosa setosa
## 55 56 57 58 59 61 62
## versicolor versicolor versicolor versicolor versicolor versicolor versicolor
## 65 66 68 70 77 83 84
## versicolor versicolor versicolor versicolor versicolor versicolor versicolor
## 94 95 98 100 101 104 105
## versicolor versicolor versicolor versicolor virginica virginica virginica
## 111 113 116 125 131 133 135
## virginica virginica virginica virginica virginica virginica versicolor
## 140 141 145
## virginica virginica virginica
## Levels: setosa versicolor virginica
Hasil prediksi ini akan dibandingkan dengan kelas sebenarnya.
Output yang Dilihat: Daftar kelas hasil prediksi
Interpretasi
Model Decision Tree digunakan untuk melakukan prediksi terhadap data pengujian. Setiap observasi pada data testing diklasifikasikan berdasarkan aturan keputusan yang telah dibentuk pada tahap pelatihan. Hasil prediksi berupa kelas kategorikal yang menunjukkan kelas yang diperkirakan oleh model untuk setiap data uji.
Model tidak menghafal data, tetapi menggeneralisasi aturan.
Confusion Matrix
Confusion matrix digunakan untuk melihat performa klasifikasi secara detail.
# Membuat confusion matrix
# Baris: kelas aktual
# Kolom: kelas hasil prediksi
conf_matrix <- table(Actual = test$Species, Predicted = prediksi)
# Menampilkan confusion matrix
conf_matrix
## Predicted
## Actual setosa versicolor virginica
## setosa 14 0 0
## versicolor 0 18 0
## virginica 0 1 12
Penjelasan:
Output yang Dilihat: Tabel perbandingan aktual vs prediksi
Interpretasi Detail
Confusion matrix digunakan untuk membandingkan hasil prediksi model dengan kelas sebenarnya. Nilai pada diagonal utama menunjukkan jumlah data yang berhasil diklasifikasikan dengan benar, sedangkan nilai di luar diagonal menunjukkan kesalahan klasifikasi. Matriks ini memberikan gambaran rinci mengenai kinerja model pada setiap kelas, termasuk kelas yang paling sering mengalami kesalahan prediksi.
Confusion matrix memberi gambaran kualitas model secara detail, bukan hanya angka tunggal.
Akurasi menunjukkan proporsi prediksi yang benar.
# Menghitung akurasi model
# diag(conf_matrix) mengambil nilai prediksi yang benar
# sum(conf_matrix) adalah total seluruh data
akurasi <- sum(diag(conf_matrix)) / sum(conf_matrix)
# Menampilkan nilai akurasi
akurasi
## [1] 0.9777778
(diag(conf_matrix)) / sum(conf_matrix)
## setosa versicolor virginica
## 0.3111111 0.4000000 0.2666667
akurasi
## [1] 0.9777778
Nilai akurasi mendekati 1 menunjukkan model bekerja dengan baik.
Output yang Dilihat: Angka antara 0 dan 1
Interpretasi
Akurasi model dihitung sebagai proporsi jumlah prediksi yang benar terhadap total data pengujian. Nilai akurasi yang tinggi menunjukkan bahwa model memiliki kemampuan klasifikasi yang baik secara keseluruhan. Namun demikian, akurasi perlu dianalisis bersama confusion matrix agar evaluasi model lebih komprehensif, terutama ketika distribusi kelas tidak seimbang.
Catatan penting: Akurasi saja tidak cukup jika data tidak seimbang.
Berdasarkan hasil evaluasi:
Namun, Decision Tree juga memiliki kelemahan, seperti mudah mengalami overfitting jika pohon terlalu kompleks.
Pada modul ini, mahasiswa telah mempelajari:
Decision Tree merupakan metode yang sangat cocok untuk tahap awal pembelajaran klasifikasi karena mudah dipahami secara konseptual dan visual.