BAB I PENDAHULUAN

1.1 Latar Belakang

Boosting merupakan salah satu metode ensemble learning dalam pembelajaran mesin (machine learning) yang menggabungkan beberapa model pembelajaran sederhana (weak learners) untuk membentuk model prediksi yang lebih kuat. Metode ini bekerja secara bertahap dengan memberikan perhatian lebih pada kesalahan prediksi dari model sebelumnya sehingga model berikutnya dapat memperbaiki hasil pembelajaran. Boosting dapat diterapkan pada permasalahan klasifikasi maupun regresi, sehingga banyak digunakan dalam analisis data untuk menghasilkan prediksi yang lebih baik (Amatullah et al., 2025).

Dalam penerapannya, boosting memiliki beberapa algoritma, di antaranya Adaptive Boosting (AdaBoost), Gradient Boosting, Extreme Gradient Boosting (XGBoost), dan Light Gradient Boosting Machine (LightGBM). Setiap algoritma memiliki mekanisme pembelajaran yang berbeda, tetapi secara umum bertujuan meningkatkan kemampuan prediksi dengan menggabungkan hasil dari sejumlah model. Penelitian Putri dan Arianto (2024) membahas perbandingan metode bagging dan boosting untuk memprediksi konsentrasi PM10 di Jakarta Utara, sedangkan Toharudin et al. (2023) menerapkan beberapa algoritma boosting untuk klasifikasi konsentrasi PM2.5 dengan memperhatikan ketidakseimbangan kelas.

Praktikum metode boosting dilakukan untuk memahami konsep dasar, mekanisme kerja, serta penerapan algoritma boosting dalam membangun model prediksi berdasarkan data. Melalui praktikum ini, mahasiswa dapat mempelajari tahapan pengolahan data, pembentukan model, serta evaluasi kinerja model menggunakan ukuran evaluasi yang sesuai dengan permasalahan yang dianalisis. Pemahaman tersebut diharapkan dapat membantu mahasiswa menentukan dan menerapkan metode boosting secara tepat dalam menyelesaikan permasalahan analisis data (Putri & Arianto, 2024).

1.2 Rumusan Masalah

Berdasarkan latar belakang di atas dapat disimpulkan bahwa rumusan masalah sebagai berikut:

  1. Bagaimana mahasiswa mampu memahami Boosting sebagai metode ensemble learning?

  2. Bagaimana mahasiswa mampu mengimplementasikan Boosting untuk kasus klasifikasi dan regresi menggunakan R?

  3. Bagaimana mahasiswa mampu mengevaluasi performa model menggunakan ukuran evaluasi yang sesuai?

1.3 Tujuan Penelitian

Berdasarkan rumusan masalah di atas, tujuan penelitian yang dapat disimpulkan sebagai berikut:

  1. Mahasiswa dapat memahami Boosting sebagai metode ensemble learning.

  2. Mahasiswa dapat mengimplementasikan Boosting untuk kasus klasifikasi dan regresi menggunakan R.

  3. Mahasiswa dapat mengevaluasi performa model menggunakan ukuran evaluasi yang sesuai.

1.4 Manfaat Penelitian

Adapun manfaat yang didapatkan dari penelitian ini adalah sebagai berikut: 1. Bagi penulis: a. Dapat memberikan informasi serta pengetahuan tentang Boosting sebagai metode ensemble learning dan mampu mengimplementasikan Boosting untuk kasus klasifikasi dan regresi dengan paket pemrograman R. b. Menerapkan ilmu atau wawasan baru mengenai program R-Studio. 2. Bagi pembaca: a. Menambah ilmu pengetahuan dan pemahaman tentang Boosting sebagai metode ensemble learning dan mampu mengimplementasikan Boosting untuk kasus klasifikasi dan regresi dengan paket pemrograman R. b. Menjadi rujukan bagi peneliti selanjutnya.

1.5 Batasan Masalah

