BAB I PENDAHULUAN

1.1 Latar Belakang Masalah

Machine learning merupakan salah satu metode pengolahan data yang dapat digunakan untuk membangun model klasifikasi dan prediksi berdasarkan pola yang terdapat dalam data, salah satunya melalui pendekatan ensemble learning (Firmansyah & Abidin, 2022). Ensemble learning menggabungkan beberapa model pembelajaran untuk menghasilkan prediksi, sedangkan boosting membangun model secara bertahap dengan memperhatikan kesalahan prediksi pada tahap sebelumnya. Metode boosting memiliki beberapa algoritma, seperti AdaBoost dan XGBoost, yang telah diterapkan dalam berbagai permasalahan klasifikasi (Novianti dkk., 2022)

Penerapan boosting dapat digunakan untuk menyelesaikan permasalahan klasifikasi maupun regresi sesuai dengan karakteristik data dan tujuan analisis yang dilakukan. Pada kasus klasifikasi, model digunakan untuk menentukan kelas atau kategori suatu objek, sedangkan pada kasus regresi model digunakan untuk memperkirakan nilai numerik berdasarkan variabel yang tersedia. Keberhasilan penerapan metode boosting perlu dinilai melalui ukuran evaluasi yang sesuai agar kemampuan model dalam menghasilkan prediksi dapat diketahui (Maulana dkk., 2023).

Evaluasi model klasifikasi dapat menggunakan accuracy, precision, recall, dan F1-score, sedangkan evaluasi regresi dapat menggunakan Mean Absolute Error (MAE), Mean Squared Error (MSE), dan Root Mean Squared Error (RMSE) untuk mengukur kesalahan prediksi. Oleh karena itu, praktikum Boosting dilakukan agar dapat memahami boosting sebagai salah satu metode ensemble learning, mengimplementasikannya pada kasus klasifikasi dan regresi menggunakan perangkat lunak R, serta mengevaluasi performa model berdasarkan ukuran evaluasi yang sesuai dengan jenis analisis yang dilakukan.

1.2 Rumusan Masalah

  1. Apa yang dimaksud dengan Boosting sebagai metode ensemble learning?
  2. Bagaimana mengimplementasikan Boosting untuk kasus klasifikasi dan regresi menggunakan R?
  3. Bagaimana mengevaluasi performa model menggunakan ukuran evaluasi yang sesuai?

1.3 Tujuan

  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 Batasan Masalah

Lakukan analisis Boosting secara lengkap mulai dari persiapan data, pembentukan model, prediksi, evaluasi, visualisasi, dan interpretasi. Gunakan seet.seed(234) agar hasil pembagian data dapat direproduksi. NPM Genap: Lakukan klasisfikasi menggunakan AdaBoost pada data BreastCancer. Clue: Gunakan adabag::boosting() dengan desicion 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 Ensemble Learning

Ensemble learning adalah teknik yang menggabungkan beberapa model dasar (base learners) untuk menghasilkan prediksi akhir. Gagasan utama metode ini adalah bahwa kombinasi beberapa model dapat menghasilkan prediksi yang lebih stabil atau lebih akurat dibandingkan satu model saja. Perbaikan tersebut dapat diperoleh melalui pengurangan varians, pengurangan bias, atau pemanfaatan keragaman kesalahan antar-base learners (Mienye & Sun, 2022)

2.2 Boosting

