Perkembangan teknologi informasi telah mendorong pemanfaatan data untuk mendukung proses analisis dan pengambilan keputusan. Salah satu metode yang digunakan dalam pengolahan data adalah machine learning khususnya ensemble learning, yaitu teknik yang menggabungkan beberapa model untuk meningkatkan kemampuan prediksi. Salah satu metode dalam pendekatan tersebut adalah boosting, yang membangun model secara bertahap untuk memperbaiki kesalahan prediksi model sebelumnya (Jasman dkk., 2022).
Dua algoritma boosting yang umum digunakan adalah Adaptive Boosting (AdaBoost) dan Gradient Boosting. AdaBoost bekerja dengan menyesuaikan bobot observasi berdasarkan kesalahan prediksi, sedangkan Gradient Boosting membangun model secara iteratif dengan mengoptimalkan fungsi kerugian. Jasman dkk., (2022) menerapkan dan membandingkan kedua algoritma tersebut dalam klasifikasi kualitas air, sedangkan Baliani dkk., (2024) juga meneliti perbandingan metode boosting untuk klasifikasi penyakit jantung.
Perbedaan mekanisme pembelajaran tersebut dapat memengaruhi kinerja model dalam menghasilkan prediksi. Oleh karena itu, diperlukan evaluasi untuk mengetahui performa algoritma yang digunakan. Pada permasalahan regresi, evaluasi dapat dilakukan menggunakan Mean Squared Error (MSE), Root Mean Squared Error (RMSE), Mean Absolute Error (MAE), dan koefisien determinasi (\(R^2\)). Metrik tersebut digunakan untuk membandingkan kesalahan prediksi dan kemampuan model dalam menjelaskan variasi data sehingga dapat diketahui model yang memberikan hasil prediksi terbaik.
Teknik ensemble learning dalam machine learning adalah penggabungan hasil dari beberapa model machine learning yang berbeda untuk meningkatkan kinerja keseluruhan prediksi. Ensemble learning sering digunakan karena dapat meningkatkan kinerja model klasifikasi secara signifikan, dengan mengurangi overfitting, dan membuat prediksi yang lebih stabil (Wibisoni dkk., 2024). Salah satu metode ensemble learning adalah Boosting, yang membangun model secara bertahap untuk memperbaiki kesalahan prediksi pada tahap sebelumnya. Penerapan metode ensemble learning dapat ditemukan pada berbagai permasalahan klasifikasi maupun regresi, bergantung pada algoritma dan karakteristik data yang digunakan.
Boosting merupakan salah satu metode ensemble learning yang membangun model prediksi secara bertahap dengan menggabungkan beberapa weak learners menjadi model yang lebih kuat. Setiap model baru dilatih secara berurutan untuk memperbaiki kesalahan prediksi model sebelumnya sehingga proses pembelajaran menjadi adaptif dan menghasilkan prediksi yang lebih akurat. Dua algoritma boosting yang banyak digunakan adalah Adaptive Boosting (AdaBoost) dan Gradient Boosting. AdaBoost meningkatkan kemampuan model dengan memberikan bobot lebih besar pada observasi yang salah diklasifikasikan, sedangkan Gradient Boosting membentuk model baru berdasarkan arah penurunan fungsi kerugian (loss function) untuk memperbaiki residual atau kesalahan prediksi sebelumnya. Kedua algoritma tersebut dapat digunakan untuk permasalahan klasifikasi maupun regresi, bergantung pada tujuan analisis dan karakteristik data yang digunakan (Firmansyah dan Abidin, 2022).
Adaboost merupakan kepanjangan dari Adaptive Boosting, adaboost adalah teknik pemberian bobot terhadap klasifikasi lemah dan mengumpulkannya menjadi klasifikasi kuat. Kelebihan dari adaboost yaitu teori yang ada dalam teknik adaboost kuat, prediksi yang dihasilkan akurat dan diimplementasikan dengan sederhana (Majid dan Miharja, 2022). Pada klasifikasi berbasis pohon, base learner yang digunakan biasanya berupa pohon sederhana atau decision stump. Prinsip utama AdaBoost adalah memberikan perhatian lebih besar pada observasi yang masih salah diklasifikasikan. Secara sederhana, proses AdaBoost dilakukan sebagai berikut. (Fransisika, 2026).
Memberikan bobot awal yang sama Pada awal proses, semua observasi dianggap sama penting sehingga diberi bobot yang sama, sebesar: \[ w_i^{(1)} = \frac{1}{n}, \quad i = 1,2,\ldots,n \]
dengan:
Membentuk weak learner Pada setiap iterasi \(m\) dibentuk weak learner \(G_m(x)\). Setelah prediksi dilakukan, dihitung kesalahan klasifikasi terbobot: \[ \operatorname{err}_m = \frac{ \displaystyle\sum_{i=1}^{n} w_i^{(m)} I\{y_i \neq G_m(x_i)\} }{ \displaystyle\sum_{i=1}^{n} w_i^{(m)} } \]
dengan:
Memperbarui bobot Observasi yang salah diklasifikasikan memperoleh bobot yang lebih besar sehingga learner berikutnya memberikan perhatian lebih besar pada observasi tersebut. Dengan demikian, setiap learner baru berusaha memperbaiki kesalahan yang masih dilakukan oleh learner sebelumnya.
Menggabungkan learner Setiap learner diberi bobot berdasarkan performanya, \[ \alpha_m = \log\left(\frac{1-\operatorname{err}_m}{\operatorname{err}_m}\right) \]
dengan:
Selanjutnya, prediksi akhir diperoleh dengan menggabungkan seluruh weak learner menggunakan mekanisme weighted voting, yang dirumuskan sebagai berikut:
\[ G(x) = \operatorname{sign}\left( \sum_{m=1}^{M} \alpha_m G_m(x) \right) \]
Gradient Boosting merupakan teknik machine learning yang membangun model prediktif secara bertahap (iterative) dari kumpulan model yang lemah seperti decision tree. Secara konseptual, Gradient Boosting akan mempelajari model baru dengan pembobotan data serta dari kesalahan residual atau disebut loss function dari model lemah sebelumnya yang telah dilatih (Murtiningsih, Sari, dan Fajri, 2025). Proses Gradient Boosting secara sederhana dilakukan sebagai berikut (Fransisika, 2026):
Nilai learning rate mengatur seberapa besar kontribusi learner baru terhadap model. Nilai yang lebih kecil membuat proses pembelajaran berlangsung lebih perlahan dan biasanya membutuhkan lebih banyak iterasi.
Data yang digunakan dalam praktikum ini adalah data Friedman yang
tersedia dalam package gbm pada RStudio. Data yang
digunakan sebanyak 200 observasi. Data digunakan untuk mempelajari
hubungan nonlinear antara variabel prediktor dan variabel
respons. Oleh karena itu, data dapat digunakan untuk mengevaluasi
kemampuan Gradient Boosting dalam memodelkan hubungan
nonlinear.
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}\).
Langkah-langkah analisis Gradient Boosting pada data Friedman adalah sebagai berikut:
Pada batasan masalah diminta untuk melakukan analisis Gradient Boosting pada data Friedman dengan nilai shrinkage sebesar 0,01, 0,05, dan 0,10 dan kemudian menghitung matrik evaluasinya.
Tahap awal dilakukan dengan memuat library gbm,
mlbench, dan caret yang diperlukan dalam
analisis dan membangkitkan data Friedman menggunakan fungsi
mlbench.friedman1() dengan jumlah observasi sebanyak
200.
Sintaks yang digunakan adalah sebagai berikut:
# Library
library(gbm)
library(mlbench)
library(caret)
# Input data
set.seed(234)
reg.data <- as.data.frame(mlbench.friedman1(200))
# Melihat struktur dan ringkasan data
str(reg.data)## 'data.frame': 200 obs. of 11 variables:
## $ x.1 : num 0.7456 0.7817 0.02 0.7761 0.0669 ...
## $ x.2 : num 0.575 0.316 0.765 0.229 0.172 ...
## $ x.3 : num 0.0289 0.9375 0.7978 0.668 0.5974 ...
## $ x.4 : num 0.72 0.185 0.534 0.553 0.755 ...
## $ x.5 : num 0.875 0.704 0.952 0.478 0.533 ...
## $ x.6 : num 0.276 0.643 0.987 0.843 0.733 ...
## $ x.7 : num 0.9332 0.4018 0.0874 0.893 0.1024 ...
## $ x.8 : num 0.60746 0.00369 0.0106 0.44639 0.83494 ...
## $ x.9 : num 0.756 0.405 0.247 0.144 0.187 ...
## $ x.10: num 0.718 0.534 0.667 0.68 0.595 ...
## $ y : num 24.35 18.05 12.02 12.1 9.91 ...
## [1] 200 11
Hasil pemeriksaan awal menunjukkan bahwa data yang diguankan sebanyak 200 observasi dengan 1 variabel respon yaitu \(y\) dan 10 variabel prediktor yaitu \(X1\) sampai \(X10\).
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 70% data training dan 30% data testing.
Sintaks yang digunakan adalah sebagai berikut:
# Membagi data training dan testing
set.seed(234)
idx.reg <- createDataPartition(
reg.data$y,
p = 0.70,
list = FALSE
)
reg.train <- reg.data[idx.reg, ]
reg.test <- reg.data[-idx.reg, ]
# Melihat ukuran data
dim(reg.train)## [1] 140 11
## [1] 60 11
Hasil pembagian menunjukkan bahwa data training terdiri atas 140 observasi, sedangkan data testing terdiri atas 60 observasi. Data training digunakan untuk membangun model Gradien Boosting, sementara data testing digunakan untuk menghitung MSE, RMSE, MAE, dan \(R^2\).
Pembentukan model Gradient Boosting menggunakan tiga learning rate yaitu 0,01, 0,05, dan 0,10. Setiap model menggunakan parameter yang sama dan metode 10-fold cross-validation untuk menentukan jumlah iterasi optimal. Performa model kemudian dibandingkan menggunakan MSE, RMSE, MAE, dan \(R^2\) untuk memperoleh model terbaik.
Berikut sintaks yang digunakan untuk membentuk model Gradient Boosting:
# Membentuk model Gradient Boosting
learning.rate <- c(0.01, 0.05, 0.10)
hasil.model <- list()
hasil.evaluasi <- data.frame()
for (lr in learning.rate) {
set.seed(234)
# Membentuk model
model <- gbm(
formula = y ~ .,
data = reg.train,
distribution = "gaussian",
n.trees = 1000,
interaction.depth = 2,
shrinkage = lr,
bag.fraction = 1,
cv.folds = 10,
n.minobsinnode = 5,
verbose = FALSE
)
# Menentukan jumlah iterasi optimal
best.iter <- gbm.perf(
model,
method = "cv",
plot.it = FALSE
)
# Menyimpan model dan iterasi optimal
nama.model <- paste0("LR_", lr)
hasil.model[[nama.model]] <- list(
model = model,
iterasi = best.iter
)
# Prediksi data testing
pred.reg <- predict(
model,
newdata = reg.test,
n.trees = best.iter,
type = "response"
)
actual <- reg.test$y
# Menghitung evaluasi model
MSE <- mean((actual - pred.reg)^2)
RMSE <- sqrt(MSE)
MAE <- mean(abs(actual - pred.reg))
R2 <- 1 - sum((actual - pred.reg)^2) /
sum((actual - mean(actual))^2)
# Menyimpan hasil evaluasi
hasil.evaluasi <- rbind(
hasil.evaluasi,
data.frame(
Learning_Rate = lr,
Iterasi_Optimal = best.iter,
MSE = MSE,
RMSE = RMSE,
MAE = MAE,
R2 = R2
)
)
}
# Mengurutkan model berdasarkan MSE terkecil
hasil.urut <- hasil.evaluasi[
order(hasil.evaluasi$MSE),
]
print(round(hasil.urut, 4))## Learning_Rate Iterasi_Optimal MSE RMSE MAE R2
## 3 0.10 212 4.0312 2.0078 1.5579 0.8318
## 2 0.05 458 4.2639 2.0649 1.6008 0.8221
## 1 0.01 999 4.4962 2.1204 1.6464 0.8124
Berdasarkan hasil yang diperoleh, model dengan learning rate 0,01 memperoleh jumlah iterasi optimal sebanyak 999, dengan nilai MSE sebesar 4,4962, RMSE sebesar 2,1204, MAE sebesar 1,6464, dan \(R^2\) sebesar 0,8124. Nilai menunjukkan bahwa model mampu menjelaskan 81,24% variasi pada variabel respons. Pada model dengan learning rate 0,05 memperoleh jumlah iterasi optimal sebanyak 458, dengan nilai MSE sebesar 4,2639, RMSE sebesar 2,0649, MAE sebesar 1,6008, dan \(R^2\) sebesar 0,8221. Model ini mampu menjelaskan 82,21% variasi pada variabel respons. Hasil menunjukkan peningkatan performa dibandingkan learning rate 0,01, yang ditunjukkan oleh penurunan seluruh nilai kesalahan dan peningkatan nilai \(R^2\). Sedangkan, pada model dengan learning rate 0,10 memperoleh jumlah iterasi optimal sebanyak 212, dengan nilai MSE sebesar 4,0312, RMSE sebesar 2,0078, MAE sebesar 1,5579, dan \(R^2\) sebesar 0,8318. Model ini mampu menjelaskan 83,18% variasi pada variabel respons. Nilai kesalahan yang paling rendah dan nilai \(R^2\) yang paling tinggi menunjukkan bahwa model ini memberikan performa terbaik di antara ketiga variasi learning rate yang diuji.
Dilihat dari hasil perbandingan ketiga model, model Gradient Boosting dengan learning rate 0,10 dipilih sebagai model terbaik. Oleh karena itu, model dengan learning rate 0,10 memberikan performa prediksi terbaik di antara ketiga model yang diuji dan selanjutnya digunakan untuk memprediksi data testing.
Model Gradient Boosting terbaik dengan learning rate 0,10 dan 212 iterasi optimal digunakan untuk memprediksi data testing. Hasil prediksi dibandingkan dengan nilai aktual untuk mengetahui selisih prediksi pada setiap observasi.
Sintaks yang digunakan adalah sebagai berikut:
# Menampilkan hasil prediksi model terbaik
model.terbaik <- hasil.urut$Learning_Rate[1]
nama.terbaik <- paste0("LR_", model.terbaik)
model.final <- hasil.model[[nama.terbaik]]$model
iterasi.final <- hasil.model[[nama.terbaik]]$iterasi
pred.final <- predict(
model.final,
newdata = reg.test,
n.trees = iterasi.final,
type = "response"
)
hasil.prediksi <- data.frame(
Aktual = reg.test$y,
Prediksi = as.numeric(pred.final),
Residual = reg.test$y - as.numeric(pred.final)
)
head(hasil.prediksi, 10)## Aktual Prediksi Residual
## 1 10.232309 10.40406 -0.1717534
## 2 11.845301 10.82324 1.0220573
## 3 10.335689 11.92377 -1.5880809
## 4 16.727262 15.54978 1.1774792
## 5 25.077119 23.89650 1.1806164
## 6 15.446886 16.00467 -0.5577837
## 7 15.642915 14.82544 0.8174752
## 8 7.110835 12.16898 -5.0581452
## 9 13.351277 15.89434 -2.5430625
## 10 12.871960 14.49979 -1.6278326
Berdasarkan hasil prediksi pada 10 observasi pertama, model Gradient Boosting menghasilkan nilai prediksi yang cukup mendekati nilai aktual pada beberapa observasi. Residual terkecil terdapat pada observasi pertama, yaitu sebesar −0,1718, yang menunjukkan bahwa selisih antara nilai aktual dan prediksi relatif kecil. Sementara itu, residual terbesar terdapat pada observasi ke-8, yaitu sebesar −5,0581, yang menunjukkan adanya perbedaan cukup besar antara nilai aktual dan prediksi. Residual negatif menunjukkan bahwa nilai prediksi lebih tinggi daripada nilai aktual, sedangkan residual positif menunjukkan bahwa nilai prediksi lebih rendah daripada nilai aktual. Secara keseluruhan, hasil ini memperlihatkan bahwa tingkat ketepatan prediksi bervariasi pada setiap observasi.
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:
# Plot nilai aktual dan prediksi model terbaik
plot(
hasil.prediksi$Aktual,
hasil.prediksi$Prediksi,
pch = 19,
xlab = "Nilai Aktual",
ylab = "Nilai Prediksi",
main = paste("Aktual vs Prediksi - Learning Rate",
model.terbaik)
)
abline(a = 0, b = 1, lty = 2, lwd = 2)
Berdasarkan grafik Aktual vs Prediksi pada model Gradient Boosting
dengan learning rate 0,10 menunjukkan kecenderungan peningkatan
nilai prediksi seiring dengan meningkatnya nilai aktual. Pola sebaran
titik yang bergerak dari kiri bawah ke kanan atas menunjukkan kesesuaian
antara nilai aktual dan prediksi. Sebagian besar titik berada di sekitar
garis tren, yang menunjukkan bahwa model mampu menangkap pola umum data.
Namun, ada beberapa titik yang jauh dari garis tren, hai ini menunjukkan
penyimpangan yang cukup besar, sehingga model masih menghasilkan
kesalahan prediksi pada observasi tertentu.
# Plot residual model terbaik
plot(
hasil.prediksi$Prediksi,
hasil.prediksi$Residual,
pch = 19,
xlab = "Nilai Prediksi",
ylab = "Residual",
main = "Residual Plot - Gradient Boosting"
)
abline(h = 0, lty = 2, lwd = 2)
Berdasarkan grafik Residual Plot Gradient Boosting menunjukkan
sebaran residual, yaitu selisih antara nilai aktual dan nilai prediksi
model. Sumbu horizontal menunjukkan nilai prediksi, sedangkan sumbu
vertikal menunjukkan nilai residual. Garis putus-putus pada residual nol
menunjukkan kondisi ketika nilai aktual sama dengan nilai prediksi.
Berdasarkan grafik, residual tersebar di atas dan di bawah garis nol,
yang berarti model terkadang menghasilkan prediksi lebih rendah dan
terkadang lebih tinggi daripada nilai aktual. Sebagian besar residual
berada di sekitar garis nol, tetapi terdapat beberapa residual yang
cukup besar, mendekati −5 dan +4. Hal ini menunjukkan bahwa kesalahan
prediksi pada beberapa pengamatan masih relatif tinggi. Secara
keseluruhan, model Gradient Boosting mampu memprediksi sebagian besar
data dengan cukup baik, meskipun masih terdapat beberapa
penyimpangan.
# Variable importance model terbaik
importance.reg <- summary(
model.final,
n.trees = iterasi.final,
plotit = FALSE
)
print(importance.reg)## var rel.inf
## x.4 x.4 38.4745682
## x.1 x.1 28.2478450
## x.2 x.2 13.8418016
## x.3 x.3 11.7264046
## x.5 x.5 5.4518307
## x.6 x.6 1.0220897
## x.7 x.7 0.4196719
## x.10 x.10 0.4045494
## x.9 x.9 0.2586627
## x.8 x.8 0.1525762
barplot(
importance.reg$rel.inf,
names.arg = importance.reg$var,
las = 2,
main = "Variable Importance - Gradient Boosting",
ylab = "Relative Influence"
)
Berdasarkan grafik Variable Importance Gradient Boosting
menunjukkan seberapa besar peran setiap variabel dalam membantu model
menghasilkan prediksi. Berdasarkan grafik tersebut, variabel X.4
memiliki peran terbesar, yaitu sekitar 38%, diikuti oleh X.1 sebesar
28%, X.2 sebesar 14%, dan X.3 sekitar 12%. Variabel X.5 memiliki nilai
sekitar 5%, sedangkan X.6 memiliki nilai yang sangat kecil. Sementara
itu, variabel X.7, X.10, X.9, dan X.8 hampir tidak memberikan kontribusi
terhadap hasil prediksi model. Hasil ini menunjukkan bahwa model lebih
banyak menggunakan informasi dari variabel X.4 dan X.1 untuk membuat
prediksi. Dengan demikian, X.4 merupakan variabel yang paling berperan
dalam model ini. Akan tetapi, hasil tersebut tidak berarti bahwa X.4
secara langsung menyebabkan perubahan pada nilai yang diprediksi,
melainkan menunjukkan bahwa variabel tersebut paling banyak membantu
model dalam membuat prediksi.
Metode Boosting merupakan metode ensemble learning yang menggabungkan beberapa model secara bertahap untuk menghasilkan prediksi yang lebih akurat. Prinsip kerja Boosting dimulai dengan membentuk model awal, kemudian membangun model berikutnya untuk memperbaiki kesalahan prediksi model sebelumnya. Pada metode Gradient Boosting, proses tersebut dilakukan dengan memanfaatkan kesalahan prediksi untuk memperbaiki hasil model secara bertahap hingga mencapai jumlah iterasi yang ditentukan.
Implementasi metode Gradient Boosting menggunakan R dilakukan melalui
beberapa tahapan, yaitu persiapan data, pembagian data menjadi data
training dan data testing, pembentukan model,
penentuan parameter, serta prediksi menggunakan data uji. Proses
implementasi dapat dilakukan dengan bantuan package
gbm, yang menyediakan fungsi gbm() untuk
membangun model Gradient Boosting. Parameter yang dapat diatur antara
lain learning rate dan jumlah iterasi (number of
trees).
Evaluasi performa metode Gradient Boosting dilakukan menggunakan metrik yang sesuai dengan tujuan pemodelan. Pada kasus regresi, evaluasi dapat menggunakan MSE (Mean Squared Error), RMSE (Root Mean Squared Error), MAE (Mean Absolute Error), dan koefisien determinasi (\(R^2\)). MSE, RMSE, dan MAE digunakan untuk mengukur besarnya kesalahan prediksi, sedangkan \(R^2\) digunakan untuk mengukur proporsi variasi variabel respons yang dapat dijelaskan oleh model.
Berdasarkan hasil evaluasi metode Gradient Boosting pada data Friedman, dapat dilihat bahwa perubahan nilai learning rate dari 0,01 menjadi 0,05 dan 0,10 menghasilkan kenaikan kinerja model. Hal ini terlihat dari penurunan nilai MSE dari 4,4962 menjadi 4,2639 dan 4,0312, serta penurunan nilai RMSE dari 2,1204 menjadi 2,0649 dan 2,0078. Nilai MAE juga menurun dari 1,6464 menjadi 1,6008 dan 1,5579. Sebaliknya, nilai \(R^2\) meningkat dari 0,8124 menjadi 0,8221 dan 0,8318. Dari ketiga model yang diuji, model dengan learning rate 0,10 memberikan hasil terbaik karena memiliki nilai kesalahan prediksi terendah dan nilai \(R^2\) tertinggi. Model tersebut mencapai 212 iterasi optimal. Oleh karena itu, model Gradient Boosting dengan learning rate 0,10 merupakan model terbaik di antara variasi yang diuji pada data Friedman.
Baliani, M. D. I., Huizen, R. R., & Pradipta, G. A. (2024). Perbandingan performa data penyakit jantung menggunakan pendekatan klasifikasi boosting methods. Seminar Hasil Penelitian Informatika dan Komputer (SPINTER), 1(2), 894–899. https://www.spinter.stikom-bali.ac.id/index.php/spinter/article/view/298
Firmansyah, H., & Abidin, Z. (2022). Penerapan algoritma Gradient Boosted Decision Trees pada Adaboost untuk klasifikasi status desa. Journal of Informatics, Artificial Intelligence and Internet of Things, 1(1). https://jiaii.upstegal.ac.id/index.php/jiaii/article/view/14/8
Fransiska, H. (2026). Modul Praktikum Machine Learning and Modern Prediction. Laboratorium Matematika Universitas Bengkulu.
Jasman, T. Z., Fadhlullah, M. A., Pratama, A. L., & Rismayani. (2022). Analisis algoritma Gradient Boosting, Adaboost dan Catboost dalam klasifikasi kualitas air. Jurnal Teknik Informatika dan Sistem Informasi, 8(2). https://doi.org/10.28932/jutisi.v8i2.4906
Majid, A. M., & Mihardja, M. N. D. (2022). Penerapan metode discretization dan AdaBoost untuk meningkatkan akurasi algoritma klasifikasi dalam memprediksi penyakit jantung. Indonesian Journal of Business Intelligence, 5(2).
Murtiningsih, D. A., Sari, B. W., & Fajri, I. N. (2025). Comparison of Light Gradient Boosting Machine, eXtreme Gradient Boosting, and CatBoost with balancing and hyperparameter tuning for hypertension risk prediction on clinical dataset. Journal of Applied Informatics and Computing, 9(5), 2753–2763. https://doi.org/10.30871/jaic.v9i5.10400