Adapun batasan masalah pada penelitian ini yaitu lakukan klasifikasi menggunakan AdaBoost pada data BreastCancer. Clue: Gunakan adabag::boosting() dengan decision stump sebagai weak learner. Bandingkan untuk 50, 100 dan 200 jumlah learner. Bandingkan pula performa model berdasarkan confusion matrix, Accuracy, Precision, Recall, Specificity, dan F1-score.

BAB II TINJAUAN PUSTAKA

2.1 Boosting

Boosting merupakan salah satu teknik ensemble learning dalam machine learning yang menggabungkan beberapa model pembelajaran sederhana untuk menghasilkan model dengan kemampuan prediksi yang lebih baik. Proses pembelajaran dilakukan secara berurutan, yaitu model berikutnya dibentuk dengan memperhatikan kesalahan yang dihasilkan oleh model sebelumnya sehingga kesalahan prediksi dapat diperbaiki secara bertahap (Firmansyah & Abidin, 2022).

Metode boosting memiliki beberapa algoritma, antara lain Adaptive Boosting (AdaBoost), Gradient Boosting, dan CatBoost, yang dapat digunakan untuk menyelesaikan permasalahan klasifikasi maupun prediksi numerik. Setiap algoritma memiliki mekanisme pembelajaran tersendiri, tetapi secara umum bertujuan meningkatkan kinerja model melalui penggabungan hasil pembelajaran beberapa model. Penerapan algoritma Gradient Boosting, AdaBoost, dan CatBoost dalam klasifikasi kualitas air menunjukkan bahwa ketiga algoritma tersebut dapat dibandingkan berdasarkan kinerja prediksinya, misalnya melalui nilai akurasi dan Area Under the Curve (AUC) (Jasman et al., 2022).

2.2 Jenis-Jenis Algoritma Boosting

Algoritma boosting terdiri atas beberapa jenis yang memiliki mekanisme pembelajaran dan karakteristik berbeda. Pertama, Adaptive Boosting (AdaBoost) merupakan algoritma yang meningkatkan kemampuan model dengan memberikan bobot lebih besar pada data yang salah diklasifikasikan pada iterasi sebelumnya. Kedua, Gradient Boosting membangun model secara bertahap dengan meminimalkan fungsi kerugian (loss function) berdasarkan kesalahan prediksi model sebelumnya. Kedua algoritma tersebut dapat digunakan untuk permasalahan klasifikasi dan telah diterapkan dalam penelitian analisis kualitas air (Jasman et al., 2022).

Jenis boosting lainnya adalah Extreme Gradient Boosting (XGBoost), Light Gradient Boosting Machine (LightGBM), dan Categorical Boosting (CatBoost). XGBoost dikembangkan untuk meningkatkan efisiensi dan kinerja pembelajaran berbasis gradient boosting, sedangkan LightGBM dirancang untuk mempercepat proses pelatihan melalui pendekatan pertumbuhan pohon yang efisien. Sementara itu, CatBoost dirancang untuk menangani variabel kategorik secara efektif. Ketiga algoritma tersebut, bersama AdaBoost dan Gradient Boosting, telah digunakan dalam penelitian klasifikasi dan prediksi, sehingga pemilihan algoritma perlu disesuaikan dengan karakteristik data serta hasil evaluasi model (Toharudin et al., 2023; Mawardi et al., 2025).

BAB III METODE PENELITIAN

3.1 Jenis dan Sumber Data

Jenis data yang digunakan dalam penelitian ini adalah data kuantitatif atau data numerik. Data kuantitatif merupakan data berbentuk angka yang dapat diukur, dihitung, dan dianalisis menggunakan metode statistik maupun matematis. Data yang digunakan dalam penelitian ini berupa dataset BreastCancer yang memuat karakteristik sel kanker payudara untuk mengklasifikasikan kondisi tumor ke dalam dua kategori, yaitu benign (jinak) dan malignant (ganas).

