Machine learning bukanlah konsep yang baru. Sejak akhir tahun 1950-an, para peneliti telah berupaya mengembangkan algoritma yang memungkinkan mesin untuk belajar dari data. Salah satu pionirnya adalah Arthur Samuel, yang mengembangkan program bermain catur yang dapat “belajar” dari permainan sebelumnya untuk menjadi lebih baik. Seiring waktu, machine learning berkembang pesat dengan meningkatnya kemampuan komputasi dan ketersediaan data dalam jumlah besar. Di era digital saat ini, machine learning telah menjadi salah satu bidang yang paling cepat berkembang di dunia teknologi. Dari pengenalan pola sederhana hingga sistem pembelajaran mendalam (deep learning) yang kompleks, machine learning telah menjadi fondasi dari banyak inovasi teknologi modern, seperti pengenalan wajah, kendaraan otonom, asisten virtual, dan sistem rekomendasi (Bintoro dkk., 2024).
Machine Learning terbagi menjadi 2 macam konsep pembelajaran, yaitu pertama Supervised Learning yang merupakan teknik machine learning yang membuat suatu fungsi berdasarkan data latihan yang sudah ada, dalam hal ini dapat dikatakan untuk teknik ini sudah tersedia data latihan secara detail dan terklasifikasi dengan baik yang akan dijadikan sebuah model data saat dilakukan proses uji coba dengan data tes yang baru dan menghasilkan hasil keluaran yang sesuai diharapkan sebelumnya berdasarkan data latihan yang ada. Kedua adalah Unsupervised Learning yang merupakan teknik machine learning yang berusaha untuk melakukan representasi pola sebuah input yang berasal dari data latihan dan salah satu yang menjadi perbedaan dengan Supervised Learning adalah tidak adanya pengklasifikasian dari input data. Dalam Machine Learning teknik Unsupervised Learning menjadi esensial karena sistem kerja yang diberikan sama dengan cara kerja otak manusia dimana dalam proses pembelajaran tidak ada role model atau informasi dan contoh yang tersedia untuk dijadikan sebagai model dalam melakukan proses uji coba untuk penyelesaian sebuah masalah dengan data yang baru (Fathurohman, 2021).
Pohon keputusan atau sering disebut Decision Tree adalah model visual untuk menyederhanakan proses pembuatan keputusan secara rasional. Visualisasi ini memungkinkan kita untuk memahami proses pembuatan keputusan yang terstruktur, bertahap, dan rasional. Pembuatan keputusan berarti memilih alternatif-alternatif keputusan yang tersedia. Konsep dari pohon keputusan adalah mengubah data menjadi pohon keputusan dan aturan-aturan keputusan. Manfaat utama dari penggunaan pohon keputusan adalah kemampuannya untuk membreak down proses pengambilan keputusan yang kompleks menjadi lebih mudah sehingga pengambil keputusan akan lebih menginterpretasikan solusi dari permasalahan (Khoeri dan Mulyana., 2021).
Berdasarkan latar belakang tersebut, rumusan masalah yang dapat disimpulkan adalah:
1.Bagaimana konsep dasar Decision Tree untuk klasifikasi menggunakan metode CART (Classification and Regression Tree)?
2.Bagaimana Membangun model Classification Tree menggunakan algoritma CART?
Berdasarkan rumusan masalah tersebut, tujuan yang dapat disimpulkan adalah:
1.Menjelaskan konsep dasar Decision Tree untuk klasifikasi menggunakan metode CART (Classification and Regression Tree).
2.Membangun model Classification Tree menggunakan algoritma CART.
Adapun manfaat pada penelitian ini yaitu:
1.Bagi Penulis
a.Memberikan informasi serta pengetahuan tentang Decision Tree (Classification Tree) dengan metode CART dalam Machine Learning.
b.Mengembangkan dan menerapkan wawasan ilmu yang telah diperoleh dalam bidang statistika, khususnya tentang penangan missing value dengan mice, pembentukan dan pruning pohon klasifikasi, serta evaluasi model dengan R-Studio.
2.Bagi Pembaca
Menambah ilmu pengetahuan dan pemahaman yang berkaitan dengan Decision Tree (Classification Tree) dan penerapannya dengan R-Studio.
Adapun batasan masalah pada penelitian ini adalah Gunakan dataset BreastCancer dari package mlbench untuk mengklasifikasikan kondisi kanker payudara menggunakan Decision Tree (Classification Tree). Lakukan pengecekan dan penanganan missing value menggunakan mice, kemudian bagi data menjadi training dan testing. Selanjutnya, bangun dan visualisasikan tree, analisis variable importance, lakukan prediksi dan evaluasi menggunakan confusion matrix, tentukan CP terbaik, lakukan pruning, dan evaluasi kembali model menggunakan confusion matrix, ROC, dan AUC!
Adapun sistematika penulisan dari praktikum ini adalah sebagai berikut.
BAB IPENDAHULUAN
Bab ini terdiri dari latar belakang, rumusan masalah, tujuan penelitian, manfaat penelitian, batasan masalah, dan sistematika penulisan.
BAB IITINJAUAN PUSTAKA
Bab ini berisi kajian pustaka yang terdiri dari jurnal, buku, dan
informasi pendukung mengenai Decision Tree, CART
(Classification Tree), pruning dan complexity
parameter, evaluasi model (confusion matrix, ROC, dan
AUC), serta penanganan missing value dengan mice
pada program RStudio.
BAB IIIMETODE PENELITIAN
Bab ini terdiri dari jenis dan sumber data, variabel penelitian, algoritma penelitian, dan diagram alir.
BAB IVHASIL DAN PEMBAHASAN
Bab ini berisi hasil yang diperoleh dari analisis data beserta penjelasannya pada bagian pembahasan.
BAB VKESIMPULAN
Bab ini merupakan bagian penutup laporan yang berisi kesimpulan dari hasil analisis serta saran dari penulis.
DAFTAR PUSTAKA LAMPIRAN
Machine Learning adalah studi tentang algoritma untuk mempelajari bagaimana melakukan tugas-tugas tertentu yang dilakukan secara otomatis oleh orang-orang. Di sini, belajar mengacu pada kemampuan untuk melakukan berbagai kegiatan yang sudah ada atau untuk mengekstrapolasi kesimpulan baru dengan benar dari berbagai pola yang diamati sebelumnya. Salah satu subbidang kecerdasan buatan, Machine Learning, dapat berdampak pada sejumlah bidang lain, termasuk statistik, matematika, dan banyak bidang teoretis ilmu komputer. Intinya, tujuan machine learning adalah untuk mengembangkan algoritma yang dapat mengeksekusi sistem pembelajaran otonom dengan sangat sedikit masukan dari orang-orang pada umumnya. Berikut beberapa contoh algoritma dari konsep pembelajaran Supervised Learning dan Unsupervised Learning (Fathurohman, 2021):
1.Supervised Learning
a.Logistic Regression: adalah strategi statistik yang dapat digunakan untuk memecahkan masalah dengan membuat prediksi variabel baru berdasarkan sejumlah variabel yang sudah ada dan yang ditentukan sebelumnya dan mencari korelasi antara variabel data input yang ditentukan sebelumnya dengan variabel prediksi baru.
b.K-Nearest Neighbors Algorithm (KNN): memerlukan pembentukan ruang fitur di mana item yang menjadi data pelatihan dan model data diberi nilai berbobot dan direpresentasikan dalam vektor n-dimensi untuk menyelesaikan masalah klasifikasi. Kesulitan tersebut kemudian diselesaikan dengan menentukan jarak dari item baru yang dapat ditentukan menggunakan model data dalam vektor n-dimensi, dan objek baru tersebut kemudian diberikan kategori.
2.Unsupervised Learning
a.Clustering: sebuah proses untuk membuat arketipe item yang digunakan dalam pembelajaran mesin untuk mengatasi tantangan seperti mengklasifikasikan atau mengkategorikan hal-hal ke dalam kelas atau kategori. Data yang digunakan sebagai model data belum membentuk kelompok data, sehingga tidak dapat mengidentifikasi klasifikasi suatu item. Akibatnya, pola dasar pertama-tama harus dibangun menggunakan sejumlah karakteristik yang diperlukan sebelum model data dan data pelatihan dapat digunakan. jika terjadi klasifikasi objek baru.
Decision Tree merupakan salah satu metode supervised learning berbasis pohon yang dapat digunakan untuk membentuk aturan prediksi. Pada metode ini, data dibagi secara bertahap melalui proses splitting berdasarkan variabel prediktor sehingga terbentuk kelompok-kelompok data yang semakin homogen. Setiap percabangan pada pohon menunjukkan aturan pemisahan sedangkan simpul akhir (leaf node) menunjukkan hasil prediksi. Salah satu metode dalam Decision Tree adalah Classification and Regression Tree (CART). CART dapat digunakan untuk dua jenis pemodelan, yaitu klasifikasi untuk memprediksi kategori atau kelas regresi untuk memprediksi nilai numerik. Jika variabel respon berupa kategori, pohon yang terbentuk disebut pohon klasifikasi (Classification Tree), jika variabel respon berupa numerik kontinu disebut pohon regresi (Regression Tree). Decision Tree memiliki beberapa karakteristik, yaitu (Fransiska., 2026):
1.Mudah dipahami dan diinterpretasikan karena model dapat divisualisasikaan dalam bentuk pohon.
2.Dapat menggunakan variabel prediktor numerik maupun kategorik.
3.Membagi data secara bertahap melalui proses splitting sehingga kelompok yang tebentuk semakin homogan.
4.Dapat digunakan untuk memprediksi kelas pada kasus klasifikasi maupun nilai numerik pada kasus regresi.
5.Dapat disederhanakan melalui pruning untuk mengurangi kompleksitas pohon dan risiko overvitting.
Pada Classification Tree, proses pemisahan data dilakukan dengan memilih aturan yang mampu menghasilkan simpul-simpul yang semakin homogen. Beberapa ukuran yang digunakan dalam proses pemisahan tersebut antara lain Entropy, Information Gain, dan Gini Index. Entropy digunakan untuk mengukur tingkat ketidakpastian atau ketidakmurnian kelas dalam suatu simpul. Semakin kecil nilai Entropy, semakin homogen simpul tersebut. Entropy dirumuskan sebagai:
\[ Entropy(t) = -\sum_{k=1}^{K} p_k \log_2(p_k) \] dengan 𝑡 adalah node, 𝑘 adalah indeks kelas ke-𝑘, 𝑘 = 1,2,3, … , 𝐾 dan 𝑝𝑘 merupakan proporsi observasi dari kelas ke-𝑘 dalam node. Andaikan memiliki sebuah dataset 𝐷 yang terdiri dari dua kelas (Ya atau Tidak) dengan persentase Ya adalah 𝑝1 dan persentase Tidak adalah 𝑝2 maka
\[ p_1 + p_2 = 1 \] \[ E(D) = -p_1 \log_2 p_1 - p_2 \log_2 p_2 \] Semakin kecil nilai Entropy, semakin homogen data dalam suatu simpul. Sebaliknya, nilai Entropy semakin besar apabila proporsi kelas dalam simpul semakin seimbang. Jika seluruh amatan dalam suatu simpul berasal dari satu kelas yang sama, maka nilai Entropy sama dengan 0. Information Gain digunakan untuk mengukur seberapa besar tingkat ketidakpastian (Entropy) berkurang setelah dilakukan suatu split. Semakin besar nilai Information Gain, semakin baik pemisahan yang dilakukan karena kelompok data yang terbentuk menjadi semakin homogen. Jika suatu dataset 𝐷 dipartisi menjadi beberapa bagian 𝐷1, 𝐷2, … , 𝐷𝑗, maka Information Gain dirumuskan sebagai:
\[ IG = E(D) - \sum_{j=1}^{J} \frac{|D_j|}{|D|}\,E(D_j) \] Jika data hanya dibagi menjadi dua bagian, yaitu 𝐷1 dan 𝐷2 maka rumusnya dapat ditulis sebagai:
\[ IG = E(D) - \left[ \frac{|D_1|}{|D|} E(D_1) + \frac{|D_2|}{|D|} E(D_2) \right] \]
dengan: 𝐸(𝐷) : Entropy data sebelum pemisahan (split) 𝐸(𝐷𝑗) : Entropy data hasil pemisahan (split) ke-𝑗 |𝐷𝑗| : banyaknya amatan pada bagian ke-𝑗 |𝐷| : banyaknya seluruh amatan
Gini Index digunakan untuk mengukur tingkat ketidakmurnian kelas (Gini impurity) dalam suatu simpul. Semakin kecil nilai Gini Index, semakin homogen data dalam simpul tersebut. Gini index dirumuskan sebagai:
\[ Gini(t) = 1 - \sum_{k=1}^{K} p_k^2 \]
Jika dataset 𝐷 dipartisi menjadi dua bagian 𝐷1 dan 𝐷2, maka nilai Gini setelah pemisahan dihitung menggunakan rata-rata terbobot:
\[ Gini_{split} = \frac{|D_1|}{|D|}\,Gini(D_1) + \frac{|D_2|}{|D|}\,Gini(D_2) \]
Regression Tree digunakan ketika variabel respons atau target berupa data numerik kontinu. Prinsip pembentukan pohonnya sama dengan Classification Tree, yaitu membagi data secara bertahap melalui proses splitting. Perbedaannya pada Regression Tree pemisahan dilakukan agar nilai respon dalam setiap simpul menjadi semakin seragam atau homogen. Salah satu ukuran yang dapat digunakan untuk menilai hasil pemisahan adalah Mean Square Error (MSE), yaitu rata-rata kuadrat selisih antara nilai respons dengan rata-rata respon dalam suatu simpul.
\[ MSE = \frac{1}{n}\sum_{i=1}^{n}(y_i-\hat{y}_i)^2 \]
Pemisahan dipilih apabila mampu menghasilkan simpul-simpul dengan nilai MSE yang lebih kecil. Dengan demikian, amatan yang berada dalam satu simpul memiliki nilai respons yang semakin mirip. Evaluasi Classification Tree dilakukan dengan membandingkan kelas aktual dan kelas hasil prediksi. Hasil perbandingan tersebut dapat disajikan dalam confusion matrix.
| Predicted Positive | Predicted Negative | |
|---|---|---|
| Actual Positive | True Positive (TP) | False Negative (FN) |
| Actual Negative | False Positive (FP) | True Negative (TN) |
\[ \begin{aligned} Accuracy &= \frac{TP+TN}{TP+TN+FP+FN} \\[8pt] Precision &= \frac{TP}{TP+FP} \\[8pt] Recall &= \frac{TP}{TP+FN} \\[8pt] Specificity &= \frac{TN}{TN+FP} \\[8pt] F1\text{-}Score &= 2\left(\frac{Precision \times Recall}{Precision+Recall}\right) \end{aligned} \] Pada Regression Tree, evaluasi dilakukan dengan membandingkan nilai aktual dengan nilai hasil prediksi. Beberapa ukuran yang umum digunakan adalah Mean Squared Error (MSE), Root Mean Squared Error (RMSE), dan koefisien determinasi (𝑅2).
\[ \begin{aligned} MSE &= \frac{1}{n}\sum_{i=1}^{n}(y_i-\hat{y}_i)^2 \\[10pt] RMSE &= \sqrt{MSE} \\[10pt] R^2 &= 1-\frac{\sum_{i=1}^{n}(y_i-\hat{y}_i)^2}{\sum_{i=1}^{n}(y_i-\bar{y})^2} \end{aligned} \]
Jenis data yang digunakan dalam penelitian ini adalah data kuantitatif, yaitu data yang dapat dinyatakan dalam bentuk angka dan digunakan untuk keperluan analisis statistik. Sumber data yang digunakan merupakan data sekunder, yaitu data yang diperoleh secara tidak langsung oleh peneliti melalui sumber yang telah tersedia. Data sekunder dalam penelitian ini berupa dataset BreastCancer yang diperoleh dari package mlbench pada perangkat lunak R-Studio. Dataset tersebut digunakan untuk mengklasifikasikan kondisi kanker payudara ke dalam dua kategori, yaitu jinak (benign) dan ganas (malignant), berdasarkan karakteristik sel yang diamati.
Variabel merupakan objek penelitian yang menjadi fokus pengamatan dalam suatu penelitian. Variabel yang digunakan dalam penelitian ini terdiri atas variabel respons dan variabel prediktor. Variabel respons yang digunakan adalah Class, yang menunjukkan kondisi kanker payudara, yaitu benign (jinak) dan malignant (ganas). Sementara itu, variabel prediktor terdiri atas Cl.thickness, Cell.size, Cell.shape, Marg.adhesion, Epith.c.size, Bare.nuclei, Bl.cromatin, Normal.nucleoli, dan Mitoses. Variabel Id tidak digunakan dalam pemodelan karena hanya berfungsi sebagai identitas pengamatan.
Algoritma berdasarkan batasan masalah adalah:
1.Memasukkan dataset BreastCancer dari package mlbench ke dalam R-Studio.
2.Melakukan pemeriksaan struktur data, tipe variabel, distribusi kelas, dan missing value.
3.Melakukan penanganan missing value menggunakan metode imputasi dengan package mice.
4.Menentukan variabel prediktor dan variabel respons serta mengeluarkan variabel identitas yang tidak digunakan dalam pemodelan.
5.Melakukan pembagian data menjadi data training dan testing dengan proporsi 80% dan 20%.
6.Membangun model Decision Tree menggunakan metode Classification Tree.
7.Melakukan visualisasi pohon klasifikasi yang telah terbentuk.
8.Melakukan analisis variable importance untuk mengetahui variabel prediktor yang berkontribusi terhadap klasifikasi.
9.Melakukan prediksi pada data testing dan mengevaluasi model awal menggunakan confusion matrix.
10.Menentukan nilai Complexity Parameter (CP) terbaik berdasarkan kriteria validasi silang.
11.Melakukan pruning atau pemangkasan pohon klasifikasi menggunakan nilai CP terbaik.
12.Melakukan prediksi dan evaluasi kembali terhadap model setelah pruning menggunakan confusion matrix, kurva ROC, dan nilai AUC.
13.Membandingkan hasil evaluasi model sebelum dan sesudah pruning.
14.Kesimpulan.
Diagram Alir Penelitian
Berikut ini library dan statistik deskriptif yang digunakan dalam meng-import data dari excel:
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
##
## Attaching package: 'mice'
## The following object is masked from 'package:stats':
##
## filter
## The following objects are masked from 'package:base':
##
## cbind, rbind
## Loading required package: lattice
## Type 'citation("pROC")' for a citation.
##
## Attaching package: 'pROC'
## The following objects are masked from 'package:stats':
##
## cov, smooth, var
## 'data.frame': 699 obs. of 11 variables:
## $ Id : chr "1000025" "1002945" "1015425" "1016277" ...
## $ Cl.thickness : Ord.factor w/ 10 levels "1"<"2"<"3"<"4"<..: 5 5 3 6 4 8 1 2 2 4 ...
## $ Cell.size : Ord.factor w/ 10 levels "1"<"2"<"3"<"4"<..: 1 4 1 8 1 10 1 1 1 2 ...
## $ Cell.shape : Ord.factor w/ 10 levels "1"<"2"<"3"<"4"<..: 1 4 1 8 1 10 1 2 1 1 ...
## $ Marg.adhesion : Ord.factor w/ 10 levels "1"<"2"<"3"<"4"<..: 1 5 1 1 3 8 1 1 1 1 ...
## $ Epith.c.size : Ord.factor w/ 10 levels "1"<"2"<"3"<"4"<..: 2 7 2 3 2 7 2 2 2 2 ...
## $ Bare.nuclei : Factor w/ 10 levels "1","2","3","4",..: 1 10 2 4 1 10 10 1 1 1 ...
## $ Bl.cromatin : Factor w/ 10 levels "1","2","3","4",..: 3 3 3 3 3 9 3 3 1 2 ...
## $ Normal.nucleoli: Factor w/ 10 levels "1","2","3","4",..: 1 2 1 7 1 7 1 1 1 1 ...
## $ Mitoses : Factor w/ 9 levels "1","2","3","4",..: 1 1 1 1 1 1 1 1 5 1 ...
## $ Class : Factor w/ 2 levels "benign","malignant": 1 1 1 1 1 2 1 1 1 1 ...
## Id Cl.thickness Cell.size Cell.shape Marg.adhesion Epith.c.size
## 1 1000025 5 1 1 1 2
## 2 1002945 5 4 4 5 7
## 3 1015425 3 1 1 1 2
## 4 1016277 6 8 8 1 3
## 5 1017023 4 1 1 3 2
## 6 1017122 8 10 10 8 7
## Bare.nuclei Bl.cromatin Normal.nucleoli Mitoses Class
## 1 1 3 1 1 benign
## 2 10 3 2 1 benign
## 3 2 3 1 1 benign
## 4 4 3 7 1 benign
## 5 1 3 1 1 benign
## 6 10 9 7 1 malignant
## [1] 699 11
## Id Cl.thickness Cell.size Cell.shape Marg.adhesion
## Length :699 1 :145 1 :384 1 :353 1 :407
## N.unique :645 5 :130 10 : 67 2 : 59 2 : 58
## N.blank : 0 3 :108 3 : 52 10 : 58 3 : 58
## Min.nchar: 5 4 : 80 2 : 45 3 : 56 10 : 55
## Max.nchar: 8 10 : 69 4 : 40 4 : 44 4 : 33
## 2 : 50 5 : 30 5 : 34 8 : 25
## (Other):117 (Other): 81 (Other): 95 (Other): 63
## Epith.c.size Bare.nuclei Bl.cromatin Normal.nucleoli Mitoses
## 2 :386 1 :402 2 :166 1 :443 1 :579
## 3 : 72 10 :132 3 :165 10 : 61 2 : 35
## 4 : 48 2 : 30 1 :152 3 : 44 3 : 33
## 1 : 47 5 : 30 7 : 73 2 : 36 10 : 14
## 6 : 41 3 : 28 4 : 40 8 : 24 4 : 12
## 5 : 39 (Other): 61 5 : 34 6 : 22 7 : 9
## (Other): 66 NAs : 16 (Other): 69 (Other): 69 (Other): 17
## Class
## benign :458
## malignant:241
##
##
##
##
##
## Id Cl.thickness Cell.size Cell.shape Marg.adhesion
## 0 0 0 0 0
## Epith.c.size Bare.nuclei Bl.cromatin Normal.nucleoli Mitoses
## 0 16 0 0 0
## Class
## 0
##
## benign malignant
## 458 241
Berdasarkan hasil pemeriksaan, dataset BreastCancer terdiri dari 699 observasi dengan 11 variabel, ditemukan 16 nilai hilang pada variabel Bare.nuclei, serta terdapat 458 data kelas benign (jinak) dan 241 data kelas malignant (ganas), kemudian variabel Id dihapus karena hanya berfungsi sebagai identitas observasi dan tidak digunakan sebagai prediktor dalam pembentukan model Classification Tree.
Berikut ini hasil pemeriksaan dan penanganan missing value pada data:
## 'data.frame': 699 obs. of 10 variables:
## $ Cl.thickness : num 5 5 3 6 4 8 1 2 2 4 ...
## $ Cell.size : num 1 4 1 8 1 10 1 1 1 2 ...
## $ Cell.shape : num 1 4 1 8 1 10 1 2 1 1 ...
## $ Marg.adhesion : num 1 5 1 1 3 8 1 1 1 1 ...
## $ Epith.c.size : num 2 7 2 3 2 7 2 2 2 2 ...
## $ Bare.nuclei : num 1 10 2 4 1 10 10 1 1 1 ...
## $ Bl.cromatin : num 3 3 3 3 3 9 3 3 1 2 ...
## $ Normal.nucleoli: num 1 2 1 7 1 7 1 1 1 1 ...
## $ Mitoses : num 1 1 1 1 1 1 1 1 5 1 ...
## $ Class : Factor w/ 2 levels "benign","malignant": 1 1 1 1 1 2 1 1 1 1 ...
Pada tahap ini, nilai hilang diperiksa menggunakan fungsi colSums(is.na()) pada data training dan testing. Berdasarkan pemeriksaan awal dataset, terdapat 16 nilai hilang pada variabel Bare.nuclei. Penanganan nilai hilang dilakukan menggunakan metode Predictive Mean Matching (PMM) melalui fungsi mice() dengan satu dataset imputasi (m = 1) dan lima iterasi (maxit = 5). Metode ini mengisi nilai yang hilang berdasarkan nilai prediksi dan nilai observasi yang memiliki karakteristik serupa. Setelah imputasi, pemeriksaan dilakukan kembali untuk memastikan apakah masih terdapat nilai hilang pada masing-masing kelompok data.
Berikut ini pembagian data training dan testing pada data:
## [1] 490 10
## [1] 209 10
##
## benign malignant
## 321 169
##
## benign malignant
## 137 72
Berdasarkan hasil pembagian data, dataset dibagi menjadi 490 observasi sebagai data training (70%) dan 209 observasi sebagai data testing (30%), dengan masing-masing terdiri dari 10 variabel. Data training mencakup 321 kelas benign (jinak) dan 169 kelas malignant (ganas), sedangkan data testing terdiri dari 137 kelas benign dan 72 kelas malignant. Pembagian ini dilakukan untuk membentuk model Classification Tree menggunakan data training dan mengevaluasi kinerjanya menggunakan data testing.
Berikut ini hasil pemeriksaan dan penanganan missing value dengan MICE pada data:
## Cl.thickness Cell.size Cell.shape Marg.adhesion Epith.c.size
## 0 0 0 0 0
## Bare.nuclei Bl.cromatin Normal.nucleoli Mitoses Class
## 14 0 0 0 0
## Cl.thickness Cell.size Cell.shape Marg.adhesion Epith.c.size
## 0 0 0 0 0
## Bare.nuclei Bl.cromatin Normal.nucleoli Mitoses Class
## 2 0 0 0 0
## Cl.thickness Cell.size Cell.shape Marg.adhesion Epith.c.size
## 0 0 0 0 0
## Bare.nuclei Bl.cromatin Normal.nucleoli Mitoses Class
## 0 0 0 0 0
## Cl.thickness Cell.size Cell.shape Marg.adhesion Epith.c.size
## 0 0 0 0 0
## Bare.nuclei Bl.cromatin Normal.nucleoli Mitoses Class
## 0 0 0 0 0
Berdasarkan hasil pemeriksaan, terdapat 14 nilai hilang pada variabel Bare.nuclei dalam data training dan 2 nilai hilang dalam data testing. Penanganan dilakukan menggunakan metode Predictive Mean Matching (PMM) melalui fungsi mice() dengan 5 iterasi. Setelah proses imputasi, seluruh variabel pada data training dan testing tidak lagi memiliki nilai hilang (NA), sehingga data siap digunakan untuk pembentukan model Classification Tree.
Beikut ini hasil pembentukan dan visualisasi classification tree pada data:
## n= 490
##
## node), split, n, loss, yval, (yprob)
## * denotes terminal node
##
## 1) root 490 169 benign (0.655102041 0.344897959)
## 2) Cell.size< 2.5 309 11 benign (0.964401294 0.035598706)
## 4) Bare.nuclei< 3.5 294 2 benign (0.993197279 0.006802721) *
## 5) Bare.nuclei>=3.5 15 6 malignant (0.400000000 0.600000000) *
## 3) Cell.size>=2.5 181 23 malignant (0.127071823 0.872928177)
## 6) Bare.nuclei< 1.5 22 9 benign (0.590909091 0.409090909)
## 12) Cell.size< 3.5 12 0 benign (1.000000000 0.000000000) *
## 13) Cell.size>=3.5 10 1 malignant (0.100000000 0.900000000) *
## 7) Bare.nuclei>=1.5 159 10 malignant (0.062893082 0.937106918) *
Berdasarkan visualisasi Classification Tree, variabel Cell.size menjadi pemisah utama dalam mengklasifikasikan kanker payudara, kemudian diikuti oleh variabel Bare.nuclei. Pohon tersebut menghasilkan lima simpul akhir yang mengklasifikasikan observasi ke dalam kelas benign (jinak) dan malignant (ganas) berdasarkan nilai karakteristik sel. Setiap percabangan menunjukkan aturan pemisahan, sedangkan simpul akhir menunjukkan kelas prediksi beserta proporsi observasi pada simpul tersebut. Hasil ini menunjukkan bahwa ukuran sel dan jumlah inti sel telanjang berperan dalam membedakan kedua kelas kanker payudara pada model yang terbentuk.
Berikut ini analisis variable importance dari data:
## Cell.size Cell.shape Bare.nuclei Bl.cromatin Epith.c.size
## 168.889329 135.479084 131.354049 122.800871 117.603541
## Normal.nucleoli Cl.thickness Marg.adhesion
## 108.335939 8.194262 6.855057
Berdasarkan grafik Variable Importance Classification Tree, variabel Cell.size memiliki tingkat kepentingan tertinggi dalam pembentukan model, diikuti oleh Cell.shape dan Bare.nuclei. Selanjutnya, variabel Bl.cromatin, Epith.c.size, dan Normal.nucleoli juga memberikan kontribusi terhadap proses klasifikasi, sedangkan Cl.thickness dan Marg.adhesion memiliki tingkat kepentingan paling rendah. Hasil ini menunjukkan bahwa ukuran sel merupakan variabel yang paling berperan dalam membentuk pemisahan kelas kanker jinak (benign) dan ganas (malignant) pada model Classification Tree yang diperoleh.
Berikut ini hasil evaluasi model classification tree awal dari data:
## Aktual
## Prediksi benign malignant
## benign 119 0
## malignant 18 72
## Confusion Matrix and Statistics
##
## Reference
## Prediction benign malignant
## benign 119 0
## malignant 18 72
##
## Accuracy : 0.9139
## 95% CI : (0.8673, 0.9482)
## No Information Rate : 0.6555
## P-Value [Acc > NIR] : < 2.2e-16
##
## Kappa : 0.82
##
## Mcnemar's Test P-Value : 6.151e-05
##
## Sensitivity : 1.0000
## Specificity : 0.8686
## Pos Pred Value : 0.8000
## Neg Pred Value : 1.0000
## Prevalence : 0.3445
## Detection Rate : 0.3445
## Detection Prevalence : 0.4306
## Balanced Accuracy : 0.9343
##
## 'Positive' Class : malignant
##
Berdasarkan hasil evaluasi Classification Tree awal, diperoleh nilai accuracy sebesar 91,39%, yang menunjukkan bahwa model mampu mengklasifikasikan sebagian besar data pengujian dengan benar. Nilai sensitivity sebesar 100% menunjukkan bahwa seluruh 72 data kanker ganas berhasil diklasifikasikan dengan benar, sedangkan specificity sebesar 86,86% menunjukkan bahwa 119 dari 137 data kanker jinak berhasil dikenali dengan benar. Nilai precision sebesar 80% menunjukkan bahwa dari seluruh data yang diprediksi ganas, sebanyak 80% benar-benar termasuk kelas ganas. Secara keseluruhan, model memiliki balanced accuracy sebesar 93,43%, sehingga menunjukkan kemampuan klasifikasi yang baik, khususnya dalam mendeteksi kanker ganas.
Berikut ini hasil penentuan CP terbaik dari data:
##
## Classification tree:
## rpart(formula = Class ~ ., data = data_train, method = "class",
## cp = 0.008)
##
## Variables actually used in tree construction:
## [1] Bare.nuclei Cell.size
##
## Root node error: 169/490 = 0.3449
##
## n= 490
##
## CP nsplit rel error xerror xstd
## 1 0.798817 0 1.00000 1.00000 0.062260
## 2 0.035503 1 0.20118 0.24852 0.036667
## 3 0.017751 3 0.13018 0.20118 0.033284
## 4 0.008000 4 0.11243 0.17751 0.031402
## [1] 0.008
Berdasarkan hasil tabel kompleksitas pohon (Complexity Parameter), diperoleh nilai CP terbaik sebesar 0,008, dengan jumlah percabangan (nsplit) sebanyak 4 dan nilai kesalahan validasi silang (xerror) sebesar 0,17751. Nilai tersebut dipilih karena memiliki nilai xerror paling rendah dibandingkan nilai CP lainnya, sehingga digunakan sebagai dasar pemangkasan (pruning) untuk menyederhanakan pohon klasifikasi. Hasil ini menunjukkan bahwa model dengan CP sebesar 0,008 merupakan pilihan terbaik berdasarkan kriteria kesalahan validasi silang pada tabel tersebut.
Berikut ini hasil pruning classification tree dari data:
## n= 490
##
## node), split, n, loss, yval, (yprob)
## * denotes terminal node
##
## 1) root 490 169 benign (0.655102041 0.344897959)
## 2) Cell.size< 2.5 309 11 benign (0.964401294 0.035598706)
## 4) Bare.nuclei< 3.5 294 2 benign (0.993197279 0.006802721) *
## 5) Bare.nuclei>=3.5 15 6 malignant (0.400000000 0.600000000) *
## 3) Cell.size>=2.5 181 23 malignant (0.127071823 0.872928177)
## 6) Bare.nuclei< 1.5 22 9 benign (0.590909091 0.409090909)
## 12) Cell.size< 3.5 12 0 benign (1.000000000 0.000000000) *
## 13) Cell.size>=3.5 10 1 malignant (0.100000000 0.900000000) *
## 7) Bare.nuclei>=1.5 159 10 malignant (0.062893082 0.937106918) *
Berdasarkan visualisasi Classification Tree Setelah Pruning, struktur pohon masih menunjukkan variabel Cell.size sebagai pemisah utama, diikuti oleh Bare.nuclei pada beberapa percabangan. Model menghasilkan lima simpul akhir yang mengklasifikasikan data ke dalam kelas benign (jinak) dan malignant (ganas). Hasil pemangkasan dengan CP sebesar 0,008 belum mengubah struktur pohon secara berarti karena nilai tersebut merupakan CP terkecil pada tabel kompleksitas yang diperoleh, sehingga pohon yang dihasilkan masih mempertahankan percabangan yang sama seperti model awal.
Berikut ini hasil Evaluasi model setelah pruning dari data:
## Aktual
## Prediksi benign malignant
## benign 119 0
## malignant 18 72
## Confusion Matrix and Statistics
##
## Reference
## Prediction benign malignant
## benign 119 0
## malignant 18 72
##
## Accuracy : 0.9139
## 95% CI : (0.8673, 0.9482)
## No Information Rate : 0.6555
## P-Value [Acc > NIR] : < 2.2e-16
##
## Kappa : 0.82
##
## Mcnemar's Test P-Value : 6.151e-05
##
## Sensitivity : 1.0000
## Specificity : 0.8686
## Pos Pred Value : 0.8000
## Neg Pred Value : 1.0000
## Prevalence : 0.3445
## Detection Rate : 0.3445
## Detection Prevalence : 0.4306
## Balanced Accuracy : 0.9343
##
## 'Positive' Class : malignant
##
Berdasarkan hasil evaluasi Classification Tree setelah pruning, diperoleh nilai accuracy sebesar 91,39%, sensitivity sebesar 100%, specificity sebesar 86,86%, dan precision sebesar 80%. Model berhasil mengklasifikasikan 119 data kanker jinak dan 72 data kanker ganas dengan benar, sedangkan 18 data jinak salah diklasifikasikan sebagai ganas dan tidak terdapat data ganas yang salah diklasifikasikan sebagai jinak. Hasil evaluasi ini sama dengan model awal, sehingga proses pruning tidak mengubah kinerja klasifikasi model pada data testing.
Berikut ini hasil analisis kurva ROC dan AUC dari data:
## Actual Predicted Prob_Benign Prob_Malignant
## 5 benign benign 0.99319728 0.006802721
## 7 benign malignant 0.40000000 0.600000000
## 9 benign benign 0.99319728 0.006802721
## 12 benign benign 0.99319728 0.006802721
## 19 malignant malignant 0.06289308 0.937106918
## 27 benign benign 0.99319728 0.006802721
Berdasarkan output head(prediksi_final), model Classification Tree setelah pruning menghasilkan prediksi kelas dan probabilitas untuk masing-masing kelas, yaitu benign (jinak) dan malignant (ganas). Sebagai contoh, observasi pertama memiliki probabilitas sebesar 99,32% untuk kelas jinak dan 0,68% untuk kelas ganas sehingga diprediksi sebagai benign. Sementara itu, terdapat observasi yang aktualnya benign, tetapi diprediksi sebagai malignant dengan probabilitas 60%. Nilai probabilitas ini digunakan sebagai dasar untuk membentuk kurva ROC dan menghitung AUC guna mengevaluasi kemampuan model dalam membedakan kedua kelas kanker payudara.
Berikut ini hasil perbandingan model awal dan setelag pruning dari data:
## CP terbaik: 0.008
## AUC setelah pruning: 0.9628
Berdasarkan kurva ROC, model Classification Tree setelah pruning memperoleh nilai AUC sebesar 0,9628, yang menunjukkan kemampuan sangat baik dalam membedakan kelas kanker jinak (benign) dan ganas (malignant). Hasil perbandingan menunjukkan bahwa model awal dan model setelah pruning memiliki nilai evaluasi yang sama, yaitu accuracy sebesar 91,39%, sensitivity sebesar 100%, specificity sebesar 86,86%, dan precision sebesar 80%. Dengan CP terbaik sebesar 0,008, proses pruning tidak mengubah kinerja prediksi model pada data testing, sehingga kedua model memberikan hasil klasifikasi yang setara berdasarkan metrik yang dievaluasi.
Machine Learning adalah studi tentang algoritma untuk mempelajari bagaimana melakukan tugas-tugas tertentu yang dilakukan secara otomatis oleh orang-orang. Di sini, belajar mengacu pada kemampuan untuk melakukan berbagai kegiatan yang sudah ada atau untuk mengekstrapolasi kesimpulan baru dengan benar dari berbagai pola yang diamati sebelumnya. Salah satu subbidang kecerdasan buatan, Machine Learning, dapat berdampak pada sejumlah bidang lain, termasuk statistik, matematika, dan banyak bidang teoretis ilmu komputer. Intinya, tujuan machine learning adalah untuk mengembangkan algoritma yang dapat mengeksekusi sistem pembelajaran otonom dengan sangat sedikit masukan dari orang-orang pada umumnya.
Decision Tree merupakan salah satu metode supervised learning berbasis pohon yang dapat digunakan untuk membentuk aturan prediksi. Pada metode ini, data dibagi secara bertahap melalui proses splitting berdasarkan variabel prediktor sehingga terbentuk kelompok-kelompok data yang semakin homogen. Setiap percabangan pada pohon menunjukkan aturan pemisahan sedangkan simpul akhir (leaf node) menunjukkan hasil prediksi. Salah satu metode dalam Decision Tree adalah Classification and Regression Tree (CART). CART dapat digunakan untuk dua jenis pemodelan, yaitu klasifikasi untuk memprediksi kategori atau kelas regresi untuk memprediksi nilai numerik. Jika variabel respon berupa kategori, pohon yang terbentuk disebut pohon klasifikasi (Classification Tree), jika variabel respon berupa numerik kontinu disebut pohon regresi (Regression Tree).
Berdasarkan hasil analisis klasifikasi kanker payudara menggunakan metode Classification Tree pada dataset BreastCancer, dapat disimpulkan bahwa model berhasil mengklasifikasikan kanker payudara ke dalam dua kelas, yaitu benign (jinak) dan malignant (ganas). Sebelum pemodelan, dilakukan penanganan nilai hilang menggunakan metode Predictive Mean Matching (PMM) melalui MICE sehingga seluruh nilai hilang pada data training dan testing berhasil ditangani. Data kemudian dibagi menjadi 70% data training dan 30% data testing. Berdasarkan hasil pembentukan pohon klasifikasi, variabel Cell.size menjadi variabel yang paling penting dalam pemisahan kelas, diikuti oleh Cell.shape dan Bare.nuclei. Evaluasi model awal menghasilkan accuracy sebesar 91,39%, sensitivity sebesar 100%, specificity sebesar 86,86%, dan precision sebesar 80%. Setelah dilakukan pruning menggunakan nilai Complexity Parameter (CP) terbaik sebesar 0,008, diperoleh nilai evaluasi yang sama dengan model awal. Selain itu, model setelah pruning memperoleh nilai AUC sebesar 0,9628, yang menunjukkan kemampuan sangat baik dalam membedakan kelas kanker jinak dan ganas. Dengan demikian, model Classification Tree yang dibangun memiliki kinerja klasifikasi yang baik, terutama dalam mendeteksi kasus kanker ganas pada data pengujian. Namun, proses pruning belum memberikan perubahan terhadap kinerja prediksi berdasarkan metrik evaluasi yang digunakan.
Ketika menggunakan program R, diperlukan ketelitian dalam penulisan, memasukkan, melakukan perhitungan, dan hal lainnya dikarenakan jika salah maka tidak akan mendapatkan hasil yang diharapkan. Oleh karena itu, harus mengikuti prosedur yang ada. Ketelitian dalam menginterprestasikan output-nya agar tidak terjadi kekeliruan. Harus cermat dalam menggunakan fungsi yang akan gunakan.
Bintoro, P., Ratnasari., Wihardjo, E., Putri, I, P., Asari, A. (2024). Pengantar Machine Learning.
Fathurohman, A. (2021). Machine Learning Untuk Pendidikan: Mengapa Dan Bagaimana. JURNAL JITEK, Vol 1 No. 3 November (2021), Hal 57-62.
Fransiska, H. (2026). Modul Praktikum Machine Learning and Modern Prediction. Laboratorium Statistika, Universitas Bengkulu.
Khoeri, M., dan Mulyana, D. I. (2021). Implementasi Machine Learning dengan Decision Tree Algoritma C4.5 dalam Penerimaan Karyawan Baru pada PT. Gitareksa Dinamika Jakarta. Jurnal Sosial dan Teknologi (SOSTECH), Volume 1, Number 7, July 2021.