BAB I PENDAHULUAN

1.1 Latar Belakang

Kemampuan sebuah model machine learning tidak hanya ditentukan oleh seberapa baik model mengenali pola pada data pelatihan, tetapi juga oleh seberapa konsisten model tersebut memprediksi pengamatan baru. Alpaydın (2020) menjelaskan bahwa machine learning berfokus pada pengembangan algoritma yang memanfaatkan data atau pengalaman sebelumnya untuk menyelesaikan suatu permasalahan. Salah satu metode yang telah dipelajari sebelumnya adalah Decision Tree, yang membentuk aturan prediksi melalui pemisahan data secara bertahap dan menghasilkan struktur yang mudah diinterpretasikan. Satu pohon yang tumbuh cukup dalam cenderung sensitif terhadap perubahan data pelatihan. Perbedaan kecil pada data dapat menghasilkan struktur pohon yang berbeda sehingga kestabilan prediksinya menjadi terbatas (Fransiska, 2026).

Persoalan tersebut diatasi melalui pendekatan ensemble, yaitu penggabungan prediksi dari beberapa model dasar menjadi satu prediksi akhir (Mienye & Sun, 2022). Salah satu pendekatan yang paling awal adalah Bootstrap Aggregating atau Bagging, yang pertama kali diusulkan oleh Leo Breiman (Fransiska, 2026). Metode ini membangun beberapa model dari sampel bootstrap pada data pelatihan, kemudian menggabungkan hasilnya dengan rata-rata pada respons numerik atau pemungutan suara terbanyak pada respons kategorik (James dkk., 2021). Setiap model dilatih secara terpisah pada sampel yang berbeda sehingga penggabungan hasilnya membantu menurunkan variance, meskipun tidak secara langsung mengurangi bias (Fransiska, 2026). Pohon keputusan yang tumbuh dalam cenderung memiliki variance tinggi sehingga menjadi model dasar yang umum digunakan dalam Bagging (James dkk., 2021).

Bagging untuk respons numerik diterapkan sebagai Bagging Regression Tree, yaitu rata-rata prediksi dari sejumlah pohon regresi yang dibangun dari sampel bootstrap berbeda (James dkk., 2021). Kualitas prediksinya dapat dievaluasi menggunakan ukuran kesalahan seperti Mean Squared Error (MSE), Root Mean Squared Error (RMSE), dan koefisien determinasi (R²) (Chicco dkk., 2021; Fransiska, 2026). Praktikum ini dilakukan untuk mempelajari konsep dasar dan prinsip kerja Bagging, menerapkannya pada data dengan respons numerik menggunakan perangkat lunak R, serta menilai performa model yang dihasilkan. Pemahaman tersebut diharapkan menjadi dasar untuk mempelajari metode ensemble berbasis pohon yang lebih lanjut, seperti Random Forest (Mienye & Sun, 2022).

1.2 Rumusan Masalah

  1. Bagaimana konsep dasar dan prinsip kerja metode Bagging?
  2. Bagaimana cara mengimplementasikan metode Bagging menggunakan perangkat lunak R?
  3. Bagaimana performa metode Bagging berdasarkan hasil evaluasi model?

1.3 Tujuan

  1. Mahasiswa mampu memahami konsep dasar dan prinsip kerja metode Bagging.
  2. Mahasiswa mampu mengimplementasikan metode Bagging menggunakan perangkat lunak R.
  3. Mahasiswa mampu mengevaluasi performa metode Bagging.

BAB II TINJAUAN PUSTAKA

2.1 Machine Learning, Ensemble Learning, dan Bagging

Machine learning merupakan pendekatan yang memungkinkan komputer mempelajari pola dari data atau pengalaman sebelumnya untuk menyelesaikan suatu permasalahan (Alpaydın, 2020). Supervised learning menggunakan data yang memiliki variabel prediktor dan variabel respons dalam proses pembelajarannya. Jenis variabel respons menentukan jenis permasalahannya, yaitu klasifikasi untuk respons kategorik dan regresi untuk respons numerik (Fransiska, 2026).

Model tunggal seperti satu pohon keputusan mudah diinterpretasikan, tetapi hasilnya dapat berubah cukup besar ketika data pelatihan berubah sedikit (James dkk., 2021). Ensemble learning mengatasi hal tersebut dengan menggabungkan prediksi dari dua model dasar atau lebih sehingga hasil akhir tidak bergantung pada satu model saja (Mienye & Sun, 2022). Tiga kelompok utama metode ensemble adalah bagging, boosting, dan stacking (Mienye & Sun, 2022).

Bootstrap Aggregating atau Bagging merupakan metode ensemble yang menggabungkan prediksi dari beberapa model yang dilatih pada sampel bootstrap berbeda (Mienye & Sun, 2022). Sampel bootstrap diperoleh dengan pengambilan acak berpengembalian dari data pelatihan sehingga setiap sampel memiliki ukuran yang sama dengan data asli (James dkk., 2021). Hasil prediksi dari seluruh model dirata-ratakan pada respons numerik atau digabungkan melalui pemungutan suara terbanyak pada respons kategorik (James dkk., 2021). Metode ini pertama kali diusulkan oleh Leo Breiman untuk memperbaiki hasil permasalahan klasifikasi (Fransiska, 2026).

