Bagging dan Boosting merupakan dua metode dalam kelompok Ensemble. Metode Ensemble adalah metode pembelajaran mesin yang menggabungkan beberapa model untuk menghasilkan prediksi. Bagging (Bootstrap Aggregating) merupakan metode yang membangun beberapa model menggunakan sampel bootstrap dari data pelatihan, kemudian menggabungkan hasil prediksi model-model tersebut untuk mengurangi varians dan membantu mengatasi overfitting (Zhang & Ma, 2012). Berbeda dengan Bagging, Boosting membangun model secara bertahap dengan memperhatikan kesalahan prediksi model sebelumnya sehingga model berikutnya dapat memperbaiki kesalahan tersebut (Putri & Arianto, 2024).
Bagging juga merupakan metode Ensemble yang dapat meningkatkan kemampuan klasifikasi melalui penggabungan hasil klasifikasi dari sampel data pelatihan yang dibentuk secara acak. Metode ini dapat mengurangi varians dan membantu mencegah overfitting (Wahono & Suryana, 2013).
Bagaimana konsep dasar dan prinsip kerja metode Bagging (Bootstrap Aggregating)?
Bagaimana mengimplementasikan metode Bagging menggunakan perangkat lunak R?
Bagaimana mengevaluasi performa model Bagging?
Memahami konsep dasar dan prinsip kerja metode Bagging (Bootstrap Aggregating).
Mengimplementasikan metode Bagging menggunakan perangkat lunak R.
Mengevaluasi performa model Bagging.
Adapun batasan masalah pada penelitian ini yaitu gunakan data breast cancer kemudian lakukan bagging classification dengan bandingkan hasil dengan menggunakan nbagg=c(25, 50, 100) Kemudian hitung metrik evaluasinya
Bagging merupakan salah satu metode Ensemble Learning yang efektif dan banyak digunakan untuk meningkatkan kinerja klasifikasi (Liang dkk., 2014). Bagging juga dikenal sebagai metode untuk memperbaiki kinerja algoritma klasifikasi dalam Machine Learning (Breiman, 1996). Bagging bertujuan meningkatkan akurasi prediksi dengan menggabungkan beberapa model klasifikasi sehingga menghasilkan prediksi yang lebih baik dibandingkan penggunaan satu model saja (Nugroho & Religia, 2021).
Bootstrap Aggregating, yang juga disebut Bagging, merupakan algoritma Ensemble yang dapat meningkatkan stabilitas dan akurasi model serta mengurangi masalah overfitting. Metode ini dapat diterapkan pada berbagai algoritma pembelajaran. Pada regresi, hasil prediksi beberapa model digabungkan dengan menghitung rata-rata, sedangkan pada klasifikasi, hasil prediksi digabungkan menggunakan suara terbanyak (majority voting) untuk menghasilkan satu prediksi akhir (Fransiska, 2026).
Prinsip kerja Bagging dimulai dengan mengambil beberapa sampel bootstrap dari data pelatihan melalui pengambilan sampel dengan pengembalian (sampling with replacement). Setiap sampel digunakan untuk membangun model secara terpisah. Selanjutnya, hasil prediksi dari seluruh model digabungkan untuk memperoleh prediksi akhir. Pada klasifikasi, penggabungan dilakukan melalui voting dengan memilih kelas yang memperoleh suara terbanyak (Nugroho & Religia, 2021; Alfaro dkk., 2013).
Bagging bekerja dengan membentuk beberapa model dari sampel data pelatihan yang berbeda untuk meningkatkan kemampuan generalisasi dan mengurangi kesalahan prediksi (Cui dkk., 2024).
Cara kerja Bagging dengan menggabungkan semua hasil prediksi dengan voting dan tiap model memiliki bobot yang sama rata, (Kabari & Onwuka, 2019).Bagging merupakan algoritma ansemble yang efektif meningkatkan kinerja model dan dapat mengatasi masalah overfitting,(Lee et al., 2018).Bagging menghasilkan prediksi agregat yang diperoleh dengan aturan suara terbanyak dari setiap subruang yang dibangun, (Tuysuzoglu & Birant, 2020).
Bagging pertama kali diusulkan oleh Leo Breiman pada tahun 1994 untuk meningkatkan hasil dari suatu masalah klasifikasi. Langkah-langkah dalam bagging secara garis besar dibagi menjadi empat bagian (Fransiska, 2026):
Membuat sampel dari data pelatihan (training data); jumlah sampel harus dalam jumlah yang sesuai (tidak terlalu banyak maupun terlalu sedikit).
Melatih model pada masing-masing sampel.
Membuat classifier dari setiap model dan menyimpan hasilnya.
Berdasarkan jenis ensemble yang digunakan baik itu voting tertimbang (weighted vote), voting mayoritas (majority vote), atau cara khusus lainnya, hasil tersebut digabungkan untuk memprediksi data uji (test data).
Confusion Matrix merupakan matrix yang digunakan untuk menguji kebenaran model prediksi dengan kondisi sebenarnya. Confusion Matrix merupakan metode untuk menganalisis kinerja model klasifikasi (Fatmawati dkk., 2023). Persamaan Confusion Matrix adalah sebagai berikut (Majid & Nawangsih, 2025):
\[ {Accuracy} = \frac{TP + TN}{TP + FP + TN + FN} \times 100\% \]
\[ {Recall} = \frac{TP}{TP + FN} \times 100\% \]
\[ {Precision} = \frac{TP}{TP + FP} \times 100\% \]
\[ {Specificity} = \frac{TN}{TN + FP} \]
Keterangan (Danil dkk., 2025):
TP (True Positive): Data positif yang diklasifikasikan tepat sebagai positif,
FP (False Positive): Data negatif yang diklasifikasikan salah sebagai positif,
TN (True Negative): Data negatif yang klasifikasikan tepat sebagai negatif,
FN (False Negative): Data positif yang diklasifikasikan salah sebagai negatif.
1). 0.90-1.00 artinya sangat baik
2). 0.80-0.90 artinya baik
3). 0.70-0.80 artinya cukup
4). 0.60-0.70 artinya buruk
5). 0.50-0.60 artinya gagal
Sumber data yang digunakan dalam penelitian ini adalah data sekunder berupa dataset BreastCancer dari package mlbench pada program R, yang digunakan untuk klasifikasi kondisi kanker payudara.
Pada penelitian ini, variabel yang digunakan terdiri atas variabel prediktor dan variabel target. Variabel target yang digunakan yaitu Class, sedangkan variabel prediktor terdiri atas Cl.thickness (ketebalan gumpalan sel), Cell.size (keseragaman ukuran sel), Cell.shape (keseragaman bentuk sel), Marg.adhesion (perlekatan sel), Epith.c.size (ukuran sel epitel), Bare.nuclei (kondisi inti sel), Bl.cromatin (struktur kromatin sel), Normal.nucleoli (kondisi nukleolus sel), dan Mitoses (aktivitas pembelahan sel). Variabel Class menunjukkan kondisi kanker payudara yang dikategorikan menjadi benign (jinak) dan malignant (ganas).
Langkah-langkah analisis dalam praktikum ini adalah sebagai berikut:
Memuat dataset BreastCancer dari package
mlbench.
Membentuk model Bagging Classification dengan jumlah bootstrap
(nbagg) sebesar 25, 50, dan 100.
Melakukan prediksi kelas pada data testing menggunakan masing-masing model.
Membentuk confusion matrix dengan membandingkan hasil prediksi dan kelas aktual.
Menghitung nilai accuracy, precision, sensitivity, specificity, dan F1-Score untuk setiap model.
Membandingkan hasil evaluasi ketiga model untuk mengetahui perbedaan performa berdasarkan jumlah bootstrap yang digunakan.
## Loading required package: ggplot2
## Loading required package: lattice
## 'data.frame': 699 obs. of 11 variables:
## $ Id : chr "1000025" "1002945" "1015425" "1016277" ...
## $ Cl.thickness : Ord.factor w/ 10 levels "1"<"2"<"3"<"4"<..: 5 5 3 6 4 8 1 2 2 4 ...
## $ Cell.size : Ord.factor w/ 10 levels "1"<"2"<"3"<"4"<..: 1 4 1 8 1 10 1 1 1 2 ...
## $ Cell.shape : Ord.factor w/ 10 levels "1"<"2"<"3"<"4"<..: 1 4 1 8 1 10 1 2 1 1 ...
## $ Marg.adhesion : Ord.factor w/ 10 levels "1"<"2"<"3"<"4"<..: 1 5 1 1 3 8 1 1 1 1 ...
## $ Epith.c.size : Ord.factor w/ 10 levels "1"<"2"<"3"<"4"<..: 2 7 2 3 2 7 2 2 2 2 ...
## $ Bare.nuclei : Factor w/ 10 levels "1","2","3","4",..: 1 10 2 4 1 10 10 1 1 1 ...
## $ Bl.cromatin : Factor w/ 10 levels "1","2","3","4",..: 3 3 3 3 3 9 3 3 1 2 ...
## $ Normal.nucleoli: Factor w/ 10 levels "1","2","3","4",..: 1 2 1 7 1 7 1 1 1 1 ...
## $ Mitoses : Factor w/ 9 levels "1","2","3","4",..: 1 1 1 1 1 1 1 1 5 1 ...
## $ Class : Factor w/ 2 levels "benign","malignant": 1 1 1 1 1 2 1 1 1 1 ...
## Id Cl.thickness Cell.size Cell.shape Marg.adhesion
## Length :699 1 :145 1 :384 1 :353 1 :407
## N.unique :645 5 :130 10 : 67 2 : 59 2 : 58
## N.blank : 0 3 :108 3 : 52 10 : 58 3 : 58
## Min.nchar: 5 4 : 80 2 : 45 3 : 56 10 : 55
## Max.nchar: 8 10 : 69 4 : 40 4 : 44 4 : 33
## 2 : 50 5 : 30 5 : 34 8 : 25
## (Other):117 (Other): 81 (Other): 95 (Other): 63
## Epith.c.size Bare.nuclei Bl.cromatin Normal.nucleoli Mitoses
## 2 :386 1 :402 2 :166 1 :443 1 :579
## 3 : 72 10 :132 3 :165 10 : 61 2 : 35
## 4 : 48 2 : 30 1 :152 3 : 44 3 : 33
## 1 : 47 5 : 30 7 : 73 2 : 36 10 : 14
## 6 : 41 3 : 28 4 : 40 8 : 24 4 : 12
## 5 : 39 (Other): 61 5 : 34 6 : 22 7 : 9
## (Other): 66 NAs : 16 (Other): 69 (Other): 69 (Other): 17
## Class
## benign :458
## malignant:241
##
##
##
##
##
Library mlbench digunakan untuk menyediakan dataset BreastCancer, ipred untuk membangun model Bagging Classification, dan caret untuk membantu evaluasi model.
bc$Id <- NULL
bc <- na.omit(bc)
bc$Class <- droplevels(as.factor(bc$Class))
# Membagi data training dan testing
set.seed(123)
index <- createDataPartition(
bc$Class,
p = 0.7,
list = FALSE)
BreastCancer.train <- bc[index, ]
BreastCancer.test <- bc[-index, ]Pada tahap persiapan data, variabel Id dihapus karena hanya berfungsi sebagai identitas data, missing value dihapus menggunakan na.omit(), dan variabel Class diubah menjadi faktor. Data dibagi menjadi 70% data training dan 30% data testing untuk membentuk model dan mengevaluasi hasil klasifikasinya. Data training digunakan untuk membangun model, sedangkan data testing digunakan untuk mengevaluasi performa klasifikasi.
Model Bagging Classification dibentuk dengan jumlah bootstrap (nbagg) sebesar 25, 50, dan 100 untuk mengetahui pengaruh jumlah bootstrap terhadap performa klasifikasi. Ketiga model kemudian dibandingkan berdasarkan metrik evaluasi untuk menentukan jumlah bootstrap yang memberikan hasil terbaik.
hasil_bagging <- data.frame()
for (n in nbagg) {
set.seed(123)
model_bagging <- ipred::bagging(
Class ~ .,
data = BreastCancer.train,
nbagg = n,
coob = FALSE
)
# Prediksi data testing
pred_bagging <- predict(
model_bagging,
newdata = BreastCancer.test,
type = "class"
)
# Menghitung confusion matrix
cm <- confusionMatrix(
data = factor(
pred_bagging,
levels = levels(BreastCancer.test$Class)
),
reference = BreastCancer.test$Class,
positive = "malignant"
)
print(paste("Jumlah Bootstrap:", n))
print(cm)
# Menghitung metrik evaluasi
accuracy <- as.numeric(cm$overall["Accuracy"])
sensitivity <- as.numeric(cm$byClass["Sensitivity"])
specificity <- as.numeric(cm$byClass["Specificity"])
precision <- as.numeric(cm$byClass["Pos Pred Value"])
f1_score <- as.numeric(cm$byClass["F1"])
# Menyimpan hasil evaluasi
hasil_bagging <- rbind(
hasil_bagging,
data.frame(
nbagg = n,
Accuracy = accuracy,
Sensitivity = sensitivity,
Specificity = specificity,
Precision = precision,
F1_Score = f1_score
)
)
}## [1] "Jumlah Bootstrap: 25"
## Confusion Matrix and Statistics
##
## Reference
## Prediction benign malignant
## benign 131 3
## malignant 2 68
##
## Accuracy : 0.9755
## 95% CI : (0.9437, 0.992)
## No Information Rate : 0.652
## P-Value [Acc > NIR] : <2e-16
##
## Kappa : 0.9458
##
## Mcnemar's Test P-Value : 1
##
## Sensitivity : 0.9577
## Specificity : 0.9850
## Pos Pred Value : 0.9714
## Neg Pred Value : 0.9776
## Prevalence : 0.3480
## Detection Rate : 0.3333
## Detection Prevalence : 0.3431
## Balanced Accuracy : 0.9714
##
## 'Positive' Class : malignant
##
## [1] "Jumlah Bootstrap: 50"
## Confusion Matrix and Statistics
##
## Reference
## Prediction benign malignant
## benign 130 3
## malignant 3 68
##
## Accuracy : 0.9706
## 95% CI : (0.9371, 0.9891)
## No Information Rate : 0.652
## P-Value [Acc > NIR] : <2e-16
##
## Kappa : 0.9352
##
## Mcnemar's Test P-Value : 1
##
## Sensitivity : 0.9577
## Specificity : 0.9774
## Pos Pred Value : 0.9577
## Neg Pred Value : 0.9774
## Prevalence : 0.3480
## Detection Rate : 0.3333
## Detection Prevalence : 0.3480
## Balanced Accuracy : 0.9676
##
## 'Positive' Class : malignant
##
## [1] "Jumlah Bootstrap: 100"
## Confusion Matrix and Statistics
##
## Reference
## Prediction benign malignant
## benign 130 3
## malignant 3 68
##
## Accuracy : 0.9706
## 95% CI : (0.9371, 0.9891)
## No Information Rate : 0.652
## P-Value [Acc > NIR] : <2e-16
##
## Kappa : 0.9352
##
## Mcnemar's Test P-Value : 1
##
## Sensitivity : 0.9577
## Specificity : 0.9774
## Pos Pred Value : 0.9577
## Neg Pred Value : 0.9774
## Prevalence : 0.3480
## Detection Rate : 0.3333
## Detection Prevalence : 0.3480
## Balanced Accuracy : 0.9676
##
## 'Positive' Class : malignant
##
Pada tahap ini, hasil prediksi setiap model Bagging Classification dibandingkan dengan kelas aktual pada data testing menggunakan confusion matrix. Selanjutnya, dihitung nilai accuracy, sensitivity, specificity, precision, dan F1-score untuk mengevaluasi ketepatan klasifikasi serta kemampuan model dalam mengidentifikasi kelas benign dan malignant.
## nbagg Accuracy Sensitivity Specificity Precision F1_Score
## 1 25 0.9754902 0.9577465 0.9849624 0.9714286 0.9645390
## 2 50 0.9705882 0.9577465 0.9774436 0.9577465 0.9577465
## 3 100 0.9705882 0.9577465 0.9774436 0.9577465 0.9577465
Berdasarkan hasil evaluasi, model Bagging Classification dengan nbagg = 25 memperoleh nilai accuracy sebesar 0,9754. Artinya, model mampu mengklasifikasikan 97,54% data testing dengan benar. Sementara itu, model dengan nbagg = 50 dan nbagg = 100 memperoleh accuracy sebesar 97,05%. Hasil tersebut menunjukkan bahwa model dengan 25 bootstrap memiliki tingkat ketepatan klasifikasi yang lebih tinggi dibandingkan kedua model lainnya. Dengan demikian, penambahan jumlah bootstrap dari 25 menjadi 50 dan 100 tidak meningkatkan akurasi model pada data yang dianalisis.
## nbagg Accuracy Sensitivity Specificity Precision F1_Score
## 1 25 0.9754902 0.9577465 0.9849624 0.9714286 0.964539
Model Bagging Classification dengan nbagg = 25 terpilih sebagai model terbaik karena memperoleh nilai accuracy tertinggi sebesar 97,54%. Hal ini menunjukkan bahwa model dengan 25 bootstrap memiliki kemampuan klasifikasi yang lebih baik dalam memprediksi kelas pada data testing.
Bagging (Bootstrap Aggregating) merupakan metode ensemble learning yang menggabungkan beberapa model untuk meningkatkan kestabilan dan kinerja prediksi. Metode ini bekerja dengan mengambil sampel bootstrap dari data training melalui pengambilan sampel secara acak dengan pengembalian (sampling with replacement), membangun model pada setiap sampel, kemudian menggabungkan hasil prediksi menggunakan suara mayoritas (majority voting) untuk menentukan kelas akhir. Metode ini dapat mengurangi varians dan meningkatkan kestabilan hasil klasifikasi.
Pada analisis ini, dataset BreastCancer dari package mlbench digunakan untuk mengklasifikasikan tumor payudara ke dalam dua kategori, yaitu jinak (benign) dan ganas (malignant). Jumlah sampel bootstrap yang digunakan adalah 25, 50, dan 100, dengan pembagian data menjadi 70% data training dan 30% data testing.
Evaluasi kinerja model menggunakan lima metrik, yaitu Accuracy, Sensitivity, Specificity, Precision, dan F1-Score. Nilai setiap metrik digunakan untuk membandingkan kinerja model berdasarkan jumlah sampel bootstrap yang berbeda.
Berdasarkan hasil analisis, model dengan 25 sampel bootstrap menghasilkan nilai Accuracy sebesar 0,975, Sensitivity sebesar 0,957, Specificity sebesar 0,984, Precision sebesar 0,971, dan F1-Score sebesar 0,964. Sementara itu, penggunaan 50 dan 100 sampel bootstrap menghasilkan nilai evaluasi yang sama. Dengan demikian, penggunaan 25 sampel bootstrap memberikan kinerja terbaik dalam mengklasifikasikan tumor payudara pada dataset BreastCancer.
Berdasarkan hasil penelitian yang telah dilakukan, disarankan untuk mencoba jumlah bootstrap yang berbeda serta menggunakan metode klasifikasi lain sebagai pembanding untuk mengetahui kinerja model secara lebih menyeluruh. Selain itu, ketelitian dalam melakukan persiapan data, menyusun sintaks, dan menginterpretasikan metrik evaluasi perlu diperhatikan agar hasil klasifikasi sesuai dengan tujuan analisis.
Alfaro, E., Gámez, M., & García, N. (2013). adabag: An R package for classification with boosting and bagging. Journal of Statistical Software, 54(2). https://doi.org/10.18637/jss.v054.i02
Breiman, L. (1996). Bagging predictors. Machine Learning, 24, 123–140.
Cui, G., Zhang, Y., Tao, H., Man, S., & Chen, H. (2024). Optimised prediction of tunnel fire heat release rate using the ResNet18_2CLSTM model with bagging for multimodal data. Case Studies in Thermal Engineering, 63, 105268.
Fatmawati, D., Trisnawati, W., Jumaryadi, Y., & Triyono, G. (2023). Klasifikasi tingkat kepuasan penggunaan layanan teknologi informasi menggunakan decision tree. Kajian Ilmiah Informatika dan Komputer, 3(6), 1056–1062. https://doi.org/10.30865/klik.v3i6.803
Fransiska, H. (2026). Modul praktikum machine learning and modern prediction. Universitas Bengkulu.
Inzaghi, M. R., Susanto, E. R., Amarudin, & Neneng. (2025). Evaluasi kinerja model Random Forest dalam memprediksi diabetes berdasarkan dataset kesehatan di Indonesia. Jurnal Pendidikan dan Teknologi Indonesia, 5(7), 1857–1866. https://doi.org/10.52436/1.jpti.871
Kabari, L. G., & Onwuka, U. C. (2019). Comparison of bagging and voting ensemble machine learning algorithm as a classifier. International Journal of Advanced Research in Computer Science and Software Engineering, 9(3), 19–23. www.ijarcsse.com
Lee, S. J., Xu, Z., Li, T., & Yang, Y. (2018). A novel bagging C4.5 algorithm based on wrapper feature selection for supporting wise clinical decision making. Journal of Biomedical Informatics, 78, 144–155. https://doi.org/10.1016/j.jbi.2017.11.005
Liang, G., Zhu, X., & Zhang, C. (2014). The effect of varying levels of class distribution on bagging for different algorithms: An empirical study. International Journal of Machine Learning and Cybernetics, 5(1). https://doi.org/10.1007/s13042-012-0125-5
Majid, A. M., & Nawangsih, I. (2025). Implementasi metode bagging dan teknik discretization pada algoritma machine learning untuk memprediksi status stunting pada anak balita. Jurnal Indonesia: Manajemen Informatika dan Komunikasi, 6(1), 663–676. https://doi.org/10.35870/jimik.v6i1.1279
Nugroho, A., & Religia, Y. (2021). Analisis optimasi algoritma klasifikasi Naive Bayes menggunakan Genetic Algorithm dan Bagging. Jurnal RESTI (Rekayasa Sistem dan Teknologi Informasi), 5(3), 504–510. https://jurnal.iaii.or.id/index.php/RESTI/article/view/3067/427
Putri, E. R., & Arianto, D. B. (2024). Perbandingan performa algoritma metode bagging dan boosting pada prediksi konsentrasi PM10 di Jakarta Utara. Jurnal Nasional Teknologi dan Sistem Informasi, 10(1), 74–81. https://doi.org/10.25077/TEKNOSI.v10i1.2024.74-80
S. Danil, N. Rahaningsih, R. D. Dana, dan . M., “Peningkatan Klasifikasi Kemiskinan Indonesia Menggunakan Metode Decision Tree,” Jurnal Informatika dan Teknik Elektro Terapan, vol. 13, no. 2, Apr 2025, doi: 10.23960/jitet.v13i2.6336.
Tuysuzoglu, G., & Birant, D. (2020). Enhanced bagging (eBagging): A novel approach for ensemble learning. International Arab Journal of Information Technology, 17(4), 515–528. https://doi.org/10.34028/iajit/17/4/10
Wahono, R. S., & Suryana, N. (2013). Combining particle swarm optimization based feature selection and bagging technique for software defect prediction. International Journal of Software Engineering and Its Applications, 7(5), 153–166. https://doi.org/10.14257/ijseia.2013.7.5.16
Widaningsih, S. (2019). Perbandingan Metode Data Mining Untuk Prediksi Nilai Dan Waktu Kelulusan Mahasiswa Prodi Teknik Informatika Dengan Algoritma C4,5, Naïve Bayes, Knn Dan Svm. Jurnal Tekno Insentif, 13(1), 16–25. https://doi.org/10.36787/jti.v13i1.78
Zhang, C., & Ma, Y. (2012). Ensemble machine learning: Methods and applications. Springer. https://doi.org/10.1007/978-1-4419-9236-7