BAB I PENDAHULUAN

1.1 Latar Belakang Masalah

Perkembangan teknologi informasi menyebabkan jumlah data yang tersedia semakin meningkat, sehingga diperlukan metode yang tepat untuk mengolah data menjadi informasi yang bermanfaat. Salah satu pendekatan yang dapat digunakan adalah machine learning, yaitu metode yang memungkinkan komputer mempelajari pola dari data untuk menghasilkan prediksi atau klasifikasi. Salah satu teknik dalam machine learning adalah ensemble learning, yang menggabungkan beberapa model untuk meningkatkan kinerja prediksi. Boosting merupakan salah satu metode ensemble learning yang membangun model secara bertahap, dengan setiap model berikutnya berupaya memperbaiki kesalahan yang dihasilkan oleh model sebelumnya. Metode ini dapat diterapkan pada berbagai permasalahan klasifikasi maupun regresi untuk menghasilkan model prediksi yang lebih baik (Firmansyah & Abidin, 2022). Metode Boosting bekerja dengan menggabungkan sejumlah model pembelajaran yang dibangun secara berurutan sehingga model akhir mampu menghasilkan prediksi yang lebih baik dibandingkan model pembelajaran tunggal dalam kondisi yang sesuai. Beberapa algoritma yang termasuk dalam metode Boosting adalah Adaptive Boosting (AdaBoost), Gradient Boosting, dan Extreme Gradient Boosting (XGBoost). Setiap algoritma memiliki mekanisme pembelajaran yang berbeda dalam memperbaiki kesalahan prediksi. Pada AdaBoost, perhatian lebih diberikan pada pengamatan yang sebelumnya salah diklasifikasikan, sedangkan Gradient Boosting membangun model secara bertahap untuk memperbaiki kesalahan berdasarkan fungsi kerugian. Oleh karena itu, penerapan metode Boosting perlu disesuaikan dengan karakteristik data dan tujuan analisis yang dilakukan. Berdasarkan uraian tersebut, praktikum ini bertujuan untuk memahami konsep dasar dan prinsip kerja metode Boosting dalam analisis data. Melalui praktikum ini, mahasiswa diharapkan mampu memahami tahapan penerapan algoritma Boosting, mengimplementasikan metode tersebut menggunakan bahasa pemrograman R, serta menginterpretasikan hasil yang diperoleh. Selain itu, praktikum ini bertujuan untuk mengevaluasi kinerja model berdasarkan ukuran evaluasi yang sesuai dengan permasalahan yang dianalisis, sehingga dapat diketahui kemampuan metode Boosting dalam menghasilkan prediksi atau klasifikasi

1.2 Rumusan Masalah

   Berdasarkan latar belakang, rumusan masalah yang disimpulkan adalah:
   1. Apa yang dimaksud dengan Boosting sebagai metode ensemble learning?
   2. Bagaimana mengimplementasikan Boosting untuk kasus klasifikasi dan regresi menggunakan R?
   3. Bagaimana cara mengevaluasi performa menggunakan ukuran evaluasi yang sesuai?

1.3 Tujuan Penelitian

   Berdasarkan rumusan masalah, tujuan yang dapat disimpulkan adalah:
   1. Mahasiswa dapat memahami Boosting sebagai metode ensemble learning.
   2. Mahasiswa dapat mengimplementasikan Boosting untuk kasus klasifikasi dan regresi menggunakan R.
   3. Mengevaluasi performa menggunakan ukuran evaluasi yang sesuai.

1.4 Manfaat Penelitian

   Adapun manfaat pada penelitian ini, yaitu: 
   1. Bagi penulis
      a. Dapat memberikan informasi serta pengetahuan tentang  Boosting.
      b. Dapat menerapkan wawasan ilmu yang telah diperoleh dalam bidang statistika tentang Boosting
   2. Bagi pembaca
      Menambah ilmu pengetahuan dan pemahaman yang berkaitan tentang  Boosting.

1.5 Batasan Masalah

  Lakukan regresi menggunakan Gradient Boosting pada data Friedman.  Clue : Gunakan gbm() dan bandingkan nilai learning rate (shrinkage) 𝜈 = 0.01, 0.05, dan 0.10. Gunakan cross-validation untuk menentukan jumlah iterasi optimal pada masing-masing model. Bandingkan performa berdasarkan MSE, RMSE, MAE, dan  R², kemudian interpretasikan hasilnya. 