Pohon keputusan yang tumbuh dalam umumnya memiliki bias rendah tetapi variance tinggi sehingga hasilnya sangat dipengaruhi oleh data pelatihan (James dkk., 2021). Perata-rataan dari banyak pohon yang dibangun pada sampel berbeda menurunkan variance tersebut tanpa menaikkan bias secara berarti (James dkk., 2021). Karakteristik ini menjadikan pohon keputusan sebagai model dasar yang umum digunakan dalam Bagging (Fransiska, 2026). Beberapa karakteristik penting Bagging adalah sebagai berikut.

  • Setiap model dibangun secara paralel dan independen satu sama lain (Fransiska, 2026).
  • Metode ini membantu menurunkan variance, tetapi tidak efektif untuk mengurangi bias (Fransiska, 2026).
  • Metode ini paling sesuai untuk model dengan variance tinggi dan bias rendah, yaitu model yang kompleks (Fransiska, 2026).

Random Forest merupakan pengembangan dari Bagging yang membangun banyak pohon pada sampel bootstrap dan menggabungkan hasilnya (Mienye & Sun, 2022). Perbedaannya, pada setiap pemisahan simpul hanya sebagian variabel prediktor yang dipilih secara acak sebagai kandidat (James dkk., 2021). Pemilihan acak tersebut membuat pohon-pohon dalam hutan menjadi lebih beragam sehingga korelasi antarpohon berkurang (James dkk., 2021). Bagging dapat dipandang sebagai kasus khusus Random Forest ketika seluruh variabel prediktor dipertimbangkan pada setiap pemisahan (James dkk., 2021).

2.2 Prinsip Kerja dan Jenis Bagging

Prinsip kerja Bagging terdiri atas pembentukan banyak sampel, pelatihan model pada tiap sampel, dan penggabungan hasil prediksi (Fransiska, 2026). Ketiga proses tersebut dilakukan secara berurutan sehingga menghasilkan satu prediksi akhir untuk setiap pengamatan. Tahapan tersebut dibagi menjadi empat bagian berikut.

  1. Pengambilan sampel bootstrap Sebanyak \(B\) sampel bootstrap diambil dengan pengembalian dari data pelatihan berukuran \(n\). Setiap sampel berukuran sama dengan data asli sehingga sebagian pengamatan dapat muncul berulang dan sebagian lainnya tidak terpilih. Nilai \(B\) perlu ditentukan secara wajar agar hasil agregasi stabil tanpa memberatkan komputasi (Fransiska, 2026).

  2. Pelatihan model dasar Satu model dasar, misalnya pohon keputusan, dilatih pada masing-masing sampel bootstrap. Proses ini menghasilkan \(B\) model yang berbeda karena data pelatihan tiap model berbeda. Model-model tersebut dibangun secara paralel dan tidak saling memengaruhi (Fransiska, 2026).

  3. Penyimpanan hasil prediksi Setiap model menghasilkan prediksi untuk pengamatan yang akan diprediksi. Hasil prediksi dari seluruh model disimpan untuk digabungkan pada tahap berikutnya. Penyimpanan dilakukan untuk setiap pengamatan pada data yang dievaluasi (Fransiska, 2026).

  4. Agregasi prediksi Prediksi dari seluruh model digabungkan menjadi satu prediksi akhir. Cara penggabungan bergantung pada jenis variabel respons. Penggabungan dapat berupa rata-rata, voting mayoritas, voting tertimbang, atau cara khusus lainnya (Fransiska, 2026).

Prediksi akhir untuk respons numerik diperoleh dari rata-rata prediksi seluruh model (James dkk., 2021). Penggabungan ini menurunkan keragaman prediksi karena kesalahan acak masing-masing pohon cenderung saling mengimbangi. Rumus prediksi akhir Bagging untuk respons numerik adalah sebagai berikut.

\[ \hat{f}_{bag}(x)=\frac{1}{B}\sum_{b=1}^{B}\hat{f}^{*b}(x) \]

Respons kategorik ditangani melalui pemungutan suara, yaitu setiap model memberikan satu suara untuk kelas prediksinya (James dkk., 2021). Kelas yang memperoleh suara terbanyak ditetapkan sebagai prediksi akhir. Rumus prediksi akhir Bagging untuk respons kategorik adalah sebagai berikut.

\[ \hat{y}_{bag}(x)=\arg\max_{k}\sum_{b=1}^{B}I\left(\hat{f}^{*b}(x)=k\right) \]

Keterangan:

  • \(B\) merupakan jumlah sampel bootstrap atau jumlah model dasar.
  • \(\hat{f}^{*b}(x)\) merupakan prediksi model ke-\(b\) untuk pengamatan \(x\).
  • \(I(\cdot)\) merupakan fungsi indikator yang bernilai 1 jika kondisi di dalam tanda kurung terpenuhi dan 0 jika tidak.
  • \(k\) merupakan kelas pada variabel respons.