Jenis data yang digunakan merupakan data sekunder, yaitu data yang telah dikumpulkan dan disediakan oleh pihak lain di luar peneliti. Data dalam penelitian ini diperoleh dari dataset BreastCancer yang tersedia pada paket mlbench dalam perangkat lunak R. Dataset tersebut digunakan untuk melakukan klasifikasi menggunakan metode Adaptive Boosting (AdaBoost) dengan bantuan paket adabag.

3.2 Variabel Penelitian

Variabel adalah simbol, karakteristik, atau atribut yang dapat diukur atau diamati dalam suatu penelitian. Variabel yang digunakan dalam penelitian ini terdiri atas satu variabel dependen (Y), yaitu Class yang menunjukkan kategori kondisi tumor payudara, meliputi benign (jinak) dan malignant (ganas). Sementara itu, variabel independen terdiri atas sembilan variabel. Variabel-variabel tersebut digunakan sebagai prediktor untuk mengklasifikasikan kondisi tumor payudara menggunakan metode AdaBoost.

3.3 Analisis Data

Langkah-langkah yang digunakan dalam penelitian ini adalah sebagai berikut: 1. Memanggil paket adabag, mlbench, caret, dan rpart pada perangkat lunak R. 2. Memuat dataset BreastCancer dari paket mlbench. 3. Memeriksa struktur data, ringkasan data, dan distribusi kelas. 4. Melakukan persiapan data dengan menghapus variabel Id, menghilangkan data yang memiliki nilai hilang (missing value), serta mengubah variabel Class menjadi tipe factor. 5. Membagi data menjadi data training sebesar 70% dan data testing sebesar 30%. 6. Membentuk model klasifikasi menggunakan metode Adaptive Boosting (AdaBoost) dengan fungsi boosting() dari paket adabag. 7. Menggunakan decision stump sebagai weak learner dengan pengaturan maxdepth = 1. 8. Membandingkan model AdaBoost berdasarkan tiga jumlah learner, yaitu: a. 50 learner. b. 100 learner. c. 200 learner. 9. Melakukan prediksi terhadap data testing pada masing-masing model. 10. Membentuk confusion matrix untuk membandingkan hasil klasifikasi aktual dan prediksi. 11. Menghitung ukuran evaluasi performa klasifikasi yang meliputi Accuracy, Precision, Recall, Specificity, dan F1-score. 12. Membandingkan hasil evaluasi dari ketiga model untuk mengetahui jumlah learner yang menghasilkan performa klasifikasi terbaik. 13. Menampilkan grafik perbandingan performa model berdasarkan nilai Accuracy, Precision, Recall, Specificity, dan F1-score.

BAB IV HASIL DAN PEMBAHASAN

4.1 Library dan Pembangkitan Data

# A1. Memanggil Library
library(adabag)
## Loading required package: rpart
## Loading required package: caret
## Loading required package: ggplot2
## Loading required package: lattice
## Loading required package: foreach
## Loading required package: doParallel
## Loading required package: iterators
## Loading required package: parallel
library(mlbench)
library(caret)
library(rpart)

# A2. Memuat Data
data(BreastCancer, package = "mlbench")
bc <- BreastCancer

# Melihat struktur dan ringkasan data
str(bc)
## '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 ...
summary(bc)
##       Id             Cl.thickness   Cell.size     Cell.shape  Marg.adhesion
##  Length:699         1      :145   1      :384   1      :353   1      :407  
##  Class :character   5      :130   10     : 67   2      : 59   2      : 58  
##  Mode  :character   3      :108   3      : 52   10     : 58   3      : 58  
##                     4      : 80   2      : 45   3      : 56   10     : 55  
##                     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   NA's   : 16   (Other): 69   (Other): 69     (Other): 17  
##        Class    
##  benign   :458  
##  malignant:241  
##                 
##                 
##                 
##                 
## 
# A3. Persiapan Data