BAB II TINJAUAN PUSTAKA

2.1 Ensemble Learning

   Ensemble learning merupakan pendekatan yang menggabungkan beberapa model dasar (base learner) agar diperoleh model gabungan yang memiliki kemampuan prediksi lebih baik. Pada Pertemuan III telah dibahas Bagging, yaitu membentuk banyak model dari sampel bootstrap dan kemudian menggabungkan hasil prediksinya. Boosting memiliki tujuan yang sama, yaitu meningkatkan performa prediksi melalui gabungan beberapa model, tetapi cara model-model tersebut dibentuk berbeda secara mendasar. Perbedaan cara pembentukan model inilah yang menjadi karakter utama Boosting dan membedakannya dari Bagging (Fransiska, 2026):

2.2 Gradient Boosting

   Gradient Boosting merupakan salah satu metode ensemble learning dalam machine learning yang menggabungkan sejumlah model pembelajaran secara bertahap untuk meningkatkan kemampuan prediksi. Metode ini membangun model baru untuk memperbaiki kesalahan prediksi yang dihasilkan oleh model sebelumnya. Pada setiap iterasi, model diperbarui berdasarkan gradien negatif dari fungsi kerugian (loss function) sehingga kesalahan prediksi dapat dikurangi secara bertahap. Gradient Boosting dapat digunakan untuk permasalahan klasifikasi maupun regresi, salah satunya dengan menggunakan pohon keputusan sebagai model dasar. Menurut Yuhana dkk. (2022), penerapan Gradient Boosting dapat digunakan untuk membangun model klasifikasi, dengan kinerja yang dapat ditingkatkan melalui penyesuaian parameter model.
   Dalam penerapan regresi, Gradient Boosting menghasilkan prediksi dengan menggabungkan kontribusi model-model yang dibangun pada setiap iterasi. Salah satu parameter penting dalam metode ini adalah learning rate atau shrinkage, yang mengatur besarnya kontribusi setiap model baru terhadap model keseluruhan. Nilai learning rate yang kecil membuat proses pembelajaran berlangsung lebih bertahap, sehingga umumnya membutuhkan lebih banyak iterasi. Sebaliknya, nilai learning rate yang besar memungkinkan pembelajaran berlangsung lebih cepat, tetapi perlu dievaluasi untuk menghindari model yang kurang optimal. Chairunisa dkk. (2024) menerapkan Gradient Boosting Regression untuk memprediksi angka harapan hidup dan membandingkan kinerjanya dengan metode regresi berbasis pohon lainnya. Evaluasi model regresi dapat dilakukan menggunakan Mean Squared Error (MSE), Root Mean Squared Error (RMSE), Mean Absolute Error (MAE), dan koefisien determinasi (R²) untuk menilai ketepatan hasil prediksi.

BAB III METODE PENELITIAN

3.1 Jenis dan Sumber Data

   Jenis data pada penelitian ini adalah data kuantitatif. Data kuantitatif merupakan data atau informasi yang didapatkan dalam bentuk angka atau numerik. Pada batasan masalah, Sumber data yang digunakan merupakan adalah data simulasi yang dibangkitkan menggunakan fungsi mlbench.friedman1() dari package mlbench pada perangkat lunak R. Dataset yang digunakan terdiri atas 200 observasi dengan satu variabel respons dan beberapa variabel prediktor. 

3.2 Variabel Penelitian

   Variabel penelitian adalah atribut atau nilai yang memiliki variasi tertentu dan dipilih peneliti untuk dianalisis.Variabel respons yang digunakan adalah Y, yaitu nilai numerik yang dihasilkan dari dataset simulasi Friedman1. Sementara itu, variabel prediktor terdiri atas X1, X2, X3, X4, X5, X6, X7, X8, X9 dan X10. Variabel-variabel tersebut digunakan untuk membentuk model Bagging Regression dalam memprediksi nilai Y.