Boosting merupakan metode ensemble yang membentuk model kuat dari serangkaian weak learner. Pada setiap tahap, algoritma memberikan perhatian lebih besar pada observasi yang sulit diprediksi atau pada residual dari model sebelumnya. Model-model tersebut kemudian digabungkan menjadi fungsi prediksi akhir. Dengan cara ini, Boosting dapat menangkap hubungan nonlinier dan interaksi antarvariabel yang sulit direpresentasikan oleh satu pohon keputusan sederhana (Ahn et al., 2023). Berbeda dengan Bagging, model-model pada Boosting tidak dibangun secara independen. Pada Bagging, banyak model dapat dibentuk secara paralel dan kemudian hasil prediksinya diagregasi. Pada Boosting, learner ke-2 dibangun berdasarkan informasi dari hasil learner ke-1, learner ke-3 memperbaiki hasil yang masih belum baik dari tahap sebelumnya, dan proses tersebut dilanjutkan secara berurutan. Prinsip sequential learning inilah yang menjadi salah satu ciri utama Boosting. Pada Boosting berbasis pohon, decision tree sering digunakan sebagai base learner. Kedalaman pohon dapat dibatasi sehingga setiap pohon tetap sederhana dan berperan sebagai weak learner. Selanjutnya, kontribusi dari pohon-pohon tersebut digabungkan secara bertahap sehingga membentuk model Boosting akhir (Fransiska, 2026).

2.3 Jenis-Jenis Algoritma Boosting

Algoritma boosting memiliki beberapa jenis, di antaranya Adaptive Boosting (AdaBoost), Gradient Boosting, Extreme Gradient Boosting (XGBoost), Categorical Boosting (CatBoost), dan Light Gradient Boosting Machine (LightGBM). Setiap algoritma memiliki mekanisme pembelajaran yang berbeda untuk memperbaiki hasil prediksi dan meningkatkan kinerja model.AdaBoost memberikan perhatian lebih pada data yang salah diprediksi, sedangkan Gradient Boosting memperbaiki kesalahan prediksi secara bertahap berdasarkan fungsi kerugian. XGBoost merupakan pengembangan Gradient Boosting yang mengutamakan optimasi komputasi, CatBoost dirancang untuk menangani variabel kategorik, sedangkan LightGBM berfokus pada efisiensi pembelajaran. Pemilihan algoritma perlu disesuaikan dengan karakteristik data dan tujuan analisis (Mawardi dkk., 2025)

BAB III METODE PENELITIAN

3.1 Sumber Data

Jenis data yang digunakan dalam penelitian ini terdiri atas data kuantitatif dan data kualitatif. Sumber data yang digunakan dalam penelitian ini adalah data sekunder, yaitu data yang diperoleh melalui sumber yang telah tersedia atau perantara, bukan dikumpulkan secara langsung oleh penulis. Data yang digunakan dalam praktikum ini adalah dataset BreastCancer yang tersedia dalam program R melalui paket mlbench dan digunakan untuk penerapan metode boosting pada kasus klasifikasi.

3.2 Variabel Penelitian

Variabel penelitian yang digunakan berasal dari dataset BreastCancer dengan jumlah 699 observasi dan 11 variabel.Variabel prediktor meliputi Cl.thickness, Cell.size, Cell.shape, Marg.adhesion, Epith.c.size, Bare.nuclei, Bl.cromatin, Normal.nucleoli, dan Mitoses, yang menggambarkan karakteristik sel. Sementara itu, variabel respons adalah Class, yang menunjukkan kategori tumor, yaitu benign (jinak) dan malignant (ganas).

3.3 Langkah-langkah Analisis

Tahapan analisis data dalam penerapan metode AdaBoost Classification menggunakan R dilakukan secara sistematis sebagai berikut:

  1. Input data berupa dataset BreastCancer yang digunakan dalam analisis klasifikasi.

  2. Preprocessing data untuk membersihkan data dan menangani nilai yang hilang.

  3. Pembagian data menjadi training dan testing

  4. Penentuan jumlah weak learner sebanyak 50, 100, dan 200.

  5. Pembentukan model AdaBoost Classification menggunakan 8decision stump8.

  6. Prediksi kelas data testing berdasarkan model yang telah dibangun.

  7. Perhitungan metrik evaluasi berupa Accuracy, Precision, Recall, Specificity, dan F1-Score.

  8. Perbandingan hasil evaluasi dari ketiga model untuk menentukan model dengan kinerja terbaik.

  9. Penyajian output dan interpretasi hasil klasifikasi berdasarkan metrik evaluasi.

BAB IV HASIL DAN PEMBAHASAN

