Perkembangan teknologi informasi menyebabkan meningkatnya jumlah data yang dihasilkan dalam berbagai bidang, sehingga diperlukan metode analisis data yang efektif dan efisien. Salah satu pendekatan dalam machine learning adalah ensemble learning, yaitu metode yang menggabungkan beberapa model untuk menghasilkan prediksi akhir. Salah satu metode ensemble learning adalah Bootstrap Aggregating atau Bagging. Bagging merupakan metode yang membentuk beberapa model prediksi melalui pengambilan sampel ulang (resampling) dari data pelatihan menggunakan teknik bootstrap. Setiap sampel digunakan untuk membangun model secara terpisah, kemudian hasil prediksi dari seluruh model digabungkan untuk memperoleh prediksi akhir. Pendekatan ini bertujuan untuk meningkatkan kestabilan model dan mengurangi pengaruh perubahan data pelatihan terhadap hasil prediksi (Breiman, 1996).
Salah satu algoritma yang dapat dikombinasikan dengan Bagging adalah Classification and Regression Tree (CART), yaitu algoritma berbasis pohon keputusan yang digunakan untuk menyelesaikan permasalahan klasifikasi dan regresi. Dalam penerapannya, Bagging membentuk sejumlah model CART menggunakan sampel bootstrap yang berbeda. Setiap model menghasilkan prediksi berdasarkan pola yang diperoleh dari sampel masing-masing, kemudian seluruh prediksi digabungkan untuk menentukan hasil akhir. Pada permasalahan klasifikasi, penggabungan prediksi dilakukan melalui pemungutan suara terbanyak (majority voting), sedangkan pada permasalahan regresi dilakukan dengan menghitung rata-rata hasil prediksi. Mekanisme tersebut memungkinkan Bagging mengurangi variabilitas prediksi yang dihasilkan oleh satu pohon keputusan, sehingga model yang terbentuk diharapkan lebih stabil (Wulandari, Kusnandar, dan Yudhi, 2019).
Meskipun demikian, penggunaan Bagging tidak selalu menjamin peningkatan ketepatan prediksi pada setiap kondisi data. Kinerja metode ini dipengaruhi oleh karakteristik data, jumlah sampel bootstrap, jumlah model yang dibentuk, serta algoritma pembelajaran dasar yang digunakan. Selain itu, pembentukan banyak model memerlukan waktu komputasi yang lebih besar dibandingkan penggunaan satu model CART. Oleh karena itu, penerapan Bagging perlu disertai evaluasi kinerja untuk mengetahui kemampuan model dalam menghasilkan prediksi yang tepat. Dengan demikian, Bagging menjadi salah satu alternatif metode ensemble learning yang dapat digunakan untuk meningkatkan kestabilan model CART dalam analisis data, baik pada permasalahan klasifikasi maupun regresi.
Bootstrap Aggregating atau Bagging merupakan salah satu metode ensemble learning yang menggabungkan hasil prediksi dari beberapa model untuk memperoleh prediksi akhir yang lebih stabil. Metode ini bekerja dengan membentuk sejumlah sampel bootstrap dari data training, kemudian menggunakan setiap sampel untuk membangun model secara terpisah. Hasil prediksi dari seluruh model selanjutnya digabungkan untuk memperoleh prediksi akhir. Bagging dapat diterapkan pada permasalahan klasifikasi maupun regresi sesuai dengan algoritma pembelajaran yang digunakan. Pada kasus klasifikasi, prediksi akhir ditentukan menggunakan pemungutan suara terbanyak (majority voting). Sedangkan, pada kasus regresi, prediksi akhir diperoleh melalui rata-rata hasil prediksi seluruh model (Breiman, 1996).
Tabel 1. Perbedaan Bagging Clasification dan Bagging Regression
| Aspek | Bagging Clasification Tree | Bagging Regression Tree |
|---|---|---|
| Variabel respon | Variabel respon berupa rategorik | Variabel respon berupa rumerik atau kontinu |
| Agregasi | Voting mayoritas atau rata-rata probabilitas | Rata-rata nilai prediksi |
| Metrik Evluasi | Accuracy, Precission, Recall, F1, ROC-AUC | MSE, RMSE, MAE, R-Square |
Metode Bagging terdapat dua tahapan utama, yaitu bootstrap yang merupakan pengambilan sampel dari data learning yang dimiliki dan aggregating yaitu menggabungkan nilai-nilai dugaan menjadi satu nilai dugaan. Proses pembuatan dugaan secara bagging menggunakan pohon adalah, sebagai berikut (Wulandari, Kusnandar, dan Yudhi, 2019):
Tahapan bootstrap
Tahapan aggregatting
Lakukan pendugaan gabungan berdasarkan B buah pohon klasifikasi tersebut menggunakan aturan majority vote (suara terbanyak), yaitu kategori atau kelas yang paling sering muncul sebagai hasil prediksi dari k pohon klasifikasi.
Gambar 1. Alur Kerja Ensemble Bagging
Perhatikan beberapa fitur penting dari bagging berikut ini (Fransiska, 2026):
Data yang digunakan dalam praktikum ini adalah data simulasi Friedman
yang dibuat menggunakan fungsi mlbench.friedman1() dari
paket mlbench pada RStudio. Data yang digunakan sebanyak
500 observasi dengan simpangan baku error sebesar 1. Data ini
digunakan untuk membangun model Bagging Regression dengan
jumlah bootstrap yang berbeda, yaitu 25, 50, dan 100.
Variabel penelitian terdiri atas variabel respon dan variabel prediktor. Variabel respons yang digunakan adalah \(Y\), yaitu nilai yang akan diprediksi oleh model. Sedangkan, variabel prediktor terdiri atas \(X_1\) sampai \(X_{10}\). Pada data Friedman, variabel \(X_1\) sampai \(X_5\) digunakan dalam pembentukan nilai respons, sedangkan \(X_6\) sampai \(X_{10}\) merupakan variabel tambahan.
Langkah-langkah analisis Bagging Regression pada data Friedman adalah sebagai berikut:
mlbench, ipred, dan
rpart pada RStudio.Pada batasan masalah diminta untuk melakukan Bagging Regression pada data Friedman dengan membandingkan hasilnya menggunakan jumlah bootstrap sebanyak 25, 50, dan 100 dan kemudian menghitung matrik evaluasinya.
Tahap awal dilakukan dengan memuat library mlbench,
ipred, dan rpart yang diperlukan dalam
analisis dan membangkitkan data Friedman menggunakan fungsi
mlbench.friedman1() dengan jumlah observasi sebanyak 500
dan simpangan baku error sebesar 1.
Sintaks yang digunakan adalah sebagai berikut:
# Library
library(mlbench)
library(ipred)
library(rpart)
# Membuat data Friedman #1
set.seed(43)
data_friedman <- mlbench.friedman1(n = 500, sd = 1)
data <- data.frame(data_friedman$x,y = data_friedman$y)
# Memeriksa data
head(data)## X1 X2 X3 X4 X5 X6 X7
## 1 0.48503768 0.7843542 0.55210401 0.74182849 0.5291208 0.3349633 0.3184348
## 2 0.91076604 0.7826194 0.48223042 0.25599970 0.4177946 0.9844605 0.9791091
## 3 0.05767389 0.6221422 0.62819779 0.02046484 0.1639038 0.9666580 0.1210342
## 4 0.70539841 0.9914532 0.37225848 0.19763034 0.3812875 0.4336756 0.4911194
## 5 0.31349510 0.8210087 0.69171620 0.48690436 0.2755178 0.6003613 0.1438703
## 6 0.54303264 0.3900782 0.01639266 0.11404397 0.9354717 0.3373063 0.4343538
## X8 X9 X10 y
## 1 0.08111583 0.4841657 0.3709264 19.556235
## 2 0.98098380 0.8701462 0.9317184 10.506158
## 3 0.37793808 0.7549262 0.9499757 2.134789
## 4 0.78147925 0.6592182 0.8613697 13.494760
## 5 0.55553879 0.1381987 0.9249460 12.946349
## 6 0.87313455 0.3850465 0.8800210 16.621116
## 'data.frame': 500 obs. of 11 variables:
## $ X1 : num 0.485 0.9108 0.0577 0.7054 0.3135 ...
## $ X2 : num 0.784 0.783 0.622 0.991 0.821 ...
## $ X3 : num 0.552 0.482 0.628 0.372 0.692 ...
## $ X4 : num 0.7418 0.256 0.0205 0.1976 0.4869 ...
## $ X5 : num 0.529 0.418 0.164 0.381 0.276 ...
## $ X6 : num 0.335 0.984 0.967 0.434 0.6 ...
## $ X7 : num 0.318 0.979 0.121 0.491 0.144 ...
## $ X8 : num 0.0811 0.981 0.3779 0.7815 0.5555 ...
## $ X9 : num 0.484 0.87 0.755 0.659 0.138 ...
## $ X10: num 0.371 0.932 0.95 0.861 0.925 ...
## $ y : num 19.56 10.51 2.13 13.49 12.95 ...
## X1 X2 X3 X4
## Min. :0.00159 Min. :0.0009057 Min. :0.004887 Min. :5.975e-05
## 1st Qu.:0.23906 1st Qu.:0.2415145 1st Qu.:0.262739 1st Qu.:2.341e-01
## Median :0.50556 Median :0.4720259 Median :0.539835 Median :4.710e-01
## Mean :0.50020 Mean :0.4892460 Mean :0.518677 Mean :4.870e-01
## 3rd Qu.:0.75056 3rd Qu.:0.7420183 3rd Qu.:0.775278 3rd Qu.:7.304e-01
## Max. :0.99682 Max. :0.9981246 Max. :0.996720 Max. :9.988e-01
## X5 X6 X7 X8
## Min. :0.005383 Min. :7.002e-05 Min. :0.0006859 Min. :0.005763
## 1st Qu.:0.250913 1st Qu.:2.424e-01 1st Qu.:0.2566174 1st Qu.:0.215280
## Median :0.481947 Median :5.140e-01 Median :0.5224313 Median :0.507561
## Mean :0.496211 Mean :5.008e-01 Mean :0.5104499 Mean :0.501394
## 3rd Qu.:0.747287 3rd Qu.:7.583e-01 3rd Qu.:0.7565035 3rd Qu.:0.773431
## Max. :0.998196 Max. :9.980e-01 Max. :0.9983174 Max. :0.999434
## X9 X10 y
## Min. :0.003499 Min. :0.001607 Min. : 0.3648
## 1st Qu.:0.251473 1st Qu.:0.263305 1st Qu.:10.6206
## Median :0.518338 Median :0.503962 Median :13.9701
## Mean :0.510534 Mean :0.500716 Mean :14.1566
## 3rd Qu.:0.767103 3rd Qu.:0.747404 3rd Qu.:17.6052
## Max. :0.996703 Max. :0.999982 Max. :27.1551
Hasil pemeriksaan awal menunjukkan bahwa variabel prediktor \(X1\) sampai \(X10\), nilai minimum berada mendekati 0 dan nilai maksimum mendekati 1. Rata-rata setiap variabel juga berada di sekitar 0,5. Sedangkan, variabel respons \(y\) memiliki nilai minimum sebesar 0,3648, kuartil pertama sebesar 10,6206, median sebesar 13,9701, rata-rata sebesar 14,1566, kuartil ketiga sebesar 17,6052, dan nilai maksimum sebesar 27,1551. Nilai rata-rata yang sedikit lebih besar daripada median menunjukkan bahwa distribusi \(y\) mungkin sedikit menceng ke kanan.
Missing value merupakan kondisi ketika suatu observasi tidak memiliki nilai pada variabel tertentu. Pemeriksaan dilakukan untuk mengetahui jumlah data yang hilang pada setiap variabel.
Sintaks yang digunakan adalah sebagai berikut:
## X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 y
## 0 0 0 0 0 0 0 0 0 0 0
Hasil pemeriksaan menunjukkan bahwa variabel prediktor dan variabel respon tidak memiliki missing value (nilai hilang), sehingga langsung dapat digunakan dalam proses pemodelan regresi.
Splitting data merupakan proses membagi dataset menjadi data
training dan data testing. Data training
digunakan untuk membentuk model, sedangkan data testing
digunakan untuk mengevaluasi kemampuan model pada data yang tidak
digunakan selama proses pelatihan. Pembagian dataset dilakukan dengan
proporsi 80% data training dan 20% data testing
menggunakan fungsi sample().
Sintaks yang digunakan adalah sebagai berikut:
# Membagi data menjadi data latih dan data uji
set.seed(43)
n <- nrow(data)
indeks_train <- sample(seq_len(n),size = floor(0.80 * n))
train <- data[indeks_train, ]
test <- data[-indeks_train, ]
cat("Jumlah data latih:", nrow(train), "\n")## Jumlah data latih: 400
## Jumlah data uji: 100
Hasil pembagian menunjukkan bahwa data training terdiri atas 400 observasi, sedangkan data testing terdiri atas 100 observasi. Data training digunakan untuk membangun Regression Tree, sementara data testing digunakan untuk menghitung RMSE, MSE, dan \(R^2\).
Bagging Regression merupakan metode ensemble learning yang menggabungkan prediksi dari beberapa Regression Tree yang dibangun menggunakan sampel bootstrap dari data training.
Sintaks yang digunakan untuk menentukan formula regresi adalah sebagai berikut:
# Menentukan Formula Regresi
formula_model <- as.formula(
paste("y ~",paste(names(train)[names(train) != "y"],
collapse = " + ")))
formula_model## y ~ X1 + X2 + X3 + X4 + X5 + X6 + X7 + X8 + X9 + X10
Model yang diperoleh \(y\) ~ \(X1\) + \(X2\) + \(X3\) + \(X4\) + \(X5\) + \(X6\) + \(X7\)+ \(X8\) + \(X9\) + \(X10\) menunjukkan bahwa variabel respons \(y\) diprediksi menggunakan 10 variabel prediktor, yaitu \(X1\) hingga \(X10\). Seluruh variabel prediktor digunakan sebagai input dalam pembentukan model Bagging Regression untuk memprediksi nilai \(y\).
Pada tahap ini pembentukan model Bagging Regression, dilakukan pemodelan menggunakan 3 variasi jumlah pohon regresi, yaitu 25, 50, dan 100 pohon. Setiap model dilatih menggunakan data training, kemudian digunakan untuk memprediksi nilai respons pada data testing.
Sintaks yang digunakan adalah sebagai berikut:
# Model dengan 25 pohon
set.seed(43)
model_25 <- ipred::bagging(
formula = formula_model,
data = train,
nbagg = 25,
coob = FALSE,
control = rpart::rpart.control(
minsplit = 2,
cp = 0
)
)
pred_25 <- predict(model_25, newdata = test)
# Model dengan 50 pohon
set.seed(43)
model_50 <- ipred::bagging(
formula = formula_model,
data = train,
nbagg = 50,
coob = FALSE,
control = rpart::rpart.control(
minsplit = 2,
cp = 0
)
)
pred_50 <- predict(model_50, newdata = test)
# Model dengan 100 pohon
set.seed(43)
model_100 <- ipred::bagging(
formula = formula_model,
data = train,
nbagg = 100,
coob = FALSE,
control = rpart::rpart.control(
minsplit = 2,
cp = 0
)
)
pred_100 <- predict(model_100, newdata = test)Selanjutnya, evaluasi model dilakukan dengan menghitung nilai RMSE, MAE, dan \(R^2\). RMSE dan MAE digunakan untuk mengukur kesalahan prediksi, sedangkan \(R^2\) digunakan untuk mengukur kemampuan model dalam menjelaskan variasi nilai respons.
Sintaks yang digunakan adalah sebagai berikut:
# Menghitung nilai evaluasi model
aktual <- test$y
# Model 25 pohon
RMSE_25 <- sqrt(mean((aktual - pred_25)^2))
MAE_25 <- mean(abs(aktual - pred_25))
R2_25 <- 1 - sum((aktual - pred_25)^2) /
sum((aktual - mean(aktual))^2)
# Model 50 pohon
RMSE_50 <- sqrt(mean((aktual - pred_50)^2))
MAE_50 <- mean(abs(aktual - pred_50))
R2_50 <- 1 - sum((aktual - pred_50)^2) /
sum((aktual - mean(aktual))^2)
# Model 100 pohon
RMSE_100 <- sqrt(mean((aktual - pred_100)^2))
MAE_100 <- mean(abs(aktual - pred_100))
R2_100 <- 1 - sum((aktual - pred_100)^2) /
sum((aktual - mean(aktual))^2)
hasil <- data.frame(
Jumlah_Pohon = c(25, 50, 100),
RMSE = c(RMSE_25, RMSE_50, RMSE_100),
MAE = c(MAE_25, MAE_50, MAE_100),
R2 = c(R2_25, R2_50, R2_100)
)
hasil[, -1] <- round(hasil[, -1], 4)
print(hasil)## Jumlah_Pohon RMSE MAE R2
## 1 25 2.3278 1.9184 0.7788
## 2 50 2.3115 1.9137 0.7818
## 3 100 2.2878 1.8961 0.7863
Berdasarkan hasil evaluasi, model Bagging Regression dengan jumlah pohon 25, 50, dan 100 menunjukkan peningkatan kinerja seiring bertambahnya jumlah pohon. Model dengan 25 pohon menghasilkan nilai RMSE sebesar 2,3278, MAE sebesar 1,9184, dan \(R^2\) sebesar 0,7788. Pada 50 pohon, nilai RMSE menurun menjadi 2,3115, MAE menjadi 1,9137, dan \(R^2\) meningkat menjadi 0,7818. Sedangkan, model dengan 100 pohon menghasilkan kinerja terbaik, dengan nilai RMSE sebesar 2,2878, MAE sebesar 1,8961, dan \(R^2\) sebesar 0,7863. Nilai RMSE dan MAE yang paling rendah menunjukkan bahwa model ini memiliki kesalahan prediksi terkecil dibandingkan kedua model lainnya. Nilai \(R^2\) sebesar 0,7863 menunjukkan bahwa model mampu menjelaskan sekitar 78,63% variasi nilai respons pada data testing.
Model terbaik dipilih dengan mempertimbangkan nilai RMSE dan MAE yang lebih kecil serta nilai \(R^2\) yang lebih besar.
Sintaks yang digunakan adalah sebagai berikut:
## Jumlah_Pohon RMSE MAE R2
## 3 100 2.2878 1.8961 0.7863
## 2 50 2.3115 1.9137 0.7818
## 1 25 2.3278 1.9184 0.7788
## Model terbaik berdasarkan RMSE adalah 100 pohon
Berdasarkan hasil yang diperoleh, model dengan 100 pohon dipilih sebagai model terbaik karena memiliki nilai RMSE paling rendah yaitu sebesar 2.2878 dibandingkan model lainnya. Selain itu, model ini juga menghasilkan nilai MAE terendah yaitu sebesar 1.8961 dan \(R^2\) tertinggi yaitu sebesar 0.7863.
Nilai aktual dari data testing dibandingkan dengan hasil prediksi model menggunakan 25, 50, dan 100 pohon. Perbandingan ini dilakukan untuk melihat kedekatan hasil prediksi terhadap nilai aktual.
# Membandingkan nilai aktual dan prediksi
perbandingan <- data.frame(
Aktual = aktual,
Prediksi_25 = pred_25,
Prediksi_50 = pred_50,
Prediksi_100 = pred_100
)
head(perbandingan, 10)## Aktual Prediksi_25 Prediksi_50 Prediksi_100
## 1 10.506158 14.838045 14.816942 14.732623
## 2 13.494760 14.650913 14.133775 14.237865
## 3 16.621116 13.262706 13.917907 14.252240
## 4 9.207644 10.491735 10.905155 10.822197
## 5 9.395308 11.974984 12.474283 12.248656
## 6 23.323631 21.412470 20.906976 20.431525
## 7 11.873848 11.287679 11.397905 11.577715
## 8 7.303525 9.769759 10.064523 10.337215
## 9 4.610724 7.901079 7.517680 7.337577
## 10 11.287532 10.353234 9.774817 9.810519
Berdasarkan tabel perbandingan nilai aktual dan hasil prediksi, ditampilkan 10 observasi pertama pada data testing. Pada observasi pertama, nilai aktual sebesar 10,5062, sedangkan prediksi model 25 pohon sebesar 14,8380, model 50 pohon sebesar 14,8169, dan model 100 pohon sebesar 14,7326. Hasil menunjukkan bahwa ketiga model menghasilkan prediksi yang cenderung berdekatan, tetapi masih berbeda dari nilai aktual. Pada beberapa observasi, seperti observasi keenam, nilai aktual sebesar 23,3236 dan prediksi model 100 pohon sebesar 20,4315. Sedangkan, pada observasi kesepuluh, nilai aktual sebesar 11,2875 dan prediksi model 100 pohon sebesar 9,8105. Hal ini menunjukkan bahwa hasil prediksi model dapat lebih rendah atau lebih tinggi daripada nilai aktual.
Grafik RMSE, MAE, dan \(R^2\) dibuat untuk menggambarkan perubahan kinerja model pada setiap variasi jumlah pohon. Grafik membantu mendeskripsikan model dengan kesalahan prediksi lebih rendah dan kemampuan prediksi lebih baik.
par(mfrow = c(1, 3))
plot(
hasil$Jumlah_Pohon, hasil$RMSE,
type = "b",
xlab = "Jumlah Pohon",
ylab = "RMSE",
main = "Perbandingan RMSE"
)
plot(
hasil$Jumlah_Pohon, hasil$MAE,
type = "b",
xlab = "Jumlah Pohon",
ylab = "MAE",
main = "Perbandingan MAE"
)
plot(
hasil$Jumlah_Pohon, hasil$R2,
type = "b",
xlab = "Jumlah Pohon",
ylab = "R-squared",
main = "Perbandingan R2"
)Berdasarkan 3 grafik perbandingan, terlihat bahwa penambahan jumlah pohon dari 25 menjadi 50 dan 100 menghasilkan peningkatan kinerja model Bagging Regression. Grafik RMSE menunjukkan tren menurun, dari 2,3278 pada 25 pohon menjadi 2,3115 pada 50 pohon dan 2,2878 pada 100 pohon. Hal ini menunjukkan bahwa kesalahan prediksi model semakin kecil. Pada grafik MAE, nilai juga mengalami penurunan dari 1,9184 menjadi 1,9137 dan 1,8961 seiring bertambahnya jumlah pohon. Penurunan ini menunjukkan bahwa rata-rata kesalahan absolut prediksi semakin rendah. Sedangkan grafik \(R^2\) menunjukkan tren meningkat, yaitu dari 0,7788 pada 25 pohon menjadi 0,7818 pada 50 pohon dan 0,7863 pada 100 pohon. Artinya, kemampuan model dalam menjelaskan variasi nilai respons pada data testing semakin baik.
Metode Bagging (Bootstrap Aggregating) merupakan metode ensemble learning yang menggabungkan beberapa model untuk menghasilkan prediksi yang lebih stabil. Prinsip kerja Bagging meliputi pengambilan sampel bootstrap dari data training, pembentukan model pada setiap sampel, dan penggabungan hasil prediksi. Pada regresi, hasil prediksi akhir diperoleh dengan menghitung rata-rata prediksi dari seluruh model yang dibentuk.
Implementasi metode Bagging menggunakan R dilakukan melalui beberapa
tahapan, yaitu persiapan data, pembagian data menjadi data latih dan
data uji, pembentukan model, serta prediksi menggunakan data uji. Proses
implementasi dapat dilakukan dengan bantuan package seperti
ipred dan rpart untuk membangun model Bagging
Regression berbasis pohon regresi. Jumlah model yang digunakan
dapat disesuaikan dengan kebutuhan analisis.
Evaluasi performa Bagging dilakukan dengan menggunakan metrik yang sesuai dengan tujuan pemodelan. Pada kasus regresi, evaluasi dapat menggunakan RMSE (Root Mean Squared Error), MAE (Mean Absolute Error), dan koefisien determinasi (\(R^2\)). RMSE dan MAE digunakan untuk mengukur besarnya kesalahan prediksi, sedangkan \(R^2\) digunakan untuk mengukur proporsi variasi variabel respons yang dapat dijelaskan oleh model. Penggunaan metrik tersebut membantu menilai dan membandingkan kinerja model secara sistematis sehingga dapat ditentukan model yang paling sesuai berdasarkan hasil evaluasi.
Berdasarkan hasil evaluasi Bagging Regression pada data Friedman, diketahui bahwa peningkatan jumlah pohon dari 25 menjadi 50 dan 100 menghasilkan perbaikan kinerja model. Hal ini terlihat oleh penurunan nilai RMSE dari 2,3278 menjadi 2,3115 dan 2,2878, serta penurunan nilai MAE dari 1,9184 menjadi 1,9137 dan 1,8961. Sebaliknya, nilai \(R^2\) meningkat dari 0,7788 menjadi 0,7818 dan 0,7863. Dari ketiga model yang diuji, model dengan 100 pohon memberikan hasil terbaik karena memiliki kesalahan prediksi terendah dan nilai \(R^2\) tertinggi. Dengan demikian, model Bagging Regression dengan 100 pohon merupakan pilihan terbaik di antara variasi yang diuji pada data Friedman.
Breiman, L. (1996). Bagging predictors. Machine Learning, 24, 123–140. https://doi.org/10.1007/BF00058655.
Fransiska, H. (2026). Modul Praktikum Machine Learning and Modern Prediction. Laboratorium Matematika Universitas Bengkulu.
Wulandari, D. A., Kusnandar, D., & Yudhi, Y. (2019). Bagging classification trees untuk klasifikasi tingkat kesejahteraan rumah tangga di Kalimantan Barat. BIMASTER: Buletin Ilmiah Matematika, Statistika dan Terapannya. https://doi.org/10.26418/bbimst.v8i4.36035.