3.3 Langkah-langkah Analisis

    Berikut adalah algoritma untuk menyelesaiankan batasan masalah:
   1. Membangkitkan 200 observasi data Friedman menggunakan fungsi mlbench.friedman1() pada R.
   2. Membagi data menjadi 70% data latih dan 30% data uji.
   3. Membangun model regresi Gradient Boosting menggunakan fungsi gbm().
   4. Membandingkan learning rate sebesar 0,01; 0,05; dan 0,10.
   5. Menentukan jumlah iterasi optimal menggunakan 10-fold cross-validation.
   6. Melakukan prediksi pada data uji untuk setiap model.
   7. Mengevaluasi model menggunakan MSE, RMSE, MAE, dan R².
   8. Membandingkan hasil untuk menentukan model dengan performa terbaik.
   

BAB IV HASIL DAN PEMBAHASAN

4.1 Library

library(mlbench)
library(caret)
## Loading required package: ggplot2
## Loading required package: lattice
library(gbm)
## Loaded gbm 2.3.1
## This version of gbm is no longer under development. Consider transitioning to gbm3, https://github.com/gbm-developers/gbm3
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 ...
summary(reg.data)
##       x.1                x.2                x.3               x.4         
##  Min.   :0.001198   Min.   :0.004583   Min.   :0.01021   Min.   :0.00707  
##  1st Qu.:0.274097   1st Qu.:0.255644   1st Qu.:0.24506   1st Qu.:0.20772  
##  Median :0.541847   Median :0.436813   Median :0.48965   Median :0.50295  
##  Mean   :0.509759   Mean   :0.465323   Mean   :0.48570   Mean   :0.48821  
##  3rd Qu.:0.741416   3rd Qu.:0.651439   3rd Qu.:0.73476   3rd Qu.:0.76599  
##  Max.   :0.993590   Max.   :0.999850   Max.   :0.99985   Max.   :0.99761  
##       x.5                x.6                x.7                x.8          
##  Min.   :0.008246   Min.   :0.005504   Min.   :0.001884   Min.   :0.002496  
##  1st Qu.:0.267523   1st Qu.:0.194431   1st Qu.:0.226788   1st Qu.:0.249826  
##  Median :0.522081   Median :0.446060   Median :0.491332   Median :0.480306  
##  Mean   :0.503282   Mean   :0.468544   Mean   :0.503754   Mean   :0.482050  
##  3rd Qu.:0.751688   3rd Qu.:0.746035   3rd Qu.:0.780325   3rd Qu.:0.696675  
##  Max.   :0.994604   Max.   :0.999021   Max.   :0.993044   Max.   :0.995613  
##       x.9                x.10                y         
##  Min.   :0.004483   Min.   :0.005544   Min.   : 3.082  
##  1st Qu.:0.203254   1st Qu.:0.329160   1st Qu.:10.593  
##  Median :0.453476   Median :0.592614   Median :13.810  
##  Mean   :0.471873   Mean   :0.540708   Mean   :14.270  
##  3rd Qu.:0.742412   3rd Qu.:0.765353   3rd Qu.:18.063  
##  Max.   :0.997436   Max.   :0.998141   Max.   :26.146
dim(reg.data)
## [1] 200  11

Interpretasi

Berdasarkan hasil output R, data Friedman terdiri atas 200 observasi dan 11 variabel, yaitu 10 variabel prediktor X1 hingga X10 dan satu variabel respons Y. Seluruh variabel bertipe numerik, dengan nilai prediktor berkisar mendekati 0 hingga 1. Variabel respons Y memiliki nilai minimum 3,082, maksimum 26,146, rata-rata 14,270, dan median 13,810. Dengan demikian, data berhasil dibangkitkan dan siap digunakan untuk analisis regresi Gradient Boosting dengan variasi learning rate 0,01; 0,05; dan 0,10. R².

4.2 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, ]

# Ukuran data
dim(reg.train)
## [1] 140  11
dim(reg.test)
## [1] 60 11

Intepretasi Hasil 4.2

Berdasarkan hasil pembagian data menggunakan fungsi createDataPartition() dengan proporsi 70:30, diperoleh 140 observasi sebagai data latih (training data) dan 60 observasi sebagai data uji (testing data). Kedua data memiliki 11 variabel yang terdiri atas 10 variabel prediktor dan satu variabel respons. Data latih digunakan untuk membangun model regresi Gradient Boosting, sedangkan data uji digunakan untuk mengevaluasi kemampuan model dalam memprediksi data baru.