4.1 Input Package dan Dataset

library(adabag) 
## Warning: package 'adabag' was built under R version 4.5.3
## Loading required package: rpart
## Warning: package 'rpart' was built under R version 4.5.3
## Loading required package: caret
## Warning: package 'caret' was built under R version 4.5.3
## Loading required package: ggplot2
## Loading required package: lattice
## Loading required package: foreach
## Loading required package: doParallel
## Warning: package 'doParallel' was built under R version 4.5.3
## Loading required package: iterators
## Loading required package: parallel
library(mlbench) 
## Warning: package 'mlbench' was built under R version 4.5.3
library(caret) 
library(rpart) 
library(knitr)
# A1. Memanggil dataset
data(BreastCancer, package = "mlbench") 
bc <- BreastCancer 

# Melihat struktur dan ringkasan data
str(BreastCancer)
## '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  
##                 
##                 
##                 
##                 
## 
# A2. Persiapan data
# Menghapus Id karena hanya merupakan identifier
bc$Id <- NULL

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

# Memastikan respons berupa factor
bc$Class <- droplevels(as.factor(bc$Class))

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

Dataset BreastCancer memiliki 699 observasi dan 11 variabel, yang terdiri atas satu variabel identitas, sembilan variabel prediktor, dan satu variabel respons, yaitu Class. Pada variabel Bare.nuclei terdapat 16 data yang hilang sehingga dilakukan penghapusan data tersebut dan variabel identitas Id yang tidak digunakan dalam pemodelan. Setelah proses pembersihan, jumlah data menjadi 683 observasi, dengan 444 data kategori benign dan 239 data kategori malignant.Proporsi data menunjukkan bahwa kategori benign sebesar 65,01%, sedangkan kategori malignant sebesar 34,99%. Variabel Class diubah menjadi faktor agar dapat digunakan dalam proses klasifikasi menggunakan metode AdaBoost.

4.2 Pembagian Data Training dan Testing

# A3.Membagi data training dan testing (70% dan 30%)
set.seed(234)
idx.cls <- createDataPartition(bc$Class, p = 0.70, list = FALSE)
bc.train <- bc[idx.cls, ]
bc.test <- bc[-idx.cls, ]

# Memeriksa ukuran data
dim(bc.train)
## [1] 479  10
dim(bc.test)
## [1] 204  10
# Distribusi kelas pada training dan testing
table(bc.train$Class)
## 
##    benign malignant 
##       311       168
table(bc.test$Class)
## 
##    benign malignant 
##       133        71
prop.table(table(bc.train$Class))
## 
##    benign malignant 
## 0.6492693 0.3507307
prop.table(table(bc.test$Class))
## 
##    benign malignant 
## 0.6519608 0.3480392

Berdasarkan hasil pembagian data, sebanyak 479 observasi digunakan sebagai data training dan 204 observasi sebagai data testing. Data training terdiri atas 311 kategori benign (64,93%) dan 168 kategori malignant (35,07%), sedangkan data testing terdiri atas 133 kategori benign (65,20%) dan 71 kategori malignant (34,80%). Proporsi kedua kategori pada data training dan testing relatif serupa, sehingga distribusi kelas tetap terjaga setelah pembagian data. Selanjutnya, data training digunakan untuk membentuk model AdaBoost, sedangkan data testing digunakan untuk mengevaluasi kinerja model dalam mengklasifikasikan data.

4.3 Membentuk Model AdaBoost

# Membentuk model AdaBoost
# Decision stump dengan maxdepth = 1
set.seed(234)
model50 <- boosting(
  Class ~ ., data = bc.train, mfinal = 50,
  control = rpart.control(maxdepth = 1, cp = 0)
)

set.seed(234)
model100 <- boosting(
  Class ~ ., data = bc.train, mfinal = 100,
  control = rpart.control(maxdepth = 1, cp = 0)
)

set.seed(234)
model200 <- boosting(
  Class ~ ., data = bc.train, mfinal = 200,
  control = rpart.control(maxdepth = 1, cp = 0)
)