Setiap sampel bootstrap tidak memuat seluruh pengamatan asli. Peluang suatu pengamatan tidak terpilih pada satu sampel adalah \((1-1/n)^n\), yang mendekati 0,368 untuk \(n\) yang besar. Rata-rata sekitar dua pertiga pengamatan digunakan pada setiap pohon sehingga sekitar sepertiga lainnya tidak terpakai (James dkk., 2021). Pengamatan yang tidak terpakai tersebut disebut out-of-bag (OOB) dan dapat dimanfaatkan untuk menaksir galat prediksi tanpa data uji yang terpisah (James dkk., 2021). Sintaks praktikum mengaktifkan penaksiran OOB melalui argumen coob = TRUE pada fungsi bagging() dari paket ipred (Fransiska, 2026).

Bagging dapat diterapkan pada kedua jenis pohon keputusan. Perbedaannya terletak pada jenis variabel respons, cara agregasi, dan ukuran evaluasi yang digunakan (Fransiska, 2026). Perbedaan tersebut dirangkum pada tabel berikut.

Aspek Bagging Classification Tree Bagging Regression Tree
Variabel respons Kategorik Numerik atau kontinu
Agregasi Voting mayoritas atau rata-rata probabilitas Rata-rata nilai prediksi
Metrik evaluasi Accuracy, precision, recall, F1, ROC-AUC MSE, RMSE, MAE, R²

2.3 Evaluasi Performa Model dan Bukti Empiris Bagging

Kinerja model Bagging Regression Tree dapat dievaluasi menggunakan Mean Squared Error (MSE), Root Mean Squared Error (RMSE), dan koefisien determinasi (R²) (Fransiska, 2026). MSE mengukur rata-rata kuadrat selisih nilai aktual dan nilai prediksi, RMSE merupakan akar kuadrat dari MSE, sedangkan R² mengukur proporsi keragaman respons yang dijelaskan model. Rumus ketiga ukuran tersebut adalah sebagai berikut.

\[ MSE=\frac{1}{n}\sum_{i=1}^{n}(y_i-\hat{y}_i)^2 \]

\[ RMSE=\sqrt{MSE} \]

\[ R^2=1-\frac{\sum_{i=1}^{n}(y_i-\hat{y}_i)^2}{\sum_{i=1}^{n}(y_i-\bar{y})^2} \]

Keterangan:

  • \(n\) merupakan jumlah pengamatan.
  • \(y_i\) merupakan nilai aktual.
  • \(\hat{y}_i\) merupakan nilai prediksi.
  • \(\bar{y}\) merupakan rata-rata nilai aktual.

Nilai MSE dan RMSE yang lebih kecil menunjukkan kesalahan prediksi yang lebih rendah. RMSE memiliki satuan yang sama dengan variabel respons sehingga lebih mudah ditafsirkan. Nilai R² yang mendekati 1 menunjukkan bahwa model menjelaskan sebagian besar keragaman nilai aktual. Chicco dkk. (2021) menyarankan R² sebagai ukuran standar evaluasi regresi karena lebih informatif dan tidak memiliki keterbatasan interpretasi seperti MSE dan RMSE.

Evaluasi Bagging Classification Tree didasarkan pada tabel konfusi yang memuat true positive (TP), true negative (TN), false positive (FP), dan false negative (FN) (Fransiska, 2026). Tabel ini membandingkan kelas aktual dengan kelas prediksi untuk setiap pengamatan. Empat ukuran yang umum dihitung dari tabel tersebut dirumuskan sebagai berikut.

\[ Akurasi=\frac{TP+TN}{TP+TN+FP+FN} \]

\[ Presisi=\frac{TP}{TP+FP} \]

\[ Recall=\frac{TP}{TP+FN} \]

\[ Spesifisitas=\frac{TN}{TN+FP} \]

Akurasi menunjukkan proporsi prediksi yang benar secara keseluruhan. Presisi menunjukkan ketepatan prediksi pada kelas positif. Recall menunjukkan kemampuan model menemukan pengamatan kelas positif yang sebenarnya. Spesifisitas menunjukkan kemampuan model mengenali pengamatan kelas negatif.

Kinerja Bagging Regression Tree telah diuji secara empiris oleh Breiman (1996) menggunakan lima data dengan respons numerik, yaitu Boston Housing, Ozone, serta tiga data simulasi Friedman #1, #2, dan #3. Pengujian membandingkan galat kuadrat uji pada satu pohon dengan galat pada prediktor Bagging yang merata-ratakan 25 pohon dari sampel bootstrap (Breiman, 1996). Data simulasi menggunakan 200 kasus sebagai data pelatihan dan 1.000 kasus sebagai data uji, sedangkan pembagian acak diulang 100 kali dan galatnya dirata-ratakan (Breiman, 1996).

Hasil pengujian dirangkum pada Tabel 8 dalam artikel tersebut, yaitu rata-rata galat kuadrat uji pohon tunggal dan Bagging. Penurunan galat berkisar antara 21% sampai 46% pada kelima data (Breiman, 1996). Hasil tersebut disajikan pada tabel berikut.

Data Pohon tunggal Bagging Penurunan
Boston Housing 20,0 11,6 42%
Ozone 23,9 18,8 21%
Friedman #1 11,4 6,1 46%
Friedman #2 31.100 22.100 29%
Friedman #3 0,0403 0,0242 40%

