Ensemble learning merupakan pendekatan machine learning yang menggabungkan beberapa model untuk menghasilkan prediksi. Salah satu metodenya adalah bagging (Bootstrap Aggregating), yaitu membangun model dari sejumlah sampel bootstrap yang diambil dari data pelatihan, kemudian menggabungkan hasil prediksi model-model tersebut. Breiman (1996) menjelaskan bahwa bagging dapat meningkatkan kestabilan prediksi dengan menggabungkan hasil dari sejumlah model yang dibangun pada sampel bootstrap. Pada regresi, hasil prediksi umumnya digabungkan dengan menghitung rata-rata prediksi dari seluruh model.
Praktikum ini menerapkan Bagging Regression pada dataset
Friedman. Dataset Friedman merupakan data simulasi yang digunakan untuk
menguji metode regresi pada hubungan prediktor dan respons yang
nonlinier. Model dibangun menggunakan jumlah model gabungan
(nbagg) sebesar 25, 50, dan 100. Kinerja masing-masing
model dibandingkan menggunakan metrik evaluasi regresi untuk mengetahui
jumlah bagging yang menghasilkan prediksi lebih baik. Evaluasi dilakukan
pada data yang tidak digunakan untuk melatih model agar penilaian
kinerja mencerminkan kemampuan prediksi pada data baru (James et al.,
2021).
nbagg = 25,
nbagg = 50, dan nbagg = 100 berdasarkan metrik
evaluasi regresi?Regresi merupakan metode supervised learning yang digunakan untuk memprediksi nilai respons numerik berdasarkan satu atau lebih variabel prediktor. Dalam pemodelan prediktif, data umumnya dipisahkan menjadi data pelatihan dan pengujian; data pengujian digunakan untuk menilai kemampuan model pada observasi yang tidak digunakan selama pelatihan (James et al., 2021).
Ensemble learning menggabungkan beberapa model untuk menghasilkan prediksi akhir. Bagging membentuk sampel bootstrap dari data training, melatih model pada setiap sampel, kemudian menggabungkan prediksinya. Dalam regresi, prediksi akhir biasanya berupa rata-rata prediksi seluruh model. Menurut Breiman (1996), pendekatan ini dapat mengurangi varians prediksi, khususnya pada metode yang sensitif terhadap perubahan data pelatihan. Namun, penambahan jumlah model tidak selalu menghasilkan peningkatan kinerja yang besar.
Parameter nbagg pada fungsi bagging menunjukkan jumlah
model yang dibangun. Pada praktikum ini, nilai nbagg yang
dibandingkan adalah 25, 50, dan 100. Data training yang sama
digunakan untuk setiap model agar hasil perbandingan lebih adil.
Dataset Friedman yang digunakan dalam praktikum ini merupakan data
simulasi yang dibangkitkan menggunakan fungsi
mlbench.friedman1() dari package mlbench
(Leisch & Dimitriadou, n.d.). Dataset ini memiliki sepuluh variabel
prediktor dan satu variabel respons numerik. Hubungan antara prediktor
dan respons bersifat nonlinier sehingga dapat digunakan untuk
mengevaluasi kemampuan model regresi dalam menangkap pola data.
Evaluasi dilakukan dengan membandingkan nilai aktual dan prediksi pada data testing menggunakan metrik berikut.
Penggunaan beberapa metrik memberikan gambaran evaluasi yang lebih lengkap karena setiap metrik memiliki karakteristik yang berbeda. Hyndman dan Koehler (2006) membahas keterbatasan sejumlah ukuran akurasi prediksi, sehingga pemilihan dan interpretasi metrik perlu disesuaikan dengan karakteristik data.
Rumus metrik yang digunakan adalah:
\[ RMSE=\sqrt{\frac{1}{n}\sum_{i=1}^{n}(y_i-\hat{y}_i)^2} \]
\[ MAE=\frac{1}{n}\sum_{i=1}^{n}|y_i-\hat{y}_i| \]
\[ R^2=1-\frac{\sum_{i=1}^{n}(y_i-\hat{y}_i)^2}{\sum_{i=1}^{n}(y_i-\bar{y})^2} \]
\[ MAPE=\frac{100\%}{n}\sum_{i=1}^{n}\left|\frac{y_i-\hat{y}_i}{y_i}\right| \]
Data yang digunakan adalah dataset simulasi Friedman yang
dibangkitkan melalui fungsi mlbench.friedman1() dari
package mlbench di R. Data dibuat secara reproducible
dengan menetapkan random seed sehingga hasil pembangkitan data
dan pembagian data dapat diulang.
Variabel respons adalah y, sedangkan variabel prediktor
terdiri atas x1 sampai x10.
| Variabel | Keterangan |
|---|---|
y |
Variabel respons numerik yang diprediksi |
x1–x10 |
Sepuluh variabel prediktor pada dataset Friedman |
nbagg = 25, 50, dan 100
menggunakan data training yang sama.knitr::opts_chunk$set(echo = FALSE)
# Jalankan sekali jika package belum terpasang:
# install.packages(c("mlbench", "ipred", "ggplot2", "tidyr", "scales"))
library(mlbench)
library(ipred)
library(ggplot2)
library(tidyr)
library(scales)
# Membuat dataset Friedman
set.seed(123)
data_friedman <- as.data.frame(mlbench.friedman1(n = 1000, sd = 1))
# Memastikan nama variabel respons dan prediktor
names(data_friedman)[ncol(data_friedman)] <- "y"
# Pemeriksaan awal data
dim(data_friedman)## [1] 1000 11
## 'data.frame': 1000 obs. of 11 variables:
## $ x.1 : num 0.288 0.788 0.409 0.883 0.94 ...
## $ x.2 : num 0.274 0.594 0.16 0.853 0.848 ...
## $ x.3 : num 0.16 0.145 0.149 0.514 0.493 ...
## $ x.4 : num 0.206 0.943 0.379 0.626 0.184 ...
## $ x.5 : num 0.304 0.833 0.594 0.807 0.294 ...
## $ x.6 : num 0.249 0.989 0.717 0.652 0.241 ...
## $ x.7 : num 0.4403 0.3974 0.3715 0.5288 0.0738 ...
## $ x.8 : num 0.9303 0.591 0.0797 0.845 0.0298 ...
## $ x.9 : num 0.578 0.489 0.742 0.226 0.749 ...
## $ x.10: num 0.798 0.879 0.242 0.56 0.905 ...
## $ y : num 7.85 27.19 10.12 18.77 10.17 ...
## x.1 x.2 x.3 x.4
## Min. :0.0004654 Min. :0.001156 Min. :0.003516 Min. :6.534e-05
## 1st Qu.:0.2536404 1st Qu.:0.253137 1st Qu.:0.233550 1st Qu.:2.434e-01
## Median :0.4899502 Median :0.498370 Median :0.496463 Median :5.054e-01
## Mean :0.4972778 Mean :0.498256 Mean :0.498604 Mean :5.040e-01
## 3rd Qu.:0.7468051 3rd Qu.:0.745485 3rd Qu.:0.745841 3rd Qu.:7.685e-01
## Max. :0.9994045 Max. :0.999524 Max. :0.999651 Max. :9.995e-01
## x.5 x.6 x.7 x.8
## Min. :0.000829 Min. :0.001636 Min. :0.000863 Min. :0.0008261
## 1st Qu.:0.254085 1st Qu.:0.269757 1st Qu.:0.264754 1st Qu.:0.2504367
## Median :0.485769 Median :0.493714 Median :0.490621 Median :0.4978823
## Mean :0.489129 Mean :0.505534 Mean :0.496102 Mean :0.4980242
## 3rd Qu.:0.733984 3rd Qu.:0.761554 3rd Qu.:0.734836 3rd Qu.:0.7471687
## Max. :0.999941 Max. :0.999688 Max. :0.997738 Max. :0.9981033
## x.9 x.10 y
## Min. :0.001941 Min. :9.374e-05 Min. : 0.6104
## 1st Qu.:0.253597 1st Qu.:2.471e-01 1st Qu.:10.7249
## Median :0.491687 Median :4.894e-01 Median :14.4085
## Mean :0.489310 Mean :4.993e-01 Mean :14.3998
## 3rd Qu.:0.729686 3rd Qu.:7.498e-01 3rd Qu.:17.9296
## Max. :0.999716 Max. :9.998e-01 Max. :27.5047
## x.1 x.2 x.3 x.4 x.5 x.6 x.7
## 1 0.2875775 0.2736227 0.1596740 0.2058269 0.3044642 0.24862988 0.44026102
## 2 0.7883051 0.5938669 0.1445159 0.9425390 0.8328188 0.98946318 0.39739215
## 3 0.4089769 0.1601848 0.1491804 0.3793238 0.5936475 0.71712190 0.37154765
## 4 0.8830174 0.8534302 0.5144343 0.6262401 0.8071966 0.65172829 0.52880857
## 5 0.9404673 0.8477392 0.4928273 0.1835024 0.2940508 0.24055621 0.07378541
## 6 0.0455565 0.4778868 0.6163428 0.6592076 0.1410852 0.08679275 0.71684977
## x.8 x.9 x.10 y
## 1 0.93034086 0.5779101 0.797964158 7.849800
## 2 0.59104489 0.4888454 0.879135979 27.194434
## 3 0.07974532 0.7421904 0.242462305 10.119632
## 4 0.84501857 0.2256090 0.559528822 18.774356
## 5 0.02978437 0.7488911 0.904773553 10.169495
## 6 0.81465972 0.8248685 0.008198569 8.586764
Dataset Friedman yang digunakan dalam penelitian ini terdiri atas 1.000 observasi dengan 11 variabel, yaitu 10 variabel prediktor dari x.1 hingga x.10 dan satu variabel respons, yaitu y. Berdasarkan statistik deskriptif, variabel prediktor memiliki nilai minimum dan maksimum yang berada pada rentang 0 hingga 1. Sementara itu, variabel respons y memiliki nilai minimum sebesar 0,6104, maksimum sebesar 27,5047, dan rata-rata sebesar 14,3998. Nilai median sebesar 14,4085 juga menunjukkan bahwa nilai tengah variabel respons berada dekat dengan rata-ratanya. Statistik deskriptif ini memberikan gambaran awal mengenai karakteristik data yang akan digunakan dalam pemodelan Bagging Regression.
## x.1 x.2 x.3 x.4 x.5 x.6 x.7 x.8 x.9 x.10 y
## 0 0 0 0 0 0 0 0 0 0 0
## [1] 0
## Jumlah observasi: 1000
## Jumlah variabel: 11
Berdasarkan hasil pemeriksaan, seluruh variabel dalam dataset Friedman tidak memiliki nilai hilang (missing value). Hal ini ditunjukkan oleh hasil pemeriksaan setiap kolom yang seluruhnya bernilai nol serta jumlah keseluruhan nilai hilang sebesar nol. Dataset juga memiliki 1.000 observasi dan 11 variabel. Dengan demikian, seluruh data dapat digunakan dalam proses pemodelan tanpa memerlukan penanganan nilai hilang. Kondisi ini membantu menjaga kelengkapan data dalam proses pelatihan dan evaluasi model Bagging Regression.
## Jumlah data training: 700
## Jumlah data testing : 300
Pembagian dataset Friedman dilakukan dengan proporsi 70% untuk data training dan 30% untuk data testing. Berdasarkan hasil pembagian, sebanyak 700 observasi digunakan sebagai data training, sedangkan 300 observasi digunakan sebagai data testing. Data training digunakan untuk membangun model Bagging Regression, sementara data testing digunakan untuk mengevaluasi kemampuan model dalam memprediksi observasi yang tidak digunakan selama pelatihan. Pembagian data yang sama diterapkan pada seluruh variasi jumlah bagging agar perbandingan kinerja model dapat dilakukan secara konsisten.
## nbagg OOB_Error
## 1 25 2.768357
## 2 50 2.699588
## 3 100 2.660957
Hasil pemodelan Bagging Regression menunjukkan bahwa nilai kesalahan out-of-bag (OOB) berbeda pada setiap jumlah bagging. Model dengan nbagg = 25 menghasilkan nilai OOB sebesar 2,768357, sedangkan model dengan nbagg = 50 menghasilkan nilai sebesar 2,699588. Selanjutnya, model dengan nbagg = 100 menghasilkan nilai OOB sebesar 2,660957. Hasil tersebut menunjukkan bahwa nilai kesalahan OOB cenderung menurun seiring dengan bertambahnya jumlah bagging. Model dengan nbagg = 100 memiliki nilai OOB terkecil di antara ketiga model yang diuji, sehingga memberikan indikasi kinerja yang lebih baik berdasarkan ukuran kesalahan tersebut. Meskipun demikian, penentuan model terbaik tetap perlu mempertimbangkan metrik evaluasi pada data testing.
## Aktual Prediksi_25 Prediksi_50 Prediksi_100
## 1 7.84980 9.542980 9.753074 9.584796
## 2 10.11963 9.077582 9.184279 9.282199
## 3 18.77436 18.339040 18.613508 18.602960
## 4 22.01049 19.631795 19.946386 19.995622
## 5 17.11289 15.045061 15.128269 15.222272
## 6 18.57653 15.786754 15.843290 15.679965
Berdasarkan hasil prediksi pada data testing, setiap model Bagging Regression menghasilkan nilai prediksi yang berbeda untuk observasi yang sama. Sebagai contoh, pada observasi pertama, nilai aktual variabel y adalah 7,84980, sedangkan prediksi model dengan nbagg = 25, nbagg = 50, dan nbagg = 100 masing-masing sebesar 9,54298, 9,75307, dan 9,58480. Perbedaan tersebut menunjukkan bahwa jumlah bagging dapat memengaruhi hasil prediksi model. Pada beberapa observasi lainnya, nilai prediksi juga berbeda dari nilai aktual dengan tingkat selisih yang bervariasi. Namun, tabel yang ditampilkan baru menunjukkan beberapa contoh hasil prediksi sehingga belum cukup untuk menentukan model dengan kinerja terbaik. Oleh karena itu, diperlukan perhitungan metrik evaluasi, seperti RMSE, MAE, R², dan MAPE, untuk membandingkan ketepatan prediksi ketiga model secara menyeluruh.
| nbagg | RMSE | MAE | R2 | MAPE |
|---|---|---|---|---|
| 25 | 2.7012 | 2.2074 | 0.7064 | 20.02 |
| 50 | 2.6333 | 2.1466 | 0.7210 | 19.65 |
| 100 | 2.6304 | 2.1454 | 0.7216 | 19.55 |
Berdasarkan hasil evaluasi model Bagging Regression dengan jumlah bagging sebanyak 25, 50, dan 100, diperoleh nilai RMSE masing-masing sebesar 2,7012; 2,6333; dan 2,6304. Nilai MAE yang diperoleh secara berurutan adalah 2,2074; 2,1466; dan 2,1454. Sementara itu, nilai R² meningkat dari 0,7064 menjadi 0,7210 dan 0,7216, sedangkan nilai MAPE menurun dari 20,02% menjadi 19,65% dan 19,55%. Hasil tersebut menunjukkan bahwa peningkatan jumlah bagging cenderung memperbaiki kinerja model, yang ditandai dengan penurunan nilai RMSE, MAE, dan MAPE serta peningkatan nilai R². Berdasarkan keempat metrik evaluasi tersebut, model dengan 100 bagging memberikan hasil terbaik karena memiliki tingkat kesalahan prediksi paling rendah dan kemampuan menjelaskan variasi data yang paling tinggi di antara ketiga model yang dibandingkan..
Berdasarkan grafik perbandingan kinerja model Bagging Regression, terlihat bahwa peningkatan jumlah bagging dari 25 menjadi 100 menghasilkan perbaikan pada seluruh metrik evaluasi. Nilai MAE menurun dari sekitar 2,2074 menjadi 2,1454, sedangkan nilai RMSE menurun dari 2,7012 menjadi 2,6304. Penurunan tersebut menunjukkan bahwa rata-rata kesalahan prediksi model semakin kecil. Di sisi lain, nilai R² meningkat dari 0,7064 menjadi 0,7216, yang menunjukkan bahwa kemampuan model dalam menjelaskan variasi variabel respons semakin baik. Nilai MAPE juga mengalami penurunan dari 20,02% menjadi 19,55%. Dengan demikian, model dengan 100 bagging menunjukkan kinerja terbaik dibandingkan model dengan 25 dan 50 bagging. Namun, perbaikan kinerja setelah jumlah bagging mencapai 50 relatif kecil sehingga penambahan jumlah bagging perlu dipertimbangkan berdasarkan peningkatan akurasi dan kebutuhan komputasi.
## Model dengan RMSE terkecil:
## nbagg RMSE MAE R2 MAPE
## 3 100 2.630381 2.145369 0.7215805 19.55222
## nbagg RMSE MAE R2 MAPE
## 3 100 2.630381 2.145369 0.7215805 19.55222
## 2 50 2.633315 2.146580 0.7209591 19.64595
## 1 25 2.701155 2.207406 0.7063963 20.01882
Penentuan model terbaik dilakukan berdasarkan nilai RMSE terkecil dari ketiga model Bagging Regression yang diuji. Berdasarkan hasil evaluasi, model dengan jumlah bagging sebanyak 100 menghasilkan nilai RMSE sebesar 2,6304, MAE sebesar 2,1454, R² sebesar 0,7216, dan MAPE sebesar 19,55%. Model dengan 50 bagging memperoleh nilai RMSE sebesar 2,6333, sedangkan model dengan 25 bagging memperoleh nilai RMSE sebesar 2,7012. Oleh karena itu, model dengan 100 bagging dipilih sebagai model terbaik karena memiliki nilai RMSE paling rendah. Hasil ini menunjukkan bahwa penggunaan 100 bagging memberikan prediksi yang relatif lebih akurat dibandingkan dengan jumlah bagging lainnya. Meskipun demikian, pemilihan model terbaik berdasarkan RMSE juga perlu mempertimbangkan nilai metrik evaluasi lainnya agar kinerja model dapat dinilai secara menyeluruh.
## Jumlah observasi: 1000
## Jumlah data training: 700
## Jumlah data testing: 300
## nbagg RMSE MAE R2 MAPE
## 1 25 2.701155 2.207406 0.7063963 20.01882
## 2 50 2.633315 2.146580 0.7209591 19.64595
## 3 100 2.630381 2.145369 0.7215805 19.55222
##
## Model terbaik berdasarkan RMSE terkecil: nbagg = 100
## RMSE: 2.6304
## MAE : 2.1454
## R2 : 0.7216
## MAPE: 19.55 %
Berdasarkan keseluruhan hasil analisis, penelitian ini menggunakan 1.000 observasi yang dibagi menjadi 700 data training dan 300 data testing. Evaluasi dilakukan terhadap model Bagging Regression dengan jumlah bagging sebanyak 25, 50, dan 100. Hasil pengujian menunjukkan bahwa model dengan 100 bagging merupakan model terbaik berdasarkan nilai RMSE terkecil, yaitu sebesar 2,6304. Model tersebut juga menghasilkan nilai MAE sebesar 2,1454, R² sebesar 0,7216, dan MAPE sebesar 19,55%. Nilai R² menunjukkan bahwa model mampu menjelaskan sekitar 72,16% variasi pada variabel respons dalam data evaluasi, sedangkan sisanya berkaitan dengan faktor-faktor lain yang tidak dijelaskan oleh model. Secara keseluruhan, hasil analisis menunjukkan bahwa peningkatan jumlah bagging dapat memperbaiki kinerja prediksi, meskipun peningkatannya relatif kecil antara 50 dan 100 bagging. Dengan demikian, model Bagging Regression dengan 100 bagging dipilih sebagai model terbaik berdasarkan hasil evaluasi pada data testing.
Berdasarkan hasil analisis yang telah dilakukan, dapat disimpulkan bahwa metode Bagging Regression mampu menghasilkan model prediksi dengan kinerja yang cukup baik. Pengujian dilakukan menggunakan tiga variasi jumlah bagging, yaitu 25, 50, dan 100, dengan total 1.000 observasi yang dibagi menjadi 700 data training dan 300 data testing. Hasil evaluasi menunjukkan bahwa model dengan jumlah bagging sebanyak 100 merupakan model terbaik karena menghasilkan nilai RMSE sebesar 2,6304, MAE sebesar 2,1454, R² sebesar 0,7216, dan MAPE sebesar 19,55%. Dibandingkan dengan model yang menggunakan 25 dan 50 bagging, model dengan 100 bagging memiliki tingkat kesalahan prediksi yang lebih rendah serta kemampuan menjelaskan variasi data yang lebih tinggi. Dengan demikian, peningkatan jumlah bagging cenderung meningkatkan kinerja model, meskipun perbaikannya relatif kecil ketika jumlah bagging meningkat dari 50 menjadi 100..
Analisis selanjutnya dapat menggunakan pembagian data atau cross-validation yang berbeda untuk menguji kestabilan kinerja model. Selain itu, hasil Bagging Regression dapat dibandingkan dengan metode regresi lain, seperti pohon regresi tunggal, Random Forest Regression, atau Boosting Regression. Perbandingan sebaiknya menggunakan pembagian data dan metrik evaluasi yang sama agar hasilnya lebih adil.
Breiman, L. (1996). Bagging predictors. Machine Learning, 24, 123–140. https://doi.org/10.1007/BF00058655
Hyndman, R. J., & Koehler, A. B. (2006). Another look at measures of forecast accuracy. International Journal of Forecasting, 22(4), 679–688. https://doi.org/10.1016/j.ijforecast.2006.03.001
James, G., Witten, D., Hastie, T., & Tibshirani, R. (2021). An introduction to statistical learning: With applications in R (2nd ed.). Springer. https://doi.org/10.1007/978-1-0716-1418-1
Leisch, F., & Dimitriadou, E. (n.d.). mlbench: Machine learning benchmark problems [R package]. CRAN. https://CRAN.R-project.org/package=mlbench