Membentuk 3 model Gradient Boosting

# Nilai learning rate yang dibandingkan
learning.rate <- c(0.01, 0.05, 0.10)

# Menyiapkan penyimpanan model dan iterasi optimal
model.reg <- list()
best.iter <- numeric(length(learning.rate))

for (i in seq_along(learning.rate)) {
  
  set.seed(234)
  
  model.reg[[i]] <- gbm(
    formula = y ~ .,
    data = reg.train,
    distribution = "gaussian",
    n.trees = 1000,
    interaction.depth = 2,
    shrinkage = learning.rate[i],
    bag.fraction = 0.8,
    cv.folds = 10,
    n.minobsinnode = 5,
    verbose = FALSE)
  
  # Menentukan jumlah iterasi optimal berdasarkan CV
  best.iter[i] <- gbm.perf(
    model.reg[[i]],
    method = "cv",
    plot.it = FALSE )}

# Menampilkan iterasi optimal setiap model
hasil.iterasi <- data.frame(
  Learning_Rate = learning.rate,
  Iterasi_Optimal = best.iter)

hasil.iterasi
##   Learning_Rate Iterasi_Optimal
## 1          0.01             997
## 2          0.05             908
## 3          0.10             594

Intepretasi Hasil 4.3

Berdasarkan hasil pemodelan Gradient Boosting menggunakan fungsi gbm() dengan 10-fold cross-validation, diperoleh jumlah iterasi optimal sebanyak 997 pada learning rate 0,01, sebanyak 908 pada learning rate 0,05, dan sebanyak 594 pada learning rate 0,10. Hasil tersebut menunjukkan bahwa semakin besar nilai learning rate, jumlah iterasi optimal yang dibutuhkan cenderung semakin sedikit. Hal ini terjadi karena nilai learning rate yang lebih besar memungkinkan model memperbarui prediksi dengan langkah yang lebih besar pada setiap iterasi. Namun, jumlah iterasi optimal saja belum cukup untuk menentukan model terbaik sehingga perlu dilakukan evaluasi menggunakan MSE, RMSE, MAE, dan R².

4.4 Prediksi data testing

pred.reg <- vector("list", length(learning.rate))

for (i in seq_along(learning.rate)) {
  
  pred.reg[[i]] <- as.numeric(
    predict(
      model.reg[[i]],
      newdata = reg.test,
      n.trees = best.iter[i],
      type = "response") )}

# Nilai aktual
actual <- reg.test$y

# Contoh hasil prediksi model dengan learning rate 0.01
hasil.prediksi <- data.frame(
  Aktual = actual,
  Prediksi_001 = pred.reg[[1]],
  Prediksi_005 = pred.reg[[2]],
  Prediksi_010 = pred.reg[[3]])
head(hasil.prediksi, 10)
##       Aktual Prediksi_001 Prediksi_005 Prediksi_010
## 1  10.232309     11.50758     10.87340     10.95409
## 2  11.845301     11.03361     11.29874     11.26762
## 3  10.335689     11.96365     11.60180     11.20394
## 4  16.727262     14.67740     14.72136     14.08687
## 5  25.077119     22.50434     23.02870     23.26695
## 6  15.446886     15.51159     15.69784     15.37914
## 7  15.642915     13.79954     14.41738     14.36386
## 8   7.110835     11.78965     12.15933     10.76223
## 9  13.351277     15.58142     15.43527     15.78989
## 10 12.871960     14.58088     14.18478     14.16186

Intepretasi Hasil 4.4

Berdasarkan hasil prediksi terhadap 60 data uji, diperoleh perbandingan nilai aktual dengan nilai prediksi dari tiga model Gradient Boosting menggunakan learning rate 0,01; 0,05; dan 0,10. Hasil menunjukkan bahwa setiap model menghasilkan nilai prediksi yang berbeda, meskipun menggunakan data yang sama. Sebagai contoh, pada observasi pertama, nilai aktual sebesar 10,23, sedangkan prediksi masing-masing model adalah 11,51; 10,87; dan 10,95. Perbedaan antara nilai aktual dan prediksi menunjukkan adanya kesalahan prediksi pada setiap model. Oleh karena itu, diperlukan evaluasi menggunakan MSE, RMSE, MAE, dan R² untuk mengetahui model dengan kinerja terbaik.