Data Friedman #1 memiliki sepuluh prediktor berdistribusi seragam pada selang \([0,1]\), dan hanya lima di antaranya yang membentuk respons (Breiman, 1996). Rata-rata galat kuadrat uji pada data ini turun dari 11,4 pada pohon tunggal menjadi 6,1 pada Bagging, atau sekitar 46% (Breiman, 1996). Penurunan tersebut merupakan yang terbesar di antara kelima data, tetapi angkanya berasal dari rata-rata 100 pengulangan dengan data uji terpisah dan pemangkasan pohon sehingga tidak dapat dibandingkan langsung dengan hasil praktikum ini.

Breiman (1996) menggunakan 25 replikasi bootstrap pada pohon regresi dan menyatakan bahwa jumlah tersebut dipilih karena tampak wajar, bukan karena pasti diperlukan atau mencukupi. Breiman (1996) juga memperkirakan bahwa respons numerik membutuhkan replikasi yang lebih sedikit daripada klasifikasi dengan banyak kelas. Percobaan pada data klasifikasi waveform menunjukkan bahwa sebagian besar perbaikan sudah tercapai pada 10 replikasi dan hampir tidak berubah setelah 25 replikasi (Breiman, 1996). Temuan ini relevan sebagai latar belakang perbandingan nbagg sebesar 25, 50, dan 100 dalam praktikum ini.

BAB III METODE PENELITIAN

3.1 Sumber Data

Data yang digunakan dalam praktikum ini merupakan data kuantitatif hasil simulasi yang dibangkitkan menggunakan fungsi mlbench.friedman1() dari paket mlbench pada perangkat lunak R. Dataset tersebut berisi 200 pengamatan dengan sepuluh variabel prediktor dan satu variabel respons. Dataset ini digunakan untuk membangun model Bagging Regression Tree guna memprediksi variabel respons dan membandingkan hasilnya pada jumlah sampel bootstrap yang berbeda. Data diperiksa terlebih dahulu untuk memastikan tidak terdapat nilai hilang (missing value) sebelum pemodelan dilakukan.

3.2 Variabel Penelitian

Variabel penelitian terdiri atas variabel respons dan variabel prediktor. Variabel respons yang digunakan adalah y, yaitu nilai kontinu hasil simulasi Friedman 1. Variabel y merupakan variabel kuantitatif sehingga sesuai untuk pemodelan regresi.

Variabel prediktor merupakan x.1 sampai x.10, yang seluruhnya bersifat kontinu dengan nilai antara 0 dan 1. Hanya lima variabel pertama yang membentuk y, sedangkan lima variabel terakhir tidak berpengaruh terhadap respons. Seluruh variabel tersebut digunakan sebagai dasar pembentukan pohon regresi untuk mengidentifikasi pola hubungan antara variabel prediktor dan respons.

3.3 Langkah-langkah Analisis

Model Bagging Regression dibangun menggunakan fungsi bagging() dari paket ipred dengan tiga nilai nbagg, yaitu 25, 50, dan 100. Kinerja setiap model dievaluasi menggunakan metrik evaluasi regresi, yaitu Mean Squared Error (MSE), Root Mean Squared Error (RMSE), dan koefisien determinasi (R²). Langkah-langkah analisis yang dilakukan dalam praktikum Bagging Regression menggunakan data Friedman adalah sebagai berikut.

  1. Membuka aplikasi RStudio.
  2. Memanggil paket ipred dan mlbench ke dalam R.
  3. Membangkitkan data Friedman 1 sebanyak 200 pengamatan menggunakan mlbench.friedman1() dan mengubahnya menjadi data frame.
  4. Memeriksa struktur data, jumlah observasi, jumlah variabel, dan tipe data.
  5. Memeriksa keberadaan missing value pada setiap variabel.
  6. Menentukan y sebagai variabel respons dan x.1 sampai x.10 sebagai variabel prediktor.
  7. Membangun model Bagging Regression dengan nbagg = 25 dan coob = TRUE.
  8. Membangun model Bagging Regression dengan nbagg = 50 dan coob = TRUE.
  9. Membangun model Bagging Regression dengan nbagg = 100 dan coob = TRUE.
  10. Melihat ringkasan model dan estimasi galat out-of-bag dari masing-masing model.
  11. Melihat struktur pohon regresi pertama pada model Bagging.
  12. Melakukan prediksi nilai y menggunakan masing-masing model.
  13. Menyusun tabel perbandingan nilai aktual dan nilai prediksi.
  14. Menghitung MSE, RMSE, dan R² untuk masing-masing model.
  15. Membandingkan metrik evaluasi dari ketiga model untuk mengetahui pengaruh jumlah nbagg.
  16. Memvisualisasikan perbandingan nilai aktual dan nilai prediksi dalam grafik garis.
  17. Menarik kesimpulan berdasarkan hasil pemodelan dan perbandingan metrik evaluasi..

BAB IV HASIL DAN PEMBAHASAN

Praktikum ini bertujuan memprediksi variabel y pada data Friedman 1 menggunakan metode Bagging Regression Tree. Tahapan yang dilakukan meliputi pembangkitan dan pemeriksaan data, pembentukan model, pengamatan struktur pohon, prediksi dan evaluasi menggunakan MSE, RMSE, dan \(R^2\), visualisasi hasil prediksi, serta perbandingan model dengan nbagg sebesar 25, 50, dan 100. Seluruh hasil diperoleh menggunakan set.seed(123) sehingga dapat direproduksi.