# Menghapus variabel Id
bc$Id <- NULL

# Menghapus missing value
bc <- na.omit(bc)

# Mengubah variabel Class menjadi factor
bc$Class <- droplevels(as.factor(bc$Class))

# Melihat distribusi kelas
levels(bc$Class)
## [1] "benign"    "malignant"
table(bc$Class)
## 
##    benign malignant 
##       444       239
prop.table(table(bc$Class))
## 
##    benign malignant 
## 0.6500732 0.3499268

Dilakukan dengan memanggil beberapa library yang diperlukan dalam proses analisis, yaitu adabag, mlbench, caret, dan rpart. Paket adabag digunakan untuk membentuk model klasifikasi AdaBoost, mlbench menyediakan dataset BreastCancer, caret digunakan untuk membantu pembagian data dan evaluasi model, sedangkan rpart digunakan untuk membentuk pohon keputusan sebagai weak learner. Selanjutnya, dataset BreastCancer dimuat dari paket mlbench, kemudian disimpan ke dalam objek bc. Fungsi str() dan summary() digunakan untuk melihat struktur serta ringkasan data. Pada tahap persiapan data, variabel Id dihapus karena hanya berfungsi sebagai identitas pengamatan, kemudian data yang mengandung nilai hilang (missing value) dihapus menggunakan na.omit(). Variabel Class selanjutnya diubah menjadi tipe factor agar dapat digunakan dalam proses klasifikasi. Berdasarkan hasil pemeriksaan distribusi kelas, diketahui bahwa dataset terdiri atas dua kategori, yaitu benign sebanyak 444 pengamatan atau 65,01% dan malignant sebanyak 239 pengamatan atau 34,99%. Dengan demikian, total data yang digunakan setelah proses pembersihan adalah 683 pengamatan, dengan kategori benign sebagai kelas yang memiliki jumlah pengamatan lebih banyak dibandingkan kategori malignant.

4.2 Splitting Data

# A4. Membagi Data Training dan Testing (70:30)
set.seed(234)

idx.bc <- createDataPartition(
  bc$Class,
  p = 0.70,
  list = FALSE
)

bc.train <- bc[idx.bc, ]
bc.test <- bc[-idx.bc, ]

# Melihat ukuran data
dim(bc.train)
## [1] 479  10
dim(bc.test)
## [1] 204  10
# Distribusi kelas
table(bc.train$Class)
## 
##    benign malignant 
##       311       168
table(bc.test$Class)
## 
##    benign malignant 
##       133        71

Tahap splitting data dilakukan untuk membagi dataset menjadi data training dan data testing dengan proporsi 70:30. Proses pembagian dilakukan menggunakan fungsi createDataPartition() dari paket caret dengan menetapkan set.seed(234) agar hasil pembagian data dapat direproduksi. Berdasarkan hasil pembagian, diperoleh data training sebanyak 479 pengamatan dengan 10 variabel, sedangkan data testing sebanyak 204 pengamatan dengan 10 variabel. Pada data training, terdapat 311 pengamatan kategori benign dan 168 pengamatan kategori malignant. Sementara itu, pada data testing terdapat 133 pengamatan kategori benign dan 71 pengamatan kategori malignant. Dengan demikian, pembagian data menghasilkan proporsi kelas yang relatif terjaga sehingga data training dapat digunakan untuk membentuk model AdaBoost, sedangkan data testing digunakan untuk mengevaluasi kemampuan model dalam melakukan klasifikasi terhadap data baru.

4.3 Pembentukan Model AdaBoost

# A5. Membentuk Model AdaBoost

jumlah.learner <- c(50, 100, 200)

model.ada <- list()
hasil.evaluasi <- data.frame()