4.5 Evaluasi kinerja model

evaluasi <- data.frame(
  Learning_Rate = learning.rate,
  Iterasi_Optimal = best.iter,
  MSE = NA_real_,
  RMSE = NA_real_,
  MAE = NA_real_,
  R_Square = NA_real_)

for (i in seq_along(learning.rate)) {
  
  residual <- actual - pred.reg[[i]]
  
  evaluasi$MSE[i] <- mean(residual^2)
  evaluasi$RMSE[i] <- sqrt(mean(residual^2))
  evaluasi$MAE[i] <- mean(abs(residual))
  
  evaluasi$R_Square[i] <-
    1 - sum(residual^2) /
    sum((actual - mean(actual))^2)}
# Membandingkan seluruh model
round(evaluasi, 4)
##   Learning_Rate Iterasi_Optimal    MSE   RMSE    MAE R_Square
## 1          0.01             997 3.8321 1.9576 1.5122   0.8401
## 2          0.05             908 3.7871 1.9460 1.5095   0.8420
## 3          0.10             594 3.2512 1.8031 1.4082   0.8644

Intepretasi Hasil 4.5

Berdasarkan hasil evaluasi model Gradient Boosting, learning rate 0,10 menghasilkan performa terbaik dibandingkan nilai 0,01 dan 0,05. Model dengan learning rate 0,10 memiliki nilai MSE sebesar 3,2512, RMSE sebesar 1,8031, MAE sebesar 1,4082, dan R² sebesar 0,8644. Hasil tersebut menunjukkan bahwa model mampu menjelaskan sekitar 86,44% variasi nilai respons, dengan kesalahan prediksi yang relatif lebih rendah dibandingkan kedua model lainnya. Dengan demikian, model dengan learning rate 0,10 menjadi model terbaik berdasarkan ukuran evaluasi yang digunakan, meskipun membutuhkan jumlah iterasi optimal yang lebih sedikit, yaitu 594 iterasi.

4.6 Memilih model terbaik berdasarkan MSE

indeks.terbaik <- which.min(evaluasi$MSE)

cat("Learning rate terbaik:",
    learning.rate[indeks.terbaik], "\n")
## Learning rate terbaik: 0.1
cat("Iterasi optimal:",
    best.iter[indeks.terbaik], "\n")
## Iterasi optimal: 594
cat("MSE terkecil:",
    evaluasi$MSE[indeks.terbaik], "\n")
## MSE terkecil: 3.251232
# Menampilkan seluruh metrik model terbaik
evaluasi[indeks.terbaik, ]
##   Learning_Rate Iterasi_Optimal      MSE     RMSE      MAE  R_Square
## 3           0.1             594 3.251232 1.803117 1.408159 0.8643665

Intepretasi Hasil 4.6

GBerdasarkan hasil pemilihan model terbaik menggunakan nilai MSE terkecil, diperoleh learning rate sebesar 0,10 dengan jumlah iterasi optimal sebanyak 594. Model tersebut menghasilkan MSE sebesar 3,2512, RMSE sebesar 1,8031, MAE sebesar 1,4082, dan R² sebesar 0,8644. Hasil ini menunjukkan bahwa model Gradient Boosting dengan learning rate 0,10 memiliki kesalahan prediksi paling rendah di antara ketiga model dan mampu menjelaskan sekitar 86,44% variasi variabel respons. Oleh karena itu, model dengan learning rate 0,10 dipilih sebagai model terbaik untuk regresi pada data Friedman.

4.7 Plot aktual vs prediksi model terbaik

library(ggplot2)
pred.terbaik <- pred.reg[[indeks.terbaik]]

plot(
  actual,
  pred.terbaik,
  pch = 19,
  xlab = "Nilai Aktual",
  ylab = "Nilai Prediksi",
  main = paste(
    "Aktual vs Prediksi: Learning Rate",
    learning.rate[indeks.terbaik]
  )
)