# Tabel jumlah learner
tabel_learner <- data.frame(
  Model = c("AdaBoost 50", "AdaBoost 100", "AdaBoost 200"),
  Jumlah_Learner = c(
    length(model50$trees),
    length(model100$trees),
    length(model200$trees)
  )
)

knitr::kable(
  tabel_learner,
  caption = "Jumlah Learner pada Model AdaBoost"
)
Jumlah Learner pada Model AdaBoost
Model Jumlah_Learner
AdaBoost 50 50
AdaBoost 100 100
AdaBoost 200 200

Pembentukan model dilakukan menggunakan metode AdaBoost dengan jumlah learner yang berbeda, yaitu 50, 100, dan 200. Setiap model menggunakan decision stump sebagai pohon keputusan dasar dengan kedalaman maksimum satu tingkat. Penggunaan variasi jumlah learner ini bertujuan untuk melihat perbedaan kemampuan model dalam mengklasifikasikan data kanker payudara. Hasil dari ketiga model selanjutnya dievaluasi menggunakan sejumlah metrik klasifikasi untuk mengetahui model yang memberikan kinerja terbaik.

4.4 Prediksi Data Testing

# A5. Prediksi data testing

# Prediksi model AdaBoost
pred50.obj <- predict(model50, newdata = bc.test)
pred100.obj <- predict(model100, newdata = bc.test)
pred200.obj <- predict(model200, newdata = bc.test)

# Mengambil hasil prediksi kelas
pred50 <- factor(pred50.obj$class,
                 levels = levels(bc.test$Class))
pred100 <- factor(pred100.obj$class,
                  levels = levels(bc.test$Class))
pred200 <- factor(pred200.obj$class,
                  levels = levels(bc.test$Class))

# Menggabungkan hasil prediksi
hasil.prediksi <- data.frame(
  Aktual = bc.test$Class,
  Prediksi_50 = pred50,
  Prediksi_100 = pred100,
  Prediksi_200 = pred200
)

# Menampilkan 10 hasil pertama dalam tabel
knitr::kable(
  head(hasil.prediksi, 10),
  caption = "Perbandingan Hasil Prediksi Model AdaBoost"
)
Perbandingan Hasil Prediksi Model AdaBoost
Aktual Prediksi_50 Prediksi_100 Prediksi_200
benign malignant malignant malignant
benign benign benign benign
benign benign benign benign
benign benign benign benign
benign benign benign benign
malignant malignant malignant malignant
benign benign benign benign
benign benign benign benign
benign benign benign benign
malignant malignant malignant malignant

Berdasarkan 10 observasi pertama pada data testing, hasil prediksi dari ketiga model AdaBoost menunjukkan pola yang sama. Pada observasi pertama, kelas aktual adalah benign, tetapi ketiga model memprediksi malignant, sehingga terjadi kesalahan klasifikasi. Sementara itu, observasi lainnya pada tabel menunjukkan hasil prediksi yang sesuai dengan kelas aktual.

Kesamaan hasil prediksi pada ketiga model menunjukkan bahwa penambahan jumlah learner dari 50 menjadi 100 dan 200 belum menghasilkan perbedaan prediksi pada 10 observasi pertama. Namun, kinerja keseluruhan model belum dapat ditentukan hanya dari sebagian data tersebut, sehingga diperlukan evaluasi menggunakan confusion matrix dan metrik klasifikasi untuk mengetahui model dengan performa terbaik.

4.5 Menghitung Confusion Matrix dan Metrik Evaluasi

# A6. Confusion Matrix

# Confusion Matrix AdaBoost 50 Learner
cm.ada50 <- confusionMatrix(
  data = pred50,
  reference = bc.test$Class,
  positive = "malignant"
)

tab.ada50 <- table(
  Aktual = bc.test$Class,
  Prediksi = pred50
)