for (m in jumlah.learner) {

  set.seed(234)

  # Membentuk model AdaBoost
  model.ada[[as.character(m)]] <- boosting(
    Class ~ .,
    data = bc.train,
    boos = FALSE,
    mfinal = m,
    coeflearn = "Freund",
    control = rpart.control(
      maxdepth = 1,
      minsplit = 10,
      cp = 0
    )
  )

  # Prediksi data testing
  pred.obj <- predict(
    model.ada[[as.character(m)]],
    newdata = bc.test
  )

  pred <- factor(
    pred.obj$class,
    levels = levels(bc.test$Class)
  )

  aktual <- bc.test$Class

  # Confusion Matrix
  cm <- confusionMatrix(
    data = pred,
    reference = aktual,
    positive = "malignant"
  )

  print(cm)

  # Menghitung TP, TN, FP, FN
  tab <- table(
    Aktual = aktual,
    Prediksi = pred
  )

  TN <- tab["benign", "benign"]
  FP <- tab["benign", "malignant"]
  FN <- tab["malignant", "benign"]
  TP <- tab["malignant", "malignant"]

  # Menghitung evaluasi
  Accuracy <- (TP + TN) / (TP + TN + FP + FN)
  Precision <- TP / (TP + FP)
  Recall <- TP / (TP + FN)
  Specificity <- TN / (TN + FP)
  F1_Score <- 2 * Precision * Recall /
    (Precision + Recall)

  # Menyimpan hasil evaluasi
  hasil.evaluasi <- rbind(
    hasil.evaluasi,
    data.frame(
      Learner = m,
      Accuracy = Accuracy,
      Precision = Precision,
      Recall = Recall,
      Specificity = Specificity,
      F1_Score = F1_Score
    )
  )
}
## Confusion Matrix and Statistics
## 
##            Reference
## Prediction  benign malignant
##   benign       130         4
##   malignant      3        67
##                                           
##                Accuracy : 0.9657          
##                  95% CI : (0.9306, 0.9861)
##     No Information Rate : 0.652           
##     P-Value [Acc > NIR] : <2e-16          
##                                           
##                   Kappa : 0.9241          
##                                           
##  Mcnemar's Test P-Value : 1               
##                                           
##             Sensitivity : 0.9437          
##             Specificity : 0.9774          
##          Pos Pred Value : 0.9571          
##          Neg Pred Value : 0.9701          
##              Prevalence : 0.3480          
##          Detection Rate : 0.3284          
##    Detection Prevalence : 0.3431          
##       Balanced Accuracy : 0.9606          
##                                           
##        'Positive' Class : malignant       
##                                           
## Confusion Matrix and Statistics
## 
##            Reference
## Prediction  benign malignant
##   benign       130         4
##   malignant      3        67
##                                           
##                Accuracy : 0.9657          
##                  95% CI : (0.9306, 0.9861)
##     No Information Rate : 0.652           
##     P-Value [Acc > NIR] : <2e-16          
##                                           
##                   Kappa : 0.9241          
##                                           
##  Mcnemar's Test P-Value : 1               
##                                           
##             Sensitivity : 0.9437          
##             Specificity : 0.9774          
##          Pos Pred Value : 0.9571          
##          Neg Pred Value : 0.9701          
##              Prevalence : 0.3480          
##          Detection Rate : 0.3284          
##    Detection Prevalence : 0.3431          
##       Balanced Accuracy : 0.9606          
##                                           
##        'Positive' Class : malignant       
##                                           
## Confusion Matrix and Statistics
## 
##            Reference
## Prediction  benign malignant
##   benign       130         5
##   malignant      3        66
##                                           
##                Accuracy : 0.9608          
##                  95% CI : (0.9242, 0.9829)
##     No Information Rate : 0.652           
##     P-Value [Acc > NIR] : <2e-16          
##                                           
##                   Kappa : 0.913           
##                                           
##  Mcnemar's Test P-Value : 0.7237          
##                                           
##             Sensitivity : 0.9296          
##             Specificity : 0.9774          
##          Pos Pred Value : 0.9565          
##          Neg Pred Value : 0.9630          
##              Prevalence : 0.3480          
##          Detection Rate : 0.3235          
##    Detection Prevalence : 0.3382          
##       Balanced Accuracy : 0.9535          
##                                           
##        'Positive' Class : malignant       
## 
# Menampilkan hasil perbandingan
print(round(hasil.evaluasi, 4))
##   Learner Accuracy Precision Recall Specificity F1_Score
## 1      50   0.9657    0.9571 0.9437      0.9774   0.9504
## 2     100   0.9657    0.9571 0.9437      0.9774   0.9504
## 3     200   0.9608    0.9565 0.9296      0.9774   0.9429