abline(a = 0, b = 1, lty = 2, lwd = 2)

Intepretasi Hasil 4.7

Grafik hasil pengujian model Bagging Regression dengan 50 bootstrap replications memperlihatkan bahwa garis prediksi berwarna biru putus-putus cenderung mengikuti arah perubahan garis nilai aktual berwarna merah. Pola tersebut mengindikasikan bahwa model cukup mampu merepresentasikan variasi nilai Y pada data testing. Meskipun demikian, ketidaksesuaian antara kedua garis masih terlihat pada beberapa observasi, khususnya observasi ke-12 dan ke-15, yang menunjukkan bahwa model belum sepenuhnya akurat dalam mengestimasi nilai pada titik-titik tertentu. Hasil visualisasi ini didukung oleh nilai MSE sebesar 5,382894, RMSE sebesar 2,320106, dan R² sebesar 0,7812529. Secara keseluruhan, model Bagging Regression dengan 50 bootstrap replications memiliki kemampuan prediksi yang relatif baik, tetapi masih menghasilkan penyimpangan antara nilai estimasi dan nilai aktual pada sejumlah observasi.

4.8 Plot residual model terbaik

library(ggplot2)

# Menggabungkan nilai aktual dan prediksi
data.plot <- data.frame(
  Aktual = actual,
  Prediksi = pred.terbaik
)

# Membuat grafik aktual vs prediksi
ggplot(data.plot, aes(x = Aktual, y = Prediksi)) +
  geom_point(size = 2) +
  geom_abline(
    intercept = 0,
    slope = 1,
    linetype = "dashed"
  ) +
  labs(
    title = "Aktual vs Prediksi Gradient Boosting",
    subtitle = "Learning Rate = 0.10",
    x = "Nilai Aktual",
    y = "Nilai Prediksi"
  ) +
  theme_minimal()

Intepretasi Hasil 4.8

Berdasarkan grafik aktual dan prediksi model Gradient Boosting dengan learning rate 0,10, sebagian besar titik berada di sekitar garis diagonal putus-putus yang menunjukkan bahwa nilai prediksi cukup mendekati nilai aktual. Namun, beberapa titik berada cukup jauh dari garis, yang menandakan masih terdapat kesalahan prediksi pada observasi tertentu. Secara keseluruhan, grafik menunjukkan bahwa model mampu memprediksi nilai respons dengan cukup baik, sesuai dengan nilai R² sebesar 0,8644 yang menunjukkan bahwa model dapat menjelaskan sekitar 86,44% variasi nilai respons.

4.9 Variabel importance model terbaik

importance.reg <- summary(
  model.reg[[indeks.terbaik]],
  n.trees = best.iter[indeks.terbaik],
  plotit = FALSE
)

importance.reg
##       var    rel.inf
## x.4   x.4 35.6599497
## x.1   x.1 27.2559006
## x.2   x.2 15.8801261
## x.3   x.3 11.6078709
## x.5   x.5  5.9910357
## x.7   x.7  1.0412434
## x.6   x.6  0.9955026
## x.9   x.9  0.6592272
## x.10 x.10  0.5176922
## x.8   x.8  0.3914515
barplot(
  importance.reg$rel.inf,
  names.arg = importance.reg$var,
  las = 2,
  main = "Variable Importance - Gradient Boosting",
  ylab = "Relative Influence"
)

Intepretasi Hasil 4.9

Berdasarkan grafik Variable Importance, variabel X4 memiliki pengaruh relatif terbesar sebesar 35,66%, diikuti oleh X1 sebesar 27,26%, X2 sebesar 15,88%, dan X3 sebesar 11,61%. Sementara itu, variabel X5 memberikan pengaruh sebesar 5,99%, sedangkan variabel X6, X7, X8, X9, dan X10 memiliki pengaruh relatif yang sangat kecil. Hasil ini menunjukkan bahwa model Gradient Boosting paling banyak memanfaatkan variabel X4 dalam proses prediksi, sedangkan X8 memiliki kontribusi paling rendah. Namun, variable importance menunjukkan kontribusi relatif variabel terhadap prediksi model, bukan hubungan sebab-akibat dengan variabel respons.

BAB V KESIMPULAN