knitr::kable(
  tab.ada50,
  caption = "Confusion Matrix Model AdaBoost 50 Learner",
  align = "c"
)
Confusion Matrix Model AdaBoost 50 Learner
benign malignant
benign 131 2
malignant 5 66
# Confusion Matrix AdaBoost 100 Learner
cm.ada100 <- confusionMatrix(
  data = pred100,
  reference = bc.test$Class,
  positive = "malignant"
)

tab.ada100 <- table(
  Aktual = bc.test$Class,
  Prediksi = pred100
)

knitr::kable(
  tab.ada100,
  caption = "Confusion Matrix Model AdaBoost 100 Learner",
  align = "c"
)
Confusion Matrix Model AdaBoost 100 Learner
benign malignant
benign 130 3
malignant 5 66
# Confusion Matrix AdaBoost 200 Learner
cm.ada200 <- confusionMatrix(
  data = pred200,
  reference = bc.test$Class,
  positive = "malignant"
)

tab.ada200 <- table(
  Aktual = bc.test$Class,
  Prediksi = pred200
)

knitr::kable(
  tab.ada200,
  caption = "Confusion Matrix Model AdaBoost 200 Learner",
  align = "c"
)
Confusion Matrix Model AdaBoost 200 Learner
benign malignant
benign 130 3
malignant 6 65
# A7. Menghitung Ukuran Evaluasi Klasifikasi

# Fungsi menghitung metrik evaluasi
hitung.evaluasi <- function(tab) {

  # Kelas positif = malignant
  TN <- tab["benign", "benign"]
  FP <- tab["benign", "malignant"]
  FN <- tab["malignant", "benign"]
  TP <- tab["malignant", "malignant"]

  # Accuracy
  Accuracy <- (TP + TN) / (TP + TN + FP + FN)

  # Precision
  Precision <- TP / (TP + FP)

  # Recall
  Recall <- TP / (TP + FN)

  # Specificity
  Specificity <- TN / (TN + FP)

  # F1-Score
  F1_Score <- 2 * Precision * Recall /
    (Precision + Recall)

  return(c(
    Accuracy = Accuracy,
    Precision = Precision,
    Recall = Recall,
    Specificity = Specificity,
    F1_Score = F1_Score
  ))
}

# Menghitung metrik setiap model
evaluasi50 <- hitung.evaluasi(tab.ada50)
evaluasi100 <- hitung.evaluasi(tab.ada100)
evaluasi200 <- hitung.evaluasi(tab.ada200)

# Menggabungkan hasil evaluasi
hasil.evaluasi <- data.frame(
  Model = c(
    "AdaBoost 50 Learner",
    "AdaBoost 100 Learner",
    "AdaBoost 200 Learner"
  ),
  rbind(evaluasi50, evaluasi100, evaluasi200),
  row.names = NULL
)

# Membulatkan hasil menjadi 4 angka desimal
hasil.evaluasi[-1] <- lapply(
  hasil.evaluasi[-1],
  round,
  digits = 4
)

# Menampilkan tabel perbandingan
knitr::kable(
  hasil.evaluasi,
  caption = "Perbandingan Metrik Evaluasi Model AdaBoost",
  align = "c"
)
Perbandingan Metrik Evaluasi Model AdaBoost
Model Accuracy Precision Recall Specificity F1_Score
AdaBoost 50 Learner 0.9657 0.9706 0.9296 0.9850 0.9496
AdaBoost 100 Learner 0.9608 0.9565 0.9296 0.9774 0.9429
AdaBoost 200 Learner 0.9559 0.9559 0.9155 0.9774 0.9353