Berdasarkan hasil evaluasi model AdaBoost pada dataset BreastCancer, diperoleh hasil perbandingan untuk jumlah learner sebanyak 50, 100, dan 200. Pada model dengan 50 learner, diperoleh nilai Accuracy sebesar 0,9657, Precision sebesar 0,9571, Recall sebesar 0,9437, Specificity sebesar 0,9774, dan F1-score sebesar 0,9504. Model dengan 100 learner menghasilkan nilai evaluasi yang sama, yaitu Accuracy sebesar 0,9657, Precision sebesar 0,9571, Recall sebesar 0,9437, Specificity sebesar 0,9774, dan F1-score sebesar 0,9504. Sementara itu, model dengan 200 learner menghasilkan Accuracy sebesar 0,9608, Precision sebesar 0,9565, Recall sebesar 0,9296, Specificity sebesar 0,9774, dan F1-score sebesar 0,9429. Berdasarkan hasil tersebut, model AdaBoost dengan 50 dan 100 learner memiliki performa terbaik karena menghasilkan nilai Accuracy, Precision, Recall, dan F1-score yang lebih tinggi dibandingkan model dengan 200 learner, sedangkan nilai Specificity ketiganya sama. Dengan demikian, penggunaan 50 learner dapat dipilih karena menghasilkan performa klasifikasi yang sama dengan 100 learner menggunakan jumlah learner yang lebih sedikit.

4.6 Plot Aktual dan Prediksi

# A9. Grafik Perbandingan Performa Model

# Mengubah data ke format matriks
hasil.plot <- as.matrix(
  hasil.evaluasi[, -1]
)

rownames(hasil.plot) <- paste(
  hasil.evaluasi$Learner, "Learner"
)

# Membuat grafik perbandingan
barplot(
  t(hasil.plot),
  beside = TRUE,
  col = c("skyblue", "orange", "lightgreen",
          "pink", "purple"),
  ylim = c(0, 1),
  main = "Perbandingan Performa AdaBoost",
  xlab = "Jumlah Learner",
  ylab = "Nilai Evaluasi",
  legend.text = colnames(hasil.plot),
  args.legend = list(
    x = "bottomright",
    cex = 0.7
  )
)

barplot
## function (height, ...) 
## UseMethod("barplot")
## <bytecode: 0x00000273c1e19bf8>
## <environment: namespace:graphics>

Berdasarkan grafik perbandingan performa AdaBoost, terlihat bahwa model dengan 50 dan 100 learner menghasilkan kinerja klasifikasi yang sama, dengan nilai Accuracy sebesar 0,9657, Precision sebesar 0,9571, Recall sebesar 0,9437, Specificity sebesar 0,9774, dan F1-score sebesar 0,9504. Sementara itu, model dengan 200 learner menunjukkan penurunan pada nilai Accuracy, Precision, Recall, dan F1-score, meskipun nilai Specificity tetap sama. Dengan demikian, model AdaBoost dengan 50 learner dapat dipilih sebagai model terbaik karena menghasilkan performa yang setara dengan 100 learner, tetapi menggunakan jumlah learner yang lebih sedikit.

BAB V KESIMPULAN DAN SARAN

5.1 Kesimpulan