4.1 Library dan Pembangkitan Data

Tahap awal dilakukan dengan memanggil library mlbench untuk membangkitkan data dan library ipred yang menyediakan fungsi bagging(). Data Friedman 1 dibangkitkan sebanyak 200 pengamatan menggunakan fungsi mlbench.friedman1() dan disimpan sebagai data frame bernama learn. Fungsi set.seed() digunakan agar data dan sampel bootstrap yang terbentuk dapat direproduksi ketika sintaks dijalankan kembali. Sintaks yang digunakan adalah sebagai berikut.

# Library
library("mlbench")
library("ipred")

# Pembangkitan data
set.seed(123)
learn <- as.data.frame(mlbench.friedman1(200))

# Pemeriksaan data
str(learn)
## 'data.frame':    200 obs. of  11 variables:
##  $ x.1 : num  0.288 0.788 0.409 0.883 0.94 ...
##  $ x.2 : num  0.239 0.962 0.601 0.515 0.403 ...
##  $ x.3 : num  0.986 0.137 0.905 0.576 0.395 ...
##  $ x.4 : num  0.237 0.686 0.226 0.318 0.174 ...
##  $ x.5 : num  0.471 0.366 0.121 0.047 0.263 ...
##  $ x.6 : num  0.274 0.594 0.16 0.853 0.848 ...
##  $ x.7 : num  0.859 0.887 0.489 0.718 0.487 ...
##  $ x.8 : num  0.2332 0.2307 0.0617 0.4971 0.2441 ...
##  $ x.9 : num  0.639 0.125 0.255 0.821 0.804 ...
##  $ x.10: num  0.155 0.846 0.214 0.67 0.618 ...
##  $ y   : num  10.6 17.2 13.1 13.3 10 ...
dim(learn)
## [1] 200  11
colSums(is.na(learn))
##  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

Fungsi str() digunakan untuk melihat struktur data, dim() untuk melihat dimensi data, dan colSums(is.na()) untuk menghitung jumlah missing value pada setiap variabel. Hasilnya menunjukkan bahwa data terdiri atas 200 observasi dan 11 variabel, yaitu x.1 sampai x.10 sebagai variabel prediktor dan y sebagai variabel respons. Seluruh variabel bertipe numerik sehingga sesuai untuk pemodelan regresi. Jumlah missing value pada setiap variabel bernilai 0 sehingga data dapat langsung digunakan tanpa penanganan tambahan.

4.2 Pembentukan Model Bagging Regression

Model dibentuk menggunakan fungsi bagging() dengan formula y ~ ., yang berarti y diprediksi menggunakan seluruh variabel lainnya. Argumen coob = TRUE digunakan agar galat out-of-bag (OOB) ikut ditaksir. Argumen nbagg tidak diisi sehingga model menggunakan nilai bawaan, yaitu 25 sampel bootstrap. Sintaks yang digunakan adalah sebagai berikut.

# Bagging Regression (nbagg = 25)
mod2 <- bagging(y ~ ., data = learn, coob = TRUE)
print(mod2)
## 
## Bagging regression trees with 25 bootstrap replications 
## 
## Call: bagging.data.frame(formula = y ~ ., data = learn, coob = TRUE)
## 
## Out-of-bag estimate of root mean squared error:  2.7964
summary(mod2)
##        Length Class      Mode   
## y      200    -none-     numeric
## X       10    data.frame list   
## mtrees  25    -none-     list   
## OOB      1    -none-     logical
## comb     1    -none-     logical
## err      1    -none-     numeric
## call     4    -none-     call

Hasil print(mod2) menunjukkan bahwa model terbentuk dari 25 replikasi bootstrap dengan estimasi RMSE out-of-bag sebesar 2,7964. Hasil summary(mod2) memperlihatkan komponen model, yaitu y berisi 200 nilai respons, X berisi 10 variabel prediktor, dan mtrees berisi 25 pohon regresi. Estimasi galat OOB dihitung dari pengamatan yang tidak terambil pada sampel bootstrap suatu pohon sehingga berfungsi sebagai ukuran galat di luar sampel pelatihan (James dkk., 2021).

4.3 Struktur Pohon Regresi Pertama

Model Bagging terdiri atas 25 pohon regresi, dan setiap pohon dapat diperiksa melalui komponen mtrees. Pohon pertama dipilih untuk melihat bentuk aturan pemisahan yang dipelajari oleh salah satu model dasar. Sintaks yang digunakan adalah sebagai berikut.