Berdasarkan hasil confusion matrix, model AdaBoost dengan 50 weak learner berhasil mengklasifikasikan 131 data benign dan 66 data malignant dengan benar. Sementara itu, model dengan 100 weak learner mengklasifikasikan 130 data benign dan 66 data malignant, sedangkan model dengan 200 weak learner mengklasifikasikan 130 data benign dan 65 data malignant dengan benar. Hasil evaluasi menunjukkan bahwa model dengan 50 weak learner memiliki kinerja terbaik, dengan nilai Accuracy sebesar 96,57%, Precision sebesar 97,06%, Recall sebesar 92,96%, Specificity sebesar 98,50%, dan F1-Score sebesar 94,96%. Adapun model dengan 100 weak learner memperoleh Accuracy sebesar 96,08% dan F1-Score sebesar 94,29%, sedangkan model dengan 200 weak learner memperoleh Accuracy sebesar 95,59% dan F1-Score sebesar 93,53%. Dengan demikian, penambahan jumlah weak learner tidak selalu meningkatkan kinerja klasifikasi, karena model dengan 50 weak learner menghasilkan performa terbaik dibandingkan kedua model lainnya.

BAB V KESIMPULAN DAN SARAN

5.1 Kesimpulan

Boosting merupakan metode ensemble learning yang menggabungkan beberapa weak learner secara bertahap untuk meningkatkan kemampuan prediksi model. Metode ini berupaya memperbaiki kesalahan prediksi pada tahap sebelumnya sehingga menghasilkan model dengan kinerja yang lebih baik. Salah satu algoritma Boosting yang digunakan adalah AdaBoost.

Implementasi metode Boosting menggunakan R dilakukan melalui beberapa tahapan, mulai dari menyiapkan dataset, membagi data menjadi training dan testing, membangun model, hingga melakukan prediksi. Pembentukan model dilakukan dengan menentukan algoritma dan jumlah weak learner yang digunakan sesuai dengan kebutuhan analisis. Selanjutnya, hasil prediksi pada data testing digunakan untuk menilai kemampuan model dalam melakukan klasifikasi.

Evaluasi performa model dilakukan menggunakan ukuran evaluasi yang sesuai dengan jenis permasalahan. Pada kasus klasifikasi, metrik yang digunakan meliputi Accuracy, Precision, Recall, Specificity, dan F1-Score. Sementara itu, pada kasus regresi, evaluasi dilakukan menggunakan MSE dan RMSE untuk mengetahui besarnya kesalahan prediksi model.

Berdasarkan hasil klasifikasi dataset BreastCancer, model AdaBoost dengan 50 weak learner menghasilkan kinerja terbaik dibandingkan model dengan 100 dan 200 weak learner. Model tersebut memperoleh nilai Accuracy sebesar 96,57%, Precision sebesar 97,06%, Recall sebesar 92,96%, Specificity sebesar 98,50%, dan F1-Score sebesar 94,96%. Hasil ini menunjukkan bahwa penambahan jumlah weak learner tidak selalu meningkatkan performa klasifikasi, sehingga pemilihan model perlu mempertimbangkan hasil evaluasi yang diperoleh.

DAFTAR PUSTAKA

Ahn, J. M., Kim, J., & Kim, K. (2023). Ensemble Machine Learning of Gradient Boosting (XGBoost, LightGBM, CatBoost) and Attention-Based CNN-LSTM for Harmful Algal Blooms Forecasting. Toxins, 15(10).

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 Thing, Vol. 1 No. 1.

Fransiska, H. (2026). Modul praktikum machine learning and modern prediction. Universitas Bengkulu.

Maulana, M. D., Hadiana, A. I., & Umbara, F. R. (2023). Algoritma XGBoost untuk Klasifikasi Kualitas Air Minum. JATI (Jurnal Mahasiswa Teknik Informatika), 7(5). https://mail.ejournal.itn.ac.id/jati/article/view/7308 https://mail.ejournal.itn.ac.id/jati/article/view/7308

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

Mienye, I. D., & Sun, Y. (2022). A Survey of Ensemble Learning: Concepts, Algorithms, Applications, and Prospects. In IEEE Access (Vol. 10)

Novianti, N., Zarlis, M., & Sihombing, P. (2022). Penerapan Algoritma Adaboost untuk Peningkatan Kinerja Klasifikasi Data Mining pada Imbalance Dataset Diabetes. Jurnal Media Informatika Budidarma, 6(2), 1200–1206. https://ejurnal.stmik-budidarma.ac.id/index.php/mib/article/view/4017