BAB I PENDAHULUAN

1.1 Latar Belakang Masalah

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.

1.2 Rumusan Masalah

  1. Bagaimana konsep dasardan prinsip kerja metode Boosting?
  2. Bagaimana cara megimplementasikan metode Boosting untuk kasus klasifikasi dan regresi menggunakan R?
  3. Bagaimana cara mengevaluasi performa model Boosting menggunakan ukuran evaluasi yang sesuai?

1.3 Tujuan

  1. Mahasiswa dapat memahami metode Boosting sebagai metode ensemble learning.
  2. Mahasiswa dapat megimplementasikan metode Boosting untuk kasus klasifikasi dan regresi menggunakan R.
  3. Mahasiswa dapat mengevaluasi performa model menggunakan ukuran evaluasi yang sesuai.

BAB II TINJAUAN PUSTAKA

2.1 Ensamble Learning

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.

2.2 Boosting

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).

2.2.1 AdaBoosting

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).

  1. 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:

    • \(w_i^{(1)}\) = bobot observasi ke-\(i\) pada iterasi pertama.
    • \(n\) = jumlah seluruh observasi.
  2. 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:

    • \(\operatorname{err}_m\) = kesalahan klasifikasi terbobot pada learner ke-\(m\).
    • \(w_i^{(m)}\) = bobot observasi ke-\(i\) pada iterasi ke-\(m\).
    • \(G_m(x_i)\) = kelas hasil prediksi learner ke-\(m\) untuk observasi ke-\(i\).
    • \(y_i\) = kelas aktual observasi ke-\(i\).
    • \(I\{y_i \neq G_m(x_i)\}\) = fungsi indikator yang bernilai 1 apabila observasi salah diklasifikasikan dan 0 apabila diklasifikasikan dengan benar.
  3. 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.

  4. Menggabungkan learner Setiap learner diberi bobot berdasarkan performanya, \[ \alpha_m = \log\left(\frac{1-\operatorname{err}_m}{\operatorname{err}_m}\right) \]

    dengan:

    • \(\alpha_m\) = bobot atau tingkat kontribusi learner ke-\(m\) terhadap prediksi akhir.
    • \(\operatorname{err}_m\) = kesalahan klasifikasi terbobot pada learner ke-\(m\).

    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) \]

2.2.2 Gradient boosting

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):

  1. Membentuk model awal;
  2. Menghitung residual dari model tersebut;
  3. Membentuk weak learner baru untuk mempelajari residual;
  4. Menambahkan kontribusi learner baru ke model sebelumnya;
  5. Menghitung residual baru dan mengulangi proses. Model kemudian diperbarui secara bertahap menurut: \[f_m(x) = f_{m-1}(x) + \nu h_m(x)\] dengan:
    • \(f_{m-1}(x)\) = model pada iterasi sebelumnya;
    • \(h_m(x)\) = weak learner pada iterasi ke-\(m\);
    • \(nu\) = learning rate atau shrinkage.

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.

BAB III METODE PENELITIAN

3.1 Sumber Data

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.

3.2 Variabel Penelitian

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}\).

3.3 Langkah-langkah Analisis

Langkah-langkah analisis Gradient Boosting pada data Friedman adalah sebagai berikut:

  1. Persiapan data.
  2. Memeriksa struktur data.
  3. Membagi data menjadi data training sebesar 70% dan data testing sebesar 30%.
  4. Membentuk model Gradient Boosting dengan nilai shrinkage sebesar 0,01, 0,05, dan 0,10.
  5. Menentukan jumlah pohon optimal (optimal number of trees) pada setiap model menggunakan cross-validation pada data training.
  6. Evalusi model dengan menghitung nilai MSE, RMSE, MAE, dan \(R^2\) pada data testing.
  7. Kesimpulan dan interpretasi.

BAB IV HASIL DAN PEMBAHASAN

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.

4.1 Library dan Statistik Deskriptif

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 ...
dim(reg.data)
## [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\).

4.2 Splitting Data

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
dim(reg.test)
## [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\).

4.3 Membentuk Model Gradient Boosting

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.

4.4 Memprediksi Model Terbaik

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.

4.5 Plot Model Terbaik

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.

BAB V KESIMPULAN

5.1 Kesimpulan

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.

DAFTAR PUSTAKA

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