# Struktur pohon regresi pertama
mod2$mtrees[[1]]$btree
## n= 200 
## 
## node), split, n, deviance, yval
##       * denotes terminal node
## 
##  1) root 200 4678.655000 13.851910  
##    2) x.4< 0.7560337 162 2582.816000 12.498900  
##      4) x.2< 0.339064 66  452.753900  9.687649  
##        8) x.4< 0.5218248 43  257.578900  8.688367  
##         16) x.5< 0.4991911 21   29.866870  7.565357 *
##         17) x.5>=0.4991911 22  175.947400  9.760331  
##           34) x.2< 0.09833049 7    5.237418  7.155586 *
##           35) x.2>=0.09833049 15  101.053800 10.975880 *
##        9) x.4>=0.5218248 23   71.960900 11.555870 *
##      5) x.2>=0.339064 96 1249.850000 14.431640  
##       10) x.4< 0.256311 43  366.651000 12.278790  
##         20) x.5< 0.5721112 20  185.267900 10.570020  
##           40) x.2< 0.5298973 10   55.427400  8.467155 *
##           41) x.2>=0.5298973 10   41.399530 12.672890 *
##         21) x.5>=0.5721112 23   72.204120 13.764680 *
##       11) x.4>=0.256311 53  522.214500 16.178280  
##         22) x.1< 0.2376226 16   99.791120 12.842810 *
##         23) x.1>=0.2376226 37  167.441500 17.620650 *
##    3) x.4>=0.7560337 38  534.988000 19.619990  
##      6) x.1< 0.5942426 20  124.574800 16.951610  
##       12) x.1< 0.1951799 7   21.312490 14.568610 *
##       13) x.1>=0.1951799 13   42.107600 18.234760 *
##      7) x.1>=0.5942426 18  109.779600 22.584860 *

Simpul akar pohon pertama memuat 200 observasi dengan nilai prediksi sebesar 13,852. Pemisahan pertama dilakukan berdasarkan variabel x.4 pada nilai 0,756, sehingga terbentuk simpul dengan x.4 < 0,756 berisi 162 observasi (81%) dengan prediksi 12,499 dan simpul dengan x.4 >= 0,756 berisi 38 observasi (19%) dengan prediksi 19,620. Cabang kiri dilanjutkan menggunakan x.2, x.4, x.5, dan x.1, sedangkan cabang kanan dilanjutkan menggunakan x.1 pada nilai 0,594.

Pohon pertama memiliki 12 simpul terminal. Nilai prediksi simpul terminal terendah adalah 7,156 (7 observasi), sedangkan yang tertinggi adalah 22,585 (18 observasi). Pemisah yang muncul pada pohon ini hanya x.1, x.2, x.4, dan x.5, sedangkan variabel pengganggu x.6 sampai x.10 tidak digunakan. Pohon ini hanya satu dari 25 pohon sehingga belum menggambarkan seluruh model, tetapi cukup memperlihatkan bahwa model dasar membentuk kelompok pengamatan dengan nilai respons yang relatif serupa.

4.4 Prediksi dan Evaluasi Model

Prediksi dilakukan menggunakan fungsi predict() dan hasilnya dibandingkan dengan nilai aktual y. Metrik evaluasi yang dihitung adalah Mean Squared Error (MSE), Root Mean Squared Error (RMSE), dan koefisien determinasi (R²). Sintaks yang digunakan adalah sebagai berikut.

# Prediksi
pred <- predict(mod2, newdata = learn)

hasil <- data.frame(Aktual = learn$y, Prediksi = pred)
head(hasil, 10)
##       Aktual  Prediksi
## 1  10.594975  9.729808
## 2  17.165302 17.595838
## 3  13.112492 13.804823
## 4  13.303440 14.820600
## 5  10.004662 11.235601
## 6  15.204950 17.254229
## 7  10.687788 10.523892
## 8  23.748416 19.443064
## 9  11.168910 11.057385
## 10  9.731385  9.699965
# Evaluasi
actual <- learn$y
MSE <- mean((actual - pred)^2); MSE
## [1] 3.500615
RMSE <- sqrt(MSE); RMSE
## [1] 1.870993
R2 <- 1 - sum((actual - pred)^2) / sum((actual - mean(actual))^2); R2
## [1] 0.8434942

Tabel berikut menyajikan sepuluh observasi pertama untuk membandingkan nilai aktual dan nilai prediksi. Sebagian besar prediksi berada dekat dengan nilai aktualnya, misalnya pada observasi ke-7 dan ke-10. Selisih yang lebih besar terlihat pada observasi ke-8, yaitu nilai aktual 23,748 yang diprediksi sebesar 19,443.

Observasi Aktual Prediksi
1 10,595 9,730
2 17,165 17,596
3 13,112 13,805
4 13,303 14,821
5 10,005 11,236
6 15,205 17,254
7 10,688 10,524
8 23,748 19,443
9 11,169 11,057
10 9,731 9,700

Hasil evaluasi model dengan nbagg = 25 adalah MSE sebesar 3,5006, RMSE sebesar 1,8710, dan R² sebesar 0,8435. Nilai RMSE menunjukkan bahwa simpangan prediksi terhadap nilai aktual rata-rata sekitar 1,87 satuan. Nilai R² menunjukkan bahwa sekitar 84,35% keragaman y dapat dijelaskan oleh model. Ketiga ukuran tersebut dihitung pada data yang sama dengan data pelatihan sehingga cenderung lebih optimistis, dan hal ini terlihat dari estimasi RMSE OOB sebesar 2,7964 yang lebih besar daripada RMSE sebesar 1,8710.

4.5 Visualisasi Nilai Aktual dan Prediksi