5.1 Kesimpulan

  Boosting merupakan metode ensemble learning yang menggabungkan beberapa model lemah (weak learner) secara bertahap untuk membentuk model yang lebih kuat dan akurat. Setiap model baru dibangun dengan memperhatikan kesalahan prediksi dari model sebelumnya sehingga kesalahan tersebut dapat dikurangi pada proses berikutnya. Salah satu algoritma Boosting adalah Gradient Boosting, yang menggunakan gradien negatif dari fungsi kerugian untuk memperbaiki prediksi model secara iteratif, baik pada kasus klasifikasi maupun regresi.
   Implementasi Boosting menggunakan R dapat dilakukan dengan bantuan paket seperti gbm yang menyediakan fungsi gbm() untuk membangun model Gradient Boosting. Pada kasus klasifikasi, model digunakan untuk memprediksi kategori atau kelas suatu observasi, sedangkan pada kasus regresi, model digunakan untuk memprediksi nilai numerik. Tahapan implementasinya meliputi menyiapkan data, membagi data menjadi data latih dan data uji, menentukan parameter model, melatih model, serta melakukan prediksi. Parameter seperti jumlah iterasi (number of trees), kedalaman pohon (interaction depth), dan learning rate (shrinkage) perlu ditentukan untuk memperoleh model dengan performa yang baik.
   Evaluasi performa model Boosting dilakukan dengan menggunakan ukuran evaluasi yang sesuai dengan jenis permasalahan. Pada kasus klasifikasi, ukuran evaluasi yang dapat digunakan meliputi accuracy, precision, recall, F1-score, dan confusion matrix untuk menilai ketepatan prediksi kelas. Sementara itu, pada kasus regresi, evaluasi dapat menggunakan Mean Squared Error (MSE), Root Mean Squared Error (RMSE), Mean Absolute Error (MAE), dan koefisien determinasi R². Model regresi yang baik umumnya memiliki nilai MSE, RMSE, dan MAE yang rendah serta nilai R² yang tinggi. Selain itu, cross-validation dapat digunakan untuk menentukan parameter optimal dan membantu menilai kemampuan model dalam melakukan prediksi.
  Berdasarkan hasil analisis regresi menggunakan metode Gradient Boosting pada data simulasi Friedman sebanyak 200 observasi, diperoleh model terbaik dengan learning rate 0,10 dan jumlah iterasi optimal sebanyak 594 berdasarkan 10-fold cross-validation. Model tersebut menghasilkan nilai MSE sebesar 3,2512, RMSE sebesar 1,8031, MAE sebesar 1,4082, dan R² sebesar 0,8644. Grafik aktual dan prediksi menunjukkan bahwa sebagian besar titik berada di sekitar garis diagonal, sehingga hasil prediksi cukup mendekati nilai aktual. Berdasarkan analisis variable importance, variabel X4 memiliki pengaruh relatif terbesar sebesar 35,66%, sedangkan X8 memiliki pengaruh terkecil sebesar 0,39%. Dengan demikian, metode Gradient Boosting mampu menghasilkan model regresi dengan performa yang baik pada data Friedman, dengan X4 sebagai variabel yang paling berkontribusi terhadap prediksi.
   

DAFTAR PUSTAKA

Chairunisa, G., Najib, M. K., Nurdiati, S., Imni, S. F., Sanjaya, W., Andriani, R. D., Henriyansah, Putri, R. S. P., & Ekaputri, D. (2024). Life expectancy prediction using Decision Tree, Random Forest, Gradient Boosting, and XGBoost regressions. Jurnal Sintaks, 2(2), 71–82.
Firmansyah, H., & Abidin, Z. (2022). Penerapan algoritma Gradient Boosted Decision Trees pada AdaBoost untuk klasifikasi status desa. Jurnal Ilmiah JIAII: Jurnal Informatika UPS, 1(1), 27–35.
Fransiska, H. (2026). Modul praktikum machine learning and modern prediction. Universitas Bengkulu.
Yuhana, U. L., Purwarianti, A., & Imamah. (2022). Tuning hyperparameter pada Gradient Boosting untuk klasifikasi soal cerita otomatis. Jurnal Edukasi dan Penelitian Informatika (JEPIN), 8(1).