Boosting merupakan metode ensemble learning yang menggabungkan beberapa model lemah secara bertahap untuk membentuk model yang lebih kuat. Setiap model baru berusaha memperbaiki kesalahan prediksi model sebelumnya sehingga dapat meningkatkan ketepatan hasil prediksi.

Metode Boosting dapat diimplementasikan menggunakan R untuk menyelesaikan permasalahan klasifikasi dan regresi. Pada praktikum ini, metode Gradient Boosting diterapkan pada kasus regresi melalui pembangkitan data, pembagian data training dan testing, serta pembentukan model dengan beberapa nilai shrinkage untuk memperoleh model yang optimal.

Performa model regresi dievaluasi menggunakan MSE, RMSE, MAE, dan \(R^2\). Evaluasi juga didukung oleh grafik aktual dan prediksi, pemeriksaan residual, serta analisis variable importance untuk mengetahui ketepatan prediksi dan kontribusi setiap variabel dalam model.

Berdasarkan hasil analisis, dapat disimpulkan bahwa metode Adaptive Boosting (AdaBoost) mampu melakukan klasifikasi dengan kinerja yang sangat baik. Model dengan 50 dan 100 learner memberikan hasil terbaik dengan nilai Accuracy sebesar 96,57%, Precision 95,71%, Recall 94,37%, Specificity 97,74%, dan F1-score 95,04%. Sementara itu, penggunaan 200 learner menghasilkan performa yang sedikit lebih rendah. Oleh karena itu, model AdaBoost dengan 50 learner dipilih sebagai model terbaik karena memiliki kinerja yang sama dengan 100 learner, tetapi menggunakan jumlah learner yang lebih sedikit.

5.2 Saran

Laporan praktikum ini melakukan pemograman R. Dalam hal ini perlu memahami sintak yang diperlukan dalam hal pengerjaannya ini agar tidak terjadi error pada programnya. Dan juga sangat perlu memahami tentang Boosting sebagai metode ensemble learning dan mampu mengimplementasikan Boosting untuk kasus klasifikasi dan regresi dengan paket pemrograman R.

DAFTAR PUSTAKA

Amatullah, F. F., Utami, H. M., Rizqi, T. A., Wahyuni, S. T., Sartono, B., & Firdawanti, A. R. (2025). Studi komparatif metode boosting dalam pengklasifikasian penerima bantuan Program Keluarga Harapan (PKH). TELKA - Telekomunikasi, Elektronika, Komputasi dan Kontrol, 11(3), 315–326.

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

Fransiska, H. (2026). Modul Praktikum Machine Learning. Universitas Bengkulu

Jasman, T. Z., Fadhlullah, M. A., Pratama, A. L., & Rismayani. (2022). Analisis algoritma Gradient Boosting, Adaboost dan Catboost dalam klasifikasi kualitas air. JuTISI (Jurnal Teknik Informatika dan Sistem Informasi), 8(2).

Mawardi, A. B., Pradini, R. S., & Haris, M. S. (2025). Komparasi algoritma boosting untuk prediksi gangguan tidur. Jurnal Informatika dan Teknik Elektro Terapan, 13(3).

Muhathir, M., Pangestu, R. T., Safira, I., & Melisah, M. (2023). Performance comparison of boosting algorithms in spices classification using histogram of oriented gradient feature extraction. Journal of Computer Science, Information Technology and Telecommunication Engineering, 4(1).

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), 72–81.

Toharudin, T., Caraka, R. E., Pratiwi, I. R., Kim, Y., Gio, P. U., Sakti, A. D., Noh, M., Nugraha, F. A. L., Pontoh, R. S., Putri, T. H., Azzahra, T. S., Cerelia, J. J., Darmawan, G., & Pardamean, B. (2023). Boosting algorithm to handle unbalanced classification of PM2.5 concentration levels by observing meteorological parameters in Jakarta-Indonesia using AdaBoost, XGBoost, CatBoost, and LightGBM. IEEE Access.