Perbandingan nilai aktual dan nilai prediksi divisualisasikan dalam grafik garis agar kesesuaian pola keduanya dapat diamati. Garis merah menunjukkan nilai aktual dan garis biru putus-putus menunjukkan nilai prediksi untuk setiap observasi. Sintaks yang digunakan adalah sebagai berikut.

# Plot aktual dan prediksi
plot(actual, type = "l", lwd = 2,
     xlab = "Observasi", ylab = "Nilai Y",
     main = "Perbandingan Nilai Aktual dan Prediksi", col = "red")

# Garis prediksi
lines(pred, lwd = 2, lty = 2, col = "blue")

# Legenda
legend("topright", legend = c("Aktual", "Prediksi"), lty = c(1, 2),
       lwd = c(2, 2))

Gambar 1. Perbandingan nilai aktual dan prediksi (nbagg = 25)

Gambar 1. Perbandingan nilai aktual dan prediksi (nbagg = 25)

Grafik menunjukkan bahwa garis prediksi mengikuti pola naik turun nilai aktual dengan cukup baik. Korelasi antara nilai aktual dan nilai prediksi bernilai sekitar 0,93 sehingga kesesuaian pola tersebut didukung secara numerik. Garis prediksi tampak lebih halus daripada garis aktual, dan rentang prediksi (7,51 sampai 22,65) lebih sempit daripada rentang nilai aktual (4,39 sampai 27,72). Kondisi ini wajar karena prediksi Bagging merupakan rata-rata banyak pohon sehingga nilai-nilai ekstrem cenderung kurang tertangkap.

4.6 Perbandingan Model dengan nbagg 25, 50, dan 100

Perbandingan dilakukan dengan membangun dua model tambahan menggunakan nbagg = 50 dan nbagg = 100, sedangkan model dengan nbagg = 25 telah dibentuk pada tahap sebelumnya. Ketiga model dilatih pada data yang sama sehingga perbedaan hasil terutama mencerminkan pengaruh jumlah sampel bootstrap. Metrik evaluasi dihitung menggunakan fungsi yang sama, kemudian dirangkum bersama estimasi RMSE OOB. Sintaks yang digunakan adalah sebagai berikut.

# Model dengan nbagg = 50 dan nbagg = 100
mod50 <- bagging(y ~ ., data = learn, nbagg = 50, coob = TRUE)
mod100 <- bagging(y ~ ., data = learn, nbagg = 100, coob = TRUE)

# Prediksi
pred50 <- predict(mod50, newdata = learn)
pred100 <- predict(mod100, newdata = learn)

# Fungsi evaluasi
evaluasi <- function(actual, pred) {
  MSE <- mean((actual - pred)^2)
  RMSE <- sqrt(MSE)
  R2 <- 1 - sum((actual - pred)^2) / sum((actual - mean(actual))^2)
  c(MSE = MSE, RMSE = RMSE, R2 = R2)
}

# Perbandingan
hasil_nbagg <- data.frame(
  nbagg = c(25, 50, 100),
  OOB_RMSE = c(mod2$err, mod50$err, mod100$err),
  rbind(
    evaluasi(actual, pred),
    evaluasi(actual, pred50),
    evaluasi(actual, pred100)
  )
)
hasil_nbagg
##   nbagg OOB_RMSE      MSE     RMSE        R2
## 1    25 2.796421 3.500615 1.870993 0.8434942
## 2    50 2.726002 3.671542 1.916127 0.8358524
## 3   100 2.631919 3.443739 1.855731 0.8460371

Hasil perbandingan ketiga model disajikan pada tabel berikut. Tabel memuat estimasi RMSE OOB serta MSE, RMSE, dan \(R^2\) yang dihitung pada data pelatihan. Model dengan nbagg = 100 menghasilkan nilai terbaik pada seluruh ukuran.

nbagg RMSE OOB MSE RMSE \(R^2\)
25 2,7964 3,5006 1,8710 0,8435
50 2,7260 3,6715 1,9161 0,8359
100 2,6319 3,4437 1,8557 0,8460

Estimasi RMSE OOB menurun secara konsisten seiring bertambahnya nbagg, yaitu dari 2,7964 menjadi 2,7260 dan kemudian 2,6319. Penurunan total sebesar 0,1645 atau sekitar 5,88% menunjukkan bahwa penambahan jumlah pohon memperbaiki kemampuan prediksi pada pengamatan di luar sampel. Hasil ini sejalan dengan prinsip Bagging, yaitu semakin banyak model yang dirata-ratakan, semakin stabil prediksi akhirnya.

Ukuran yang dihitung pada data pelatihan tidak menurun secara konsisten. Model dengan nbagg = 50 memiliki MSE tertinggi (3,6715) dan \(R^2\) terendah (0,8359), sedangkan model dengan nbagg = 100 memiliki MSE terendah (3,4437) dan R² tertinggi (0,8460). Selisih MSE antara nbagg = 100 dan nbagg = 25 hanya sekitar 0,0569 atau 1,62% sehingga perbedaannya relatif kecil. Fluktuasi tersebut dapat terjadi karena sampel bootstrap bersifat acak dan ukuran ini dihitung pada data yang sama dengan data pelatihan, sehingga estimasi RMSE OOB lebih layak dijadikan dasar perbandingan.

