Perkembangan teknologi informasi menghasilkan data dalam jumlah besar yang dapat dimanfaatkan untuk membantu pengambilan keputusan, termasuk di bidang kesehatan. Salah satu pemanfaatannya adalah klasifikasi, yaitu proses menentukan kelas atau kategori suatu pengamatan berdasarkan karakteristik yang dimilikinya. Dalam bidang kesehatan, klasifikasi dapat digunakan untuk membantu membedakan kondisi pasien, misalnya tumor jinak (benign) dan ganas (malignant) pada kasus kanker payudara. Kanker payudara sendiri termasuk jenis kanker dengan jumlah kasus yang tinggi dan menjadi salah satu penyebab kematian terbesar di dunia, sehingga deteksi dan klasifikasi yang akurat menjadi hal yang penting (Robbaniyyah dkk., 2026).
Salah satu metode supervised learning yang banyak digunakan untuk klasifikasi adalah Decision Tree. Metode ini membagi data secara bertahap berdasarkan variabel prediktor sehingga terbentuk kelompok data yang semakin homogen, dan hasilnya disajikan dalam bentuk pohon yang mudah divisualisasikan serta diinterpretasikan. Salah satu algoritma Decision Tree yang umum digunakan adalah Classification and Regression Tree (CART). Apabila variabel respon berupa kategori, CART membentuk pohon klasifikasi (Classification Tree), sedangkan apabila variabel respon berupa numerik kontinu, CART membentuk pohon regresi (Regression Tree).
Oleh karena itu, praktikum Decision Tree dilakukan untuk memahami konsep dasar Decision Tree dan menerapkan metode CART pada kasus klasifikasi menggunakan RStudio. Melalui praktikum ini, praktikan diharapkan mampu membangun model Classification Tree, menganalisis tingkat kepentingan variabel, melakukan prediksi, melakukan pruning, serta mengevaluasi kinerja model menggunakan confusion matrix, kurva ROC, dan nilai AUC.
Berdasarkan latar belakang di atas, rumusan masalah yang dapat disimpulkan yaitu:
Berdasarkan rumusan masalah di atas, tujuan yang dapat disimpulkan yaitu:
Adapun manfaat dari praktikum ini yaitu:
Adapun batasan masalah dari praktikum ini, yaitu menggunakan dataset
Hitters dari package ISLR untuk memprediksi gaji
(Salary) pemain bisbol menggunakan Decision Tree
(Regression Tree). Lakukan pengecekan dan penanganan
missing value menggunakan na.omit(), kemudian bagi
data menjadi training dan testing. Selanjutnya, bangun
dan visualisasikan tree, analisis variable importance,
lakukan prediksi dan evaluasi menggunakan Mean Squared Error
(MSE), tentukan Complexity Parameter (CP) terbaik, lakukan
pruning, dan evaluasi kembali model menggunakan MSE. Tampilkan
dan interpretasikan setiap output!
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 (Fransiska, 2026).
Penelitian terdahulu menunjukkan bahwa Decision Tree telah banyak dimanfaatkan untuk klasifikasi dan prediksi penyakit kanker payudara. Mellina dkk. (2024) menerapkan algoritma Decision Tree ID3 dan C5.0 untuk memprediksi deteksi penyakit kanker payudara dan memperoleh hasil bahwa algoritma C5.0 memberikan hasil klasifikasi terbaik dibandingkan ID3 dengan akurasi sebesar 80%. Hal ini menunjukkan bahwa Decision Tree dapat digunakan sebagai salah satu pendekatan untuk membantu proses klasifikasi pada data medis.
Menurut Fransiska (2026), Decision Tree memiliki beberapa karakteristik, yaitu mudah dipahami dan diinterpretasikan karena dapat divisualisasikan dalam bentuk pohon, dapat menggunakan variabel prediktor numerik maupun kategorik, membagi data secara bertahap sehingga kelompok yang terbentuk semakin homogen, dapat digunakan untuk klasifikasi maupun regresi, serta dapat disederhanakan melalui pruning untuk mengurangi kompleksitas pohon dan risiko overfitting. Komponen utama dalam Decision Tree adalah sebagai berikut (Fransiska, 2026):
| Komponen | Keterangan |
|---|---|
| Root node | Simpul awal atau simpul paling atas yang memuat seluruh data sebelum dilakukan pemisahan |
| Intermediate node | Simpul di antara root node dan leaf node yang masih dapat mengalami pemisahan |
| Leaf node | Simpul akhir yang menunjukkan hasil prediksi, berupa kelas pada klasifikasi dan nilai numerik pada regresi |
| Branch | Cabang yang menghubungkan satu simpul dengan simpul lainnya berdasarkan aturan tertentu |
| Attribute | Variabel prediktor yang digunakan sebagai dasar untuk melakukan pemisahan data |
| Splitting criteria | Kriteria yang digunakan untuk menentukan pemisahan terbaik, yaitu Gini Index atau Entropy pada klasifikasi dan ukuran kesalahan seperti MSE pada regresi |
| Decision rules | Aturan keputusan yang terbentuk dari jalur percabangan dan digunakan untuk menghasilkan prediksi |
| Pruning | Proses pemangkasan cabang yang kurang penting untuk menyederhanakan pohon dan mengurangi risiko overfitting |
Classification and Regression Tree (CART) dapat digunakan untuk dua jenis pemodelan, yaitu klasifikasi untuk memprediksi kategori atau kelas, dan regresi untuk memprediksi nilai numerik. Jika variabel respon berupa kategori, pohon yang terbentuk disebut pohon klasifikasi (Classification Tree), sedangkan jika variabel respon berupa numerik kontinu disebut pohon regresi (Regression Tree) (Fransiska, 2026).
Pada Classification Tree, proses pemisahan data dilakukan dengan memilih aturan yang mampu menghasilkan simpul-simpul yang semakin homogen. Ukuran yang digunakan dalam proses pemisahan tersebut antara lain Entropy, Information Gain, dan Gini Index (Fransiska, 2026):
\[Entropy(t) = -\sum_{k=1}^{K} p_k \log_2(p_k)\]
\[IG = E(D) - \sum_{j=1}^{J} \frac{|D_j|}{|D|} E(D_j)\]
\[Gini(t) = 1 - \sum_{k=1}^{K} p_k^2\]
Pada penelitian Robbaniyyah dkk. (2026), algoritma CART diterapkan pada model klasifikasi kanker payudara berdasarkan data rekam medis pasien. Model yang dibangun dievaluasi menggunakan confusion matrix dan menghasilkan akurasi sebesar 94,74%, spesifisitas sebesar 95,77%, serta recall, precision, dan F1-Score masing-masing sebesar 93,02%, sehingga CART dinilai dapat diterapkan dengan baik pada model klasifikasi.
Algoritma CART dilakukan melalui tahapan mencari pemisahan terbaik dari setiap variabel prediktor, menentukan variabel dan pemisah terbaik, kemudian melakukan pemisahan serta memeriksa apakah proses perlu dilanjutkan. Tahapan tersebut dilakukan berulang pada setiap simpul yang terbentuk dan berhenti apabila simpul sudah cukup homogen, nilai variabel prediktor tidak memungkinkan pemisahan lebih lanjut, jumlah amatan dalam simpul lebih kecil dari batas minimum, atau kedalaman pohon telah mencapai batas maksimum (Fransiska, 2026).
Missing value adalah kondisi ketika terdapat nilai yang tidak tersedia pada suatu observasi dalam dataset. Data yang mengandung missing value perlu ditangani sebelum dilakukan pemodelan agar analisis dapat berjalan dengan baik. Salah satu pendekatan yang dapat digunakan adalah listwise deletion, yaitu menghapus baris pengamatan yang memiliki nilai hilang. Pramudita dkk. (2025) membahas listwise deletion sebagai salah satu pendekatan penanganan missing value dan membandingkannya dengan metode imputasi.
Pruning merupakan proses pemangkasan cabang yang kurang penting untuk menyederhanakan pohon dan mengurangi risiko overfitting. Pada paket rpart, kompleksitas pohon dikendalikan oleh parameter complexity parameter (CP). Nilai CP terbaik umumnya dipilih berdasarkan nilai cross-validation error (xerror) terkecil pada tabel CP (Fransiska, 2026).
Evaluasi Classification Tree dilakukan dengan membandingkan kelas aktual dan kelas hasil prediksi yang disajikan dalam confusion matrix (Fransiska, 2026):
| Predicted Positive | Predicted Negative | |
|---|---|---|
| Actual Positive | True Positive (TP) | False Negative (FN) |
| Actual Negative | False Positive (FP) | True Negative (TN) |
Berdasarkan confusion matrix, ukuran evaluasi yang dapat digunakan adalah:
\[Accuracy = \frac{TP+TN}{TP+TN+FP+FN} \qquad Precision = \frac{TP}{TP+FP}\]
\[Recall = \frac{TP}{TP+FN} \qquad Specificity = \frac{TN}{TN+FP}\]
\[F1\text{-}Score = 2\left(\frac{Precision \times Recall}{Precision + Recall}\right)\]
Selain itu, kemampuan model dalam membedakan kelas pada berbagai nilai ambang (threshold) dapat dinilai melalui kurva ROC (Receiver Operating Characteristic) dan nilai AUC (Area Under the Curve). Semakin mendekati 1 nilai AUC, semakin baik kemampuan model dalam membedakan kedua kelas.
Jenis data yang digunakan dalam penelitian ini adalah data numerik
dan kategorik. Data yang digunakan merupakan dataset
Hitters yang tersedia pada package ISLR di R. Data ini
merupakan data sekunder yang berisi informasi mengenai pemain bisbol,
termasuk karakteristik pemain serta gaji (Salary) yang
diperoleh. Data yang memiliki missing value dihapus menggunakan
fungsi na.omit() sebelum dilakukan pemodelan.
Penelitian ini menggunakan variabel Salary sebagai variabel respons dan variabel lainnya sebagai variabel prediktor. Variabel Salary menunjukkan gaji pemain bisbol dalam ribuan dolar, sedangkan variabel prediktor mencakup karakteristik pemain, seperti pengalaman bermain (Years), jumlah pertandingan yang dimainkan (Games), jumlah pukulan (Hits), jumlah home run (HmRun), dan karakteristik statistik permainan lainnya. Variabel League, Division, dan NewLeague merupakan variabel kategorik, sedangkan variabel lainnya berupa numerik. Variabel Salary diprediksi menggunakan metode Decision Tree (Regression Tree) untuk mengetahui pola hubungan antara karakteristik pemain dan gaji yang diperoleh.
Berikut adalah langkah-langkah yang dilakukan dalam analisis:
na.omit().Regression Tree merupakan metode machine learning yang digunakan untuk memprediksi variabel respons numerik melalui pembentukan pohon keputusan. Penelitian ini menggunakan dataset Hitters dari package ISLR untuk memprediksi variabel Salary berdasarkan sejumlah variabel prediktor. Tahapan analisis meliputi pemeriksaan dan penanganan missing value, pembagian data menjadi training dan testing, pembentukan dan visualisasi pohon regresi, analisis variabel importance, evaluasi model menggunakan Mean Squared Error (MSE), penentuan nilai Complexity Parameter (CP) terbaik, serta pruning untuk memperoleh model yang lebih sederhana.
Berikut adalah hasil analisis yang diperoleh dalam pengecekkan missing value data.
## 'data.frame': 322 obs. of 20 variables:
## $ AtBat : int 293 315 479 496 321 594 185 298 323 401 ...
## $ Hits : int 66 81 130 141 87 169 37 73 81 92 ...
## $ HmRun : int 1 7 18 20 10 4 1 0 6 17 ...
## $ Runs : int 30 24 66 65 39 74 23 24 26 49 ...
## $ RBI : int 29 38 72 78 42 51 8 24 32 66 ...
## $ Walks : int 14 39 76 37 30 35 21 7 8 65 ...
## $ Years : int 1 14 3 11 2 11 2 3 2 13 ...
## $ CAtBat : int 293 3449 1624 5628 396 4408 214 509 341 5206 ...
## $ CHits : int 66 835 457 1575 101 1133 42 108 86 1332 ...
## $ CHmRun : int 1 69 63 225 12 19 1 0 6 253 ...
## $ CRuns : int 30 321 224 828 48 501 30 41 32 784 ...
## $ CRBI : int 29 414 266 838 46 336 9 37 34 890 ...
## $ CWalks : int 14 375 263 354 33 194 24 12 8 866 ...
## $ League : Factor w/ 2 levels "A","N": 1 2 1 2 2 1 2 1 2 1 ...
## $ Division : Factor w/ 2 levels "E","W": 1 2 2 1 1 2 1 2 2 1 ...
## $ PutOuts : int 446 632 880 200 805 282 76 121 143 0 ...
## $ Assists : int 33 43 82 11 40 421 127 283 290 0 ...
## $ Errors : int 20 10 14 3 4 25 7 9 19 0 ...
## $ Salary : num NA 475 480 500 91.5 750 70 100 75 1100 ...
## $ NewLeague: Factor w/ 2 levels "A","N": 1 2 1 2 2 1 1 1 2 1 ...
## AtBat Hits HmRun Runs RBI Walks Years CAtBat CHits CHmRun
## -Andy Allanson 293 66 1 30 29 14 1 293 66 1
## -Alan Ashby 315 81 7 24 38 39 14 3449 835 69
## -Alvin Davis 479 130 18 66 72 76 3 1624 457 63
## -Andre Dawson 496 141 20 65 78 37 11 5628 1575 225
## -Andres Galarraga 321 87 10 39 42 30 2 396 101 12
## -Alfredo Griffin 594 169 4 74 51 35 11 4408 1133 19
## CRuns CRBI CWalks League Division PutOuts Assists Errors
## -Andy Allanson 30 29 14 A E 446 33 20
## -Alan Ashby 321 414 375 N W 632 43 10
## -Alvin Davis 224 266 263 A W 880 82 14
## -Andre Dawson 828 838 354 N E 200 11 3
## -Andres Galarraga 48 46 33 N E 805 40 4
## -Alfredo Griffin 501 336 194 A W 282 421 25
## Salary NewLeague
## -Andy Allanson NA A
## -Alan Ashby 475.0 N
## -Alvin Davis 480.0 A
## -Andre Dawson 500.0 N
## -Andres Galarraga 91.5 N
## -Alfredo Griffin 750.0 A
## AtBat Hits HmRun Runs
## Min. : 16.0 Min. : 1 Min. : 0.00 Min. : 0.00
## 1st Qu.:255.2 1st Qu.: 64 1st Qu.: 4.00 1st Qu.: 30.25
## Median :379.5 Median : 96 Median : 8.00 Median : 48.00
## Mean :380.9 Mean :101 Mean :10.77 Mean : 50.91
## 3rd Qu.:512.0 3rd Qu.:137 3rd Qu.:16.00 3rd Qu.: 69.00
## Max. :687.0 Max. :238 Max. :40.00 Max. :130.00
##
## RBI Walks Years CAtBat
## Min. : 0.00 Min. : 0.00 Min. : 1.000 Min. : 19.0
## 1st Qu.: 28.00 1st Qu.: 22.00 1st Qu.: 4.000 1st Qu.: 816.8
## Median : 44.00 Median : 35.00 Median : 6.000 Median : 1928.0
## Mean : 48.03 Mean : 38.74 Mean : 7.444 Mean : 2648.7
## 3rd Qu.: 64.75 3rd Qu.: 53.00 3rd Qu.:11.000 3rd Qu.: 3924.2
## Max. :121.00 Max. :105.00 Max. :24.000 Max. :14053.0
##
## CHits CHmRun CRuns CRBI
## Min. : 4.0 Min. : 0.00 Min. : 1.0 Min. : 0.00
## 1st Qu.: 209.0 1st Qu.: 14.00 1st Qu.: 100.2 1st Qu.: 88.75
## Median : 508.0 Median : 37.50 Median : 247.0 Median : 220.50
## Mean : 717.6 Mean : 69.49 Mean : 358.8 Mean : 330.12
## 3rd Qu.:1059.2 3rd Qu.: 90.00 3rd Qu.: 526.2 3rd Qu.: 426.25
## Max. :4256.0 Max. :548.00 Max. :2165.0 Max. :1659.00
##
## CWalks League Division PutOuts Assists
## Min. : 0.00 A:175 E:157 Min. : 0.0 Min. : 0.0
## 1st Qu.: 67.25 N:147 W:165 1st Qu.: 109.2 1st Qu.: 7.0
## Median : 170.50 Median : 212.0 Median : 39.5
## Mean : 260.24 Mean : 288.9 Mean :106.9
## 3rd Qu.: 339.25 3rd Qu.: 325.0 3rd Qu.:166.0
## Max. :1566.00 Max. :1378.0 Max. :492.0
##
## Errors Salary NewLeague
## Min. : 0.00 Min. : 67.5 A:176
## 1st Qu.: 3.00 1st Qu.: 190.0 N:146
## Median : 6.00 Median : 425.0
## Mean : 8.04 Mean : 535.9
## 3rd Qu.:11.00 3rd Qu.: 750.0
## Max. :32.00 Max. :2460.0
## NAs :59
## [1] 322 20
## AtBat Hits HmRun Runs RBI Walks Years CAtBat
## 0 0 0 0 0 0 0 0
## CHits CHmRun CRuns CRBI CWalks League Division PutOuts
## 0 0 0 0 0 0 0 0
## Assists Errors Salary NewLeague
## 0 0 59 0
## AtBat Hits HmRun Runs RBI Walks Years CAtBat
## 0 0 0 0 0 0 0 0
## CHits CHmRun CRuns CRBI CWalks League Division PutOuts
## 0 0 0 0 0 0 0 0
## Assists Errors Salary NewLeague
## 0 0 0 0
## [1] 263 20
Berdasarkan hasil pemeriksaan awal, dataset Hitters terdiri atas 322 observasi dan 20 variabel. Hasil pengecekan menunjukkan bahwa terdapat 59 missing value pada variabel Salary, sedangkan variabel lainnya tidak memiliki nilai yang hilang. Penanganan dilakukan menggunakan fungsi na.omit() dengan menghapus observasi yang memiliki nilai hilang. Setelah proses pembersihan, jumlah data menjadi 263 observasi dengan 20 variabel dan tidak ditemukan lagi missing value. Dengan demikian, data yang digunakan dalam analisis selanjutnya merupakan data lengkap.
Pembagian data dilakukan untuk memisahkan data yang digunakan dalam pembentukan model dan data yang digunakan untuk mengevaluasi kemampuan prediksi model. Pada penelitian ini, data dibagi menjadi 80% data training dan 20% data testing. Fungsi createDataPartition() digunakan agar pembagian data mempertimbangkan distribusi variabel respons Salary, sedangkan set.seed(234) digunakan untuk menjaga agar hasil pembagian data dapat direproduksi.
## [1] 212 20
## [1] 51 20
Berdasarkan hasil pembagian data, diperoleh 212 observasi sebagai data training dan 51 observasi sebagai data testing. Data training digunakan untuk membentuk model Regression Tree, sedangkan data testing digunakan untuk mengukur kemampuan model dalam memprediksi nilai Salary pada data yang tidak digunakan selama proses pelatihan. Pembagian ini memungkinkan evaluasi kinerja model dilakukan secara terpisah dari proses pembentukan model.
Pembentukan model Regression Tree dilakukan menggunakan fungsi rpart() dengan variabel Salary sebagai variabel respons dan seluruh variabel lainnya sebagai prediktor. Metode “anova” digunakan karena variabel respons berupa data numerik. Nilai cp = 0.001 ditetapkan agar model awal dapat membentuk pohon dengan tingkat kompleksitas yang cukup tinggi sebelum dilakukan pemangkasan (pruning).Berikut merupakan hasil pembentukan dan visualisasi model Regression Tree.
## n= 212
##
## node), split, n, deviance, yval
## * denotes terminal node
##
## 1) root 212 46453330.00 544.9977
## 2) CRBI< 307.5 124 9065008.00 309.6062
## 4) CAtBat< 1428 79 4910701.00 201.3143
## 8) RBI>=16.5 72 561989.70 169.0069
## 16) CRuns< 101.5 43 66050.42 114.8837 *
## 17) CRuns>=101.5 29 183208.80 249.2586
## 34) CWalks< 117.5 20 45028.44 213.3750 *
## 35) CWalks>=117.5 9 55199.50 329.0000 *
## 9) RBI< 16.5 7 3500575.00 533.6190 *
## 5) CAtBat>=1428 45 1601443.00 499.7185
## 10) Hits< 118 24 540337.00 417.7014
## 20) NewLeague=A 14 132261.00 358.0239 *
## 21) NewLeague=N 10 288412.60 501.2500 *
## 11) Hits>=118 21 715156.00 593.4524
## 22) CHmRun< 23 7 267142.90 457.8571 *
## 23) CHmRun>=23 14 254959.40 661.2500 *
## 3) CRBI>=307.5 88 20836090.00 876.6857
## 6) AtBat< 424 32 2174114.00 543.1250
## 12) CHmRun< 122.5 21 777955.40 453.5318
## 24) Years>=10.5 13 95525.68 360.8975 *
## 25) Years< 10.5 8 389599.20 604.0625 *
## 13) CHmRun>=122.5 11 905784.70 714.1666 *
## 7) AtBat>=424 56 13067050.00 1067.2920
## 14) CHmRun< 256.5 47 6300814.00 964.6910
## 28) Walks< 68.5 37 3302243.00 863.0534
## 56) Assists>=236.5 11 324834.50 645.1948 *
## 57) Assists< 236.5 26 2234440.00 955.2243
## 114) Runs< 78.5 19 760675.30 860.8772 *
## 115) Runs>=78.5 7 845580.20 1211.3100 *
## 29) Walks>=68.5 10 1202151.00 1340.7500 *
## 15) CHmRun>=256.5 9 3687698.00 1603.0960 *
## CRBI CAtBat CRuns CHits CWalks CHmRun
## 21370107.10 18625493.78 18296949.70 17732855.43 15734994.14 15724153.17
## Hits AtBat Runs Walks RBI HmRun
## 6379536.90 6254013.74 5973517.41 5245870.75 4944750.92 2667878.66
## Years Assists Errors PutOuts NewLeague League
## 1597627.90 1126033.19 607859.11 179642.11 119663.41 95730.73
Pohon regresi yang terbentuk menunjukkan proses pembagian data berdasarkan variabel prediktor yang digunakan untuk memperkirakan nilai Salary. Setiap percabangan menggambarkan aturan pemisahan berdasarkan nilai variabel tertentu, sedangkan simpul terminal menunjukkan nilai prediksi Salary untuk observasi yang memenuhi aturan pada jalur tersebut. Struktur pohon dapat digunakan untuk melihat hubungan antara karakteristik pemain bisbol dan nilai gaji yang diprediksi oleh model.
Selanjutnya, analisis variable importance dilakukan untuk mengetahui variabel prediktor yang memberikan kontribusi relatif besar dalam pembentukan model.
Berdasarkan grafik variable importance, variabel dengan nilai
kepentingan tertinggi merupakan variabel yang memberikan kontribusi
relatif paling besar dalam proses pembentukan pohon regresi. Semakin
tinggi nilai importance, semakin besar kontribusi variabel tersebut
terhadap pembagian simpul pada pohon. Sebaliknya, variabel dengan nilai
importance lebih rendah memiliki kontribusi relatif yang lebih kecil.
Urutan dan nama variabel yang paling penting ditentukan berdasarkan
hasil grafik yang diperoleh dari pemodelan.
Setelah model Regression Tree terbentuk, dilakukan prediksi terhadap data testing menggunakan fungsi predict(). Nilai prediksi kemudian dibandingkan dengan nilai Salary aktual. Evaluasi kinerja model dilakukan menggunakan Mean Squared Error (MSE), yaitu rata-rata kuadrat selisih antara nilai aktual dan nilai prediksi. Nilai MSE yang lebih kecil menunjukkan bahwa kesalahan prediksi model secara rata-rata lebih rendah.
## Aktual Prediksi
## -Al Newman 70 533.6190
## -Argenis Salazar 100 114.8837
## -Andre Thornton 1100 714.1666
## -Andy VanSlyke 550 501.2500
## -Alan Wiggins 700 358.0239
## -Buddy Biancalana 175 533.6190
## [1] 76127.9
Berdasarkan hasil prediksi pada data testing, model Regression Tree awal menghasilkan nilai Mean Squared Error (MSE) sebesar 76.127,90. Nilai tersebut menunjukkan besarnya rata-rata kuadrat selisih antara nilai Salary aktual dan nilai prediksi model. Semakin kecil nilai MSE, semakin rendah kesalahan prediksi yang dihasilkan. Nilai MSE ini digunakan sebagai dasar pembanding untuk mengevaluasi kinerja model setelah dilakukan pruning.
Selanjutnya, Complexity Parameter (CP) digunakan untuk mengendalikan kompleksitas pohon. Nilai CP yang sesuai dapat dipilih berdasarkan nilai cross-validation error terkecil pada tabel CP model.
##
## Regression tree:
## rpart(formula = Salary ~ ., data = Hitters.train, method = "anova",
## cp = 0.001)
##
## Variables actually used in tree construction:
## [1] Assists AtBat CAtBat CHmRun CRBI CRuns CWalks
## [8] Hits NewLeague RBI Runs Walks Years
##
## Root node error: 46453326/212 = 219119
##
## n= 212
##
## CP nsplit rel error xerror xstd
## 1 0.3563195 0 1.00000 1.00816 0.15341
## 2 0.1204419 1 0.64368 0.68692 0.11946
## 3 0.0662717 2 0.52324 0.72977 0.12157
## 4 0.0549555 3 0.45697 0.71152 0.12765
## 5 0.0386715 4 0.40201 0.64994 0.12969
## 6 0.0182578 5 0.36334 0.65490 0.12969
## 7 0.0159939 6 0.34508 0.69478 0.13070
## 8 0.0135229 7 0.32909 0.69799 0.13038
## 9 0.0105563 8 0.31557 0.72500 0.13524
## 10 0.0074473 9 0.30501 0.72502 0.13537
## 11 0.0067321 10 0.29756 0.72499 0.13647
## 12 0.0063038 11 0.29083 0.72336 0.13656
## 13 0.0041559 12 0.28453 0.72223 0.13582
## 14 0.0025760 13 0.28037 0.72288 0.13581
## 15 0.0017863 14 0.27779 0.72296 0.13581
## 16 0.0010000 15 0.27601 0.72057 0.13581
## [1] 0.03867153
Berdasarkan grafik Complexity Parameter (CP), terlihat bahwa nilai Cross-Validated Relative Error mengalami penurunan cukup besar pada awal pemangkasan, kemudian cenderung stabil seiring bertambahnya jumlah splits. Nilai galat terendah terlihat pada pohon dengan sekitar empat splits, sebelum kembali meningkat pada jumlah splits berikutnya. Hal ini menunjukkan bahwa penambahan jumlah splits tidak selalu meningkatkan kemampuan prediksi model. Oleh karena itu, pemilihan CP terbaik dilakukan dengan melihat nilai xerror terkecil pada tabel CP untuk memperoleh model dengan tingkat kesalahan prediksi yang lebih rendah.
## n= 212
##
## node), split, n, deviance, yval
## * denotes terminal node
##
## 1) root 212 46453330 544.9977
## 2) CRBI< 307.5 124 9065008 309.6062
## 4) CAtBat< 1428 79 4910701 201.3143 *
## 5) CAtBat>=1428 45 1601443 499.7185 *
## 3) CRBI>=307.5 88 20836090 876.6857
## 6) AtBat< 424 32 2174114 543.1250 *
## 7) AtBat>=424 56 13067050 1067.2920
## 14) CHmRun< 256.5 47 6300814 964.6910 *
## 15) CHmRun>=256.5 9 3687698 1603.0960 *
## CRBI CRuns CAtBat CHits CHmRun CWalks AtBat Hits
## 20077896 17544847 17343995 16603144 14740336 14650933 5594926 5245243
## Runs RBI Walks HmRun Years
## 4545877 3671670 3314364 2098097 1304797
Berdasarkan pohon regresi setelah pruning, variabel CRBI menjadi pemisah utama dalam memprediksi Salary. Pemain dengan nilai CRBI kurang dari 308 dipisahkan kembali berdasarkan variabel CAtBat dengan batas 1.428. Sementara itu, pemain dengan nilai CRBI minimal 308 dipisahkan berdasarkan variabel AtBat dengan batas 424. Pada cabang berikutnya, variabel CHmRun digunakan untuk membedakan pemain berdasarkan nilai 257.
Nilai pada setiap simpul akhir menunjukkan prediksi Salary berdasarkan karakteristik pemain pada cabang tersebut. Pemain dengan CRBI minimal 308, AtBat minimal 424, dan CHmRun minimal 257 memiliki prediksi Salary tertinggi, yaitu sekitar 1.603, sedangkan pemain dengan CRBI kurang dari 308 dan CAtBat kurang dari 1.428 memiliki prediksi Salary sekitar 201. Hasil ini menunjukkan bahwa CRBI, CAtBat, AtBat, dan CHmRun berperan dalam membentuk prediksi Salary pada model regresi pohon yang telah dipangkas..
## Aktual Prediksi
## -Al Newman 70 201.3143
## -Argenis Salazar 100 201.3143
## -Andre Thornton 1100 543.1250
## -Andy VanSlyke 550 499.7185
## -Alan Wiggins 700 499.7185
## -Buddy Biancalana 175 201.3143
## [1] 61881.45
Berdasarkan hasil evaluasi pada data testing, model Regression Tree setelah pruning menghasilkan nilai MSE sebesar 61.881,45. Nilai ini menunjukkan rata-rata kuadrat kesalahan prediksi antara nilai Salary aktual dan nilai yang diprediksi oleh model setelah pemangkasan. Nilai MSE tersebut lebih rendah dibandingkan dengan MSE model awal, yaitu sebesar 76.127,90. Hal ini menunjukkan bahwa model setelah pruning menghasilkan kesalahan prediksi yang lebih rendah pada data testing yang digunakan.
## Model MSE
## 1 Sebelum Pruning 76127.90
## 2 Setelah Pruning 61881.45
Berdasarkan hasil perbandingan, model Regression Tree awal memiliki MSE
sebesar 76.127,90, sedangkan model setelah pruning memiliki MSE sebesar
61.881,45. Terjadi penurunan MSE sebesar 14.246,45 atau sekitar 18,71%
setelah dilakukan pruning. Hasil ini menunjukkan bahwa pemangkasan pohon
menghasilkan model yang lebih sederhana dengan kesalahan prediksi yang
lebih rendah pada data testing. Dengan demikian, berdasarkan ukuran MSE
pada data pengujian tersebut, model Regression Tree setelah pruning
memiliki kinerja prediksi yang lebih baik dibandingkan dengan model
awal.
Decision Tree merupakan metode supervised learning yang membentuk pohon keputusan melalui pemisahan data berdasarkan variabel prediktor. Pada metode CART (Classification and Regression Tree), pemisahan dilakukan agar kelompok data semakin homogen. Metode ini mudah dipahami dan dapat digunakan untuk klasifikasi maupun regresi, serta disederhanakan melalui proses pruning.
Pembuatan Classification Tree di RStudio dilakukan dengan menyiapkan data, menentukan variabel respons dan prediktor, membentuk serta memvisualisasikan pohon, kemudian mengevaluasi hasilnya menggunakan confusion matrix. Kinerja model dapat dinilai melalui accuracy, precision, recall, specificity, dan F1-Score. Proses pruning juga dapat dilakukan untuk menyederhanakan pohon.
Berdasarkan analisis dataset Hitters, model yang digunakan
adalah Regression Tree karena variabel Salary berupa
data numerik. Setelah missing value dihapus menggunakan fungsi
na.omit(), diperoleh 263 observasi yang dibagi menjadi 212
data training dan 51 data testing. Nilai MSE menurun
dari 76.127,90 sebelum pruning menjadi 61.881,45 setelah
pruning, atau turun sebesar 18,71%. Dengan demikian, model
setelah pruning memiliki kesalahan prediksi yang lebih rendah.
Variabel yang berperan penting dalam pohon hasil pruning adalah
CRBI, CAtBat, AtBat, dan CHmRun.
Praktikan dapat melakukan pembelajaran lebih lanjut mengenai Decision Tree dengan R agar semakin paham. Dapat dilakukan melalui sumber-sumber belajar lainnya. Dalam penulisan laporan praktikan juga diharapkan untuk selalu teliti dan memperhatikan tata cara penulisan yang baik.
Fransiska, H. (2026). Modul Praktikum Machine Learning dan Model Prediction. Universitas Bengkulu: Bengkulu.
Mellina, A. D. F., Suhartono, S., & Yaqin, M. A. (2024). Prediksi deteksi penyakit kanker payudara dengan menggunakan algoritma decision tree. JISKA (Jurnal Informatika Sunan Kalijaga), 9(1), 70-78.
Pramudita, C., Wiccaksono, N. A. A., Hartiyah, A. K., Maisaroh, A., Khairisudin, I. (2025). Menangani Missing Value dengan Metode Imputasi Menggunakan Package MICE di R. Jurnal PRISMA, Prosiding Seminar Nasional Matematika, 8, 399-406.
Robbaniyyah, N. A., Asmawati, I., & Bahri, S. (2026). Breast cancer classification model using decision tree algorithm. Jurnal Matematika, Statistika dan Komputasi, 22(3), 617-626.