Hasil keseluruhan menunjukkan bahwa model Bagging Regression dengan nbagg = 100 memberikan kinerja terbaik pada data Friedman 1, baik berdasarkan RMSE OOB maupun ukuran pada data pelatihan. Peningkatan kinerja akibat penambahan nbagg bersifat bertahap dan relatif kecil, sedangkan waktu komputasi bertambah karena jumlah pohon yang dibangun lebih banyak. Perbandingan ini hanya didasarkan pada satu kali pembangkitan data, sehingga selisih antarmodel dapat berubah apabila data atau seed yang digunakan berbeda.

BAB V KESIMPULAN

5.1 Kesimpulan

Bagging Regression Tree merupakan metode machine learning dalam kelompok ensemble learning yang menggabungkan prediksi dari sejumlah pohon regresi yang dibentuk menggunakan sampel bootstrap. Setiap pohon dilatih menggunakan sampel yang berbeda melalui pengambilan acak dengan pengembalian. Prediksi akhir diperoleh dari rata-rata prediksi seluruh pohon untuk menghasilkan model yang lebih stabil. Metode ini bertujuan mengurangi variance pada model pohon regresi yang cenderung sensitif terhadap perubahan data pelatihan. Kinerja model dapat dievaluasi menggunakan Mean Squared Error (MSE), Root Mean Squared Error (RMSE), koefisien determinasi (\(R^2\)), dan galat out-of-bag (OOB).

Penerapan Bagging Regression Tree dilakukan melalui beberapa tahapan, yaitu pembangkitan dan pemeriksaan data, pembentukan model menggunakan sampel bootstrap, pengamatan struktur pohon regresi, prediksi, dan evaluasi kinerja model. Struktur pohon dapat diamati melalui aturan pemisahan pada simpul akar hingga simpul terminal untuk memahami pembentukan prediksi. Evaluasi model dilakukan dengan membandingkan nilai aktual dan prediksi menggunakan MSE, RMSE, dan \(R^2\). Estimasi RMSE OOB juga digunakan untuk menilai galat prediksi berdasarkan pengamatan yang tidak terpilih dalam sampel bootstrap, sehingga memberikan informasi tambahan mengenai kinerja model di luar pengamatan yang digunakan untuk membentuk setiap pohon.

Perbandingan jumlah pohon dilakukan untuk mengetahui pengaruh banyaknya sampel bootstrap terhadap kinerja Bagging Regression Tree. Jumlah pohon yang lebih banyak memungkinkan prediksi akhir diperoleh dari agregasi model yang lebih banyak sehingga hasilnya cenderung lebih stabil. Penentuan model terbaik dapat dilakukan dengan membandingkan nilai galat OOB serta ukuran evaluasi lainnya. Nilai MSE dan RMSE yang lebih rendah menunjukkan kesalahan prediksi yang lebih kecil, sedangkan nilai \(R^2\) yang lebih tinggi menunjukkan proporsi keragaman variabel respons yang dapat dijelaskan oleh model semakin besar. Evaluasi pada data pelatihan perlu dibedakan dari evaluasi pada data pengujian karena keduanya memberikan informasi yang berbeda mengenai kinerja model.

Hasil penerapan Bagging Regression Tree pada data simulasi Friedman 1 dengan 200 observasi menunjukkan bahwa model dengan 25 pohon menghasilkan MSE sebesar 3,5006, RMSE sebesar 1,8710, \(R^2\) sebesar 0,8435, dan RMSE OOB sebesar 2,7964. Perbandingan model dengan 25, 50, dan 100 pohon menunjukkan bahwa model dengan 100 pohon memberikan hasil terbaik, dengan MSE sebesar 3,4437, RMSE sebesar 1,8557, \(R^2\) sebesar 0,8460, dan RMSE OOB sebesar 2,6319. Nilai RMSE OOB menurun seiring bertambahnya jumlah pohon, sedangkan peningkatan kinerja berdasarkan ukuran evaluasi pada data pelatihan relatif kecil. Hasil tersebut menunjukkan bahwa model dengan 100 pohon memiliki kinerja terbaik di antara ketiga model yang dibandingkan pada praktikum ini.

Daftar Pustaka

Alpaydın, E. (2020). Introduction to machine learning (4th ed.). The MIT Press. https://mitpress.mit.edu/9780262043793/introduction-to-machine-learning/

Breiman, L. (1996). Bagging predictors. Machine Learning, 24(2), 123–140. https://doi.org/10.1007/BF00058655

Chicco, D., Warrens, M. J., & Jurman, G. (2021). The coefficient of determination R-squared is more informative than SMAPE, MAE, MAPE, MSE and RMSE in regression analysis evaluation. PeerJ Computer Science, 7, e623. https://doi.org/10.7717/peerj-cs.623

Fransiska, H. (2026). Modul Praktikum Machine Learning and Modern Prediction. Laboratorium Matematika Universitas Bengkulu.

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

Mienye, I. D., & Sun, Y. (2022). A survey of ensemble learning: Concepts, algorithms, applications, and prospects. IEEE Access, 10, 99129–99149. https://doi.org/10.1109/ACCESS.2022.3207287