Perkembangan machine learning memungkinkan pengolahan data untuk menghasilkan prediksi melalui berbagai metode, salah satunya ensemble learning. Metode ini menggabungkan beberapa model dasar untuk memperoleh hasil prediksi yang lebih baik. Salah satu metode ensemble learning adalah Boosting, yang membangun model secara berurutan untuk memperbaiki kesalahan prediksi model sebelumnya (Fransiska, 2026).
Boosting dapat diterapkan pada permasalahan klasifikasi maupun regresi dengan mekanisme yang berbeda. AdaBoost digunakan untuk klasifikasi dengan memberikan perhatian lebih besar pada observasi yang salah diklasifikasikan. Sementara itu, Gradient Boosting digunakan untuk regresi dengan membangun model baru yang mempelajari kesalahan atau residual dari model sebelumnya (Fransiska, 2026).
Penelitian Novianti dkk. (2022) membahas penerapan algoritma AdaBoost untuk meningkatkan kinerja klasifikasi pada data diabetes yang tidak seimbang. Hal ini menunjukkan bahwa Boosting dapat dimanfaatkan untuk membantu meningkatkan kemampuan prediksi dalam permasalahan klasifikasi. Oleh karena itu, praktikum ini dilakukan untuk memahami penerapan Boosting menggunakan R, mulai dari pembentukan model, prediksi, hingga evaluasi kinerja model menggunakan ukuran evaluasi yang sesuai.
Rumusan masalah yang dapat disimpulkan adalah sebagai berikut:
Bagaimana Boosting sebagai metode ensemble learning?
Bagaimana mengimplimentasikan Boosting untuk kasus klasifikasi dan regresi menggunakan R?
Bagaiamana mengevaluasi performa model menggunakan ukuran evaluasi yang sesuai?
Tujuan dari praktikum ini adalah sebagai berikut:
Mahasiswa dapat memahami Boosting sebagai metode ensemble learning.
Mahasiswa dapat mengimplimentasikan Boosting untuk kasus klasifikasi dan regresi menggunakan R.
Mahasiswa dapat mengevaluasi performa model menggunakan ukuran evaluasi yang sesuai.
Batasan masalah pada praktikum ini adalah Lakukan regresi menggunakan Gradient Boosting pada data Friedman.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 𝑅2, kemudian interpretasikan hasilnya.
Boosting merupakan salah satu metode ensemble learning dalam machine learning yang menggabungkan beberapa model pembelajaran dasar (weak learner) untuk membentuk model yang lebih kuat. Prinsip utama metode ini adalah membangun model secara berurutan, dengan setiap model baru berusaha memperbaiki kesalahan prediksi yang masih dihasilkan oleh model sebelumnya. Rosyidi dan Rochmawati (2024) menerapkan AdaBoost sebagai teknik ensemble learning untuk meningkatkan kemampuan klasifikasi pada algoritma Decision Tree dan Support Vector Machine dalam mengklasifikasikan SMS berbahasa Indonesia.
Model sederhana yang digunakan dalam boosting disebut weak learner, yaitu model yang memiliki kemampuan prediksi terbatas apabila digunakan secara mandiri. Pada metode boosting berbasis pohon keputusan, model dasar dapat berupa pohon dengan kedalaman rendah agar setiap model tetap sederhana. Penggabungan beberapa weak learner diharapkan menghasilkan model akhir yang lebih baik, yang disebut strong learner (Fransiska, 2026).
Secara umum, model boosting dapat digambarkan melalui persamaan berikut:
\[ F_M(x)=\sum_{m=1}^{M}\alpha_m h_m(x) \]
Keterangan:
Persamaan tersebut menunjukkan bahwa prediksi akhir diperoleh melalui penggabungan sejumlah model dengan kontribusi tertentu. Bentuk penggabungan tersebut bergantung pada algoritma yang digunakan, seperti AdaBoost dan Gradient Boosting. Berbeda dengan Bagging yang membentuk model secara relatif independen, Boosting membangun model secara berurutan sehingga pembentukan model berikutnya dipengaruhi oleh hasil pembelajaran sebelumnya (Fransiska, 2026).
Pada penerapannya, Boosting dapat digunakan untuk menyelesaikan permasalahan klasifikasi maupun regresi. Klasifikasi bertujuan memprediksi kelas atau kategori suatu observasi, sedangkan regresi bertujuan memprediksi nilai numerik. Salah satu algoritma Boosting untuk klasifikasi adalah Adaptive Boosting (AdaBoost), sedangkan Gradient Boosting dapat digunakan untuk memprediksi nilai numerik maupun menyelesaikan permasalahan klasifikasi dengan fungsi kerugian yang sesuai.
AdaBoost bekerja dengan memberikan bobot pada setiap observasi dalam data latih. Pada awal proses, semua observasi diberikan bobot yang sama, kemudian bobot tersebut diperbarui berdasarkan hasil klasifikasi model. Observasi yang salah diklasifikasikan memperoleh bobot lebih besar sehingga model berikutnya memberikan perhatian lebih terhadap observasi tersebut. Penelitian Novianti dkk. (2022) membahas penggunaan AdaBoost untuk meningkatkan kinerja klasifikasi pada data diabetes yang tidak seimbang, sedangkan Rosyidi dan Rochmawati (2024) mengkaji penerapannya pada klasifikasi SMS berbahasa Indonesia.
Bobot awal setiap observasi dalam AdaBoost dirumuskan sebagai berikut:
\[ w_i^{(1)}=\frac{1}{n} \]
Keterangan:
Setelah model terbentuk, tingkat kesalahan klasifikasi berbobot dihitung menggunakan persamaan berikut:
\[ e_m= \frac{\sum_{i=1}^{n}w_i^{(m)} I\left(y_i\neq h_m(x_i)\right)} {\sum_{i=1}^{n}w_i^{(m)}} \]
Keterangan:
Bobot kontribusi setiap model kemudian dihitung menggunakan persamaan berikut:
\[ \alpha_m=\ln\left(\frac{1-e_m}{e_m}\right) \]
Nilai \(\alpha_m\) menunjukkan besarnya kontribusi model terhadap prediksi akhir. Pada bentuk AdaBoost ini, model dengan tingkat kesalahan lebih rendah akan memperoleh bobot kontribusi lebih besar, selama tingkat kesalahannya berada di antara 0 dan 0,5. Selanjutnya, hasil prediksi seluruh model digabungkan menggunakan pemungutan suara berbobot (weighted voting) untuk menentukan kelas akhir (Fransiska, 2026).
Selain AdaBoost, terdapat Gradient Boosting yang membangun model secara bertahap dengan mempelajari kesalahan prediksi model sebelumnya. Pada permasalahan regresi dengan fungsi kerugian kuadrat, kesalahan prediksi dapat dinyatakan sebagai residual, yaitu selisih antara nilai aktual dan nilai prediksi. Firmansyah dan Abidin (2022) membahas penerapan Gradient Boosted Decision Trees dalam klasifikasi status desa, yang menunjukkan pemanfaatan pendekatan boosting berbasis pohon untuk permasalahan klasifikasi.
Residual dihitung menggunakan persamaan berikut:
\[ e_i=y_i-\hat{y}_i \]
Keterangan:
Residual digunakan sebagai informasi untuk memperbaiki prediksi pada iterasi selanjutnya. Pembaruan model Gradient Boosting dapat dituliskan sebagai berikut:
\[ F_m(x)=F_{m-1}(x)+\nu h_m(x) \]
Keterangan:
Nilai learning rate yang lebih kecil membuat perubahan model berlangsung lebih bertahap dan biasanya membutuhkan lebih banyak iterasi. Pada fungsi kerugian selain kuadrat, Gradient Boosting menggunakan pendekatan gradien negatif dari fungsi kerugian, sehingga tidak selalu mempelajari residual secara langsung (Fransiska, 2026).
Kinerja model Boosting dipengaruhi oleh beberapa parameter, seperti jumlah iterasi, learning rate, dan kedalaman pohon. Jumlah iterasi menentukan banyaknya model dasar yang dibangun, sedangkan kedalaman pohon mengatur kompleksitas setiap model dasar. Pengaturan parameter diperlukan karena model yang terlalu sederhana dapat mengalami underfitting, sementara model yang terlalu kompleks berpotensi mengalami overfitting. Oleh sebab itu, pemilihan parameter dapat dilakukan melalui pengujian beberapa konfigurasi model dan penggunaan cross-validation untuk membantu menentukan konfigurasi yang sesuai (Fransiska, 2026).
Evaluasi model dilakukan untuk mengetahui kemampuan prediksi pada data pengujian (testing data). Pada klasifikasi menggunakan AdaBoost, evaluasi dapat dilakukan menggunakan accuracy, precision, recall, specificity, dan F1-score. Sementara itu, pada regresi menggunakan Gradient Boosting, evaluasi dapat menggunakan Mean Squared Error (MSE), Root Mean Squared Error (RMSE), Mean Absolute Error (MAE), dan koefisien determinasi (\(R^2\)).
MSE dihitung dengan menguadratkan selisih nilai aktual dan prediksi, sedangkan RMSE merupakan akar kuadrat dari MSE. Adapun MAE menghitung rata-rata nilai absolut kesalahan prediksi, sementara \(R^2\) menunjukkan proporsi variasi nilai aktual yang dapat dijelaskan oleh model. Persamaan ukuran evaluasi regresi tersebut adalah sebagai berikut:
\[ MSE=\frac{1}{n}\sum_{i=1}^{n}(y_i-\hat{y}_i)^2 \]
\[ RMSE=\sqrt{\frac{1}{n}\sum_{i=1}^{n}(y_i-\hat{y}_i)^2} \]
\[ MAE=\frac{1}{n}\sum_{i=1}^{n}|y_i-\hat{y}_i| \]
\[ R^2=1- \frac{\sum_{i=1}^{n}(y_i-\hat{y}_i)^2} {\sum_{i=1}^{n}(y_i-\bar{y})^2} \]
Keterangan:
Nilai MSE, RMSE, dan MAE yang lebih kecil menunjukkan kesalahan prediksi yang lebih rendah. Sementara itu, nilai \(R^2\) yang mendekati 1 umumnya menunjukkan kemampuan model yang lebih baik dalam menjelaskan variasi data. Hasil evaluasi tersebut dapat digunakan untuk membandingkan konfigurasi model dan menentukan model yang memberikan kinerja prediksi paling sesuai dengan karakteristik data (Fransiska, 2026).
Jenis data yang digunakan dalam penelitian kali ini merupakan data kuantitatif. Data kuantitatif adalah data yang berbentuk angka dan dapat diolah menggunakan metode statistik. Penelitian ini menggunakan data Friedman yang digunakan untuk melakukan analisis regresi dengan metode Gradient Boosting.
Sumber data penelitian ini adalah data sekunder. Data sekunder adalah data yang diperoleh melalui sumber yang telah tersedia sebelumnya, seperti buku, jurnal, dokumentasi, atau kumpulan data yang telah dipublikasikan. Data Friedman merupakan data yang digunakan dalam pemodelan regresi untuk menguji kinerja metode Gradient Boosting dengan variasi nilai learning rate (shrinkage) sebesar 0,01, 0,05, dan 0,10.
Variabel penelitian adalah sesuatu yang menjadi fokus perhatian yang memberikan pengaruh dan mempunyai nilai. Variabel penelitian yang digunakan dalam penelitian ini terdiri atas variabel respons (Y) dan variabel prediktor (X). Variabel respons merupakan variabel yang diprediksi, sedangkan variabel prediktor merupakan variabel yang digunakan untuk memprediksi nilai respons. Pada penelitian ini, variabel respons (Y) berupa nilai target pada data Friedman, sedangkan variabel prediktor (X) berupa variabel-variabel masukan yang tersedia pada data tersebut
Tahapan analisis data yang dilakukan dalam penelitian ini adalah sebagai berikut.
Menyiapkan Data Friedman
Menyiapkan data Friedman yang akan digunakan dalam analisis regresi menggunakan metode Gradient Boosting.
Menentukan Variabel Respons dan Variabel Prediktor
Menentukan variabel respons (\(Y\)) sebagai variabel yang akan diprediksi dan variabel prediktor (\(X\)) sebagai variabel yang digunakan untuk memprediksi nilai respons.
Membagi Data Training dan Testing
Membagi data menjadi data pelatihan (training data) dan data pengujian (testing data). Data pelatihan digunakan untuk membangun model, sedangkan data pengujian digunakan untuk mengevaluasi hasil prediksi.
Membangun Model Gradient Boosting
Membangun model regresi Gradient Boosting menggunakan fungsi
gbm() pada bahasa pemrograman R dengan distribusi
Gaussian.
Menentukan Nilai Learning Rate (Shrinkage)
Menggunakan tiga variasi nilai learning rate (shrinkage), yaitu 0,01, 0,05, dan 0,10 untuk membandingkan kinerja model.
Melakukan Cross-Validation
Melakukan cross-validation pada setiap model untuk mengevaluasi kinerja model selama pelatihan dan menentukan jumlah iterasi yang optimal.
Menentukan Jumlah Iterasi Optimal
Menentukan jumlah iterasi optimal berdasarkan hasil
cross-validation menggunakan fungsi gbm.perf()
dengan metode cv.
Melakukan Prediksi Data Testing
Menggunakan setiap model dengan jumlah iterasi optimal untuk memprediksi nilai variabel respons pada data pengujian.
Menghitung Nilai Evaluasi Model
Menghitung nilai Mean Squared Error (MSE), Root Mean Squared Error (RMSE), Mean Absolute Error (MAE), dan koefisien determinasi (\(R^2\)) berdasarkan hasil prediksi data pengujian.
Membandingkan Kinerja Ketiga Model
Membandingkan nilai MSE, RMSE, MAE, dan \(R^2\) dari ketiga model berdasarkan variasi nilai shrinkage yang digunakan.
Menginterpretasikan Hasil dan Menentukan Model Terbaik
Menginterpretasikan hasil evaluasi dan menentukan model terbaik berdasarkan nilai MSE, RMSE, dan MAE yang lebih kecil serta nilai \(R^2\) yang lebih besar.
Diagram alir dibawah ini merupakan langkah-langkah yang diambil untuk mendukung proses penelitian batasan masalah:
library(gbm)
library(knitr)
set.seed(123)
# Membentuk data simulasi Friedman 1
n <- 1000
data_friedman <- as.data.frame(
matrix(runif(n * 10), nrow = n, ncol = 10)
)
names(data_friedman) <- paste0("X", 1:10)
data_friedman$Y <- 10 * sin(pi * data_friedman$X1 *
data_friedman$X2) +
20 * (data_friedman$X3 - 0.5)^2 +
10 * data_friedman$X4 +
5 * data_friedman$X5 +
rnorm(n, 0, 1)
# Melihat struktur dan ukuran data
dim(data_friedman)## [1] 1000 11
## 'data.frame': 1000 obs. of 11 variables:
## $ X1 : num 0.288 0.788 0.409 0.883 0.94 ...
## $ X2 : num 0.274 0.594 0.16 0.853 0.848 ...
## $ X3 : num 0.16 0.145 0.149 0.514 0.493 ...
## $ X4 : num 0.206 0.943 0.379 0.626 0.184 ...
## $ X5 : num 0.304 0.833 0.594 0.807 0.294 ...
## $ X6 : num 0.249 0.989 0.717 0.652 0.241 ...
## $ X7 : num 0.4403 0.3974 0.3715 0.5288 0.0738 ...
## $ X8 : num 0.9303 0.591 0.0797 0.845 0.0298 ...
## $ X9 : num 0.578 0.489 0.742 0.226 0.749 ...
## $ X10: num 0.798 0.879 0.242 0.56 0.905 ...
## $ Y : num 7.85 27.19 10.12 18.77 10.17 ...
## X1 X2 X3 X4 X5 X6 X7
## 1 0.2875775 0.2736227 0.1596740 0.2058269 0.3044642 0.24862988 0.44026102
## 2 0.7883051 0.5938669 0.1445159 0.9425390 0.8328188 0.98946318 0.39739215
## 3 0.4089769 0.1601848 0.1491804 0.3793238 0.5936475 0.71712190 0.37154765
## 4 0.8830174 0.8534302 0.5144343 0.6262401 0.8071966 0.65172829 0.52880857
## 5 0.9404673 0.8477392 0.4928273 0.1835024 0.2940508 0.24055621 0.07378541
## 6 0.0455565 0.4778868 0.6163428 0.6592076 0.1410852 0.08679275 0.71684977
## X8 X9 X10 Y
## 1 0.93034086 0.5779101 0.797964158 7.849800
## 2 0.59104489 0.4888454 0.879135979 27.194434
## 3 0.07974532 0.7421904 0.242462305 10.119632
## 4 0.84501857 0.2256090 0.559528822 18.774356
## 5 0.02978437 0.7488911 0.904773553 10.169495
## 6 0.81465972 0.8248685 0.008198569 8.586764
Berdasarkan hasil pemeriksaan data, dataset Friedman terdiri atas 1000 observasi dan 11 variabel, yaitu sepuluh variabel prediktor dan satu variabel respons. Data ini digunakan untuk menganalisis kemampuan metode Gradient Boosting dalam memodelkan hubungan antara variabel prediktor dan respons yang bersifat nonlinear.
# Menentukan variabel respons dan prediktor
Y <- data_friedman$Y
X <- data_friedman[, paste0("X", 1:10)]
# Menampilkan nama variabel
names(X)## [1] "X1" "X2" "X3" "X4" "X5" "X6" "X7" "X8" "X9" "X10"
Variabel respons (\(Y\)) merupakan variabel yang akan diprediksi, sedangkan variabel prediktor (\(X_1\) sampai \(X_{10}\)) merupakan variabel yang digunakan untuk membentuk prediksi. Seluruh variabel prediktor dimasukkan ke dalam model agar kinerja regresi Gradient Boosting dapat dievaluasi berdasarkan data yang tersedia.
set.seed(123)
indeks_training <- sample(
seq_len(nrow(data_friedman)),
size = floor(0.8 * nrow(data_friedman))
)
training <- data_friedman[indeks_training, ]
testing <- data_friedman[-indeks_training, ]
data_pembagian <- data.frame(
Jenis_Data = c("Training", "Testing"),
Jumlah_Observasi = c(nrow(training), nrow(testing)),
Persentase = c(
nrow(training) / nrow(data_friedman) * 100,
nrow(testing) / nrow(data_friedman) * 100
)
)
kable(data_pembagian, digits = 2)| Jenis_Data | Jumlah_Observasi | Persentase |
|---|---|---|
| Training | 800 | 80 |
| Testing | 200 | 20 |
Berdasarkan hasil pembagian data, sebanyak 800 observasi atau 80% digunakan sebagai data training, sedangkan 200 observasi atau 20% digunakan sebagai data testing. Data training digunakan untuk membangun model, sementara data testing digunakan untuk mengevaluasi kemampuan model dalam memprediksi observasi yang tidak digunakan selama pelatihan.
nilai_shrinkage <- c(0.01, 0.05, 0.10)
daftar_model <- vector("list", length(nilai_shrinkage))
iterasi_optimal <- numeric(length(nilai_shrinkage))
for (i in seq_along(nilai_shrinkage)) {
daftar_model[[i]] <- gbm(
Y ~ .,
data = training,
distribution = "gaussian",
n.trees = 5000,
interaction.depth = 3,
shrinkage = nilai_shrinkage[i],
n.minobsinnode = 10,
bag.fraction = 0.5,
cv.folds = 5,
verbose = FALSE
)
iterasi_optimal[i] <- gbm.perf(
daftar_model[[i]],
method = "cv",
plot.it = FALSE
)
}
cat("Ketiga model berhasil dibentuk.")## Ketiga model berhasil dibentuk.
Pemodelan dilakukan menggunakan fungsi gbm() dengan
distribusi Gaussian karena variabel respons berupa data numerik. Tiga
model dibentuk menggunakan nilai shrinkage sebesar 0,01, 0,05,
dan 0,10. Parameter interaction.depth = 3 menetapkan
kedalaman pohon, sedangkan cv.folds = 5 menetapkan
cross-validation sebanyak lima lipatan untuk membantu
menentukan jumlah iterasi optimal.
hasil_iterasi <- data.frame(
Shrinkage = nilai_shrinkage,
Iterasi_Optimal = iterasi_optimal
)
kable(
hasil_iterasi,
digits = 0,
caption = "Jumlah Iterasi Optimal Setiap Model"
)| Shrinkage | Iterasi_Optimal |
|---|---|
| 0 | 4981 |
| 0 | 1281 |
| 0 | 923 |
Berdasarkan hasil cross-validation, model dengan shrinkage 0,01 memiliki jumlah iterasi optimal sebanyak 4981, model dengan shrinkage 0,05 sebanyak 1281, dan model dengan shrinkage 0,10 sebanyak 923. Perbedaan tersebut menunjukkan bahwa setiap nilai shrinkage dapat memerlukan jumlah iterasi yang berbeda untuk memperoleh kinerja terbaik berdasarkan cross-validation.
daftar_prediksi <- vector("list", length(nilai_shrinkage))
for (i in seq_along(nilai_shrinkage)) {
daftar_prediksi[[i]] <- predict(
daftar_model[[i]],
newdata = testing,
n.trees = iterasi_optimal[i],
type = "response"
)
}
hasil_prediksi <- data.frame(
Aktual = testing$Y,
Prediksi_001 = daftar_prediksi[[1]],
Prediksi_005 = daftar_prediksi[[2]],
Prediksi_010 = daftar_prediksi[[3]]
)
head(hasil_prediksi)## Aktual Prediksi_001 Prediksi_005 Prediksi_010
## 1 7.84980 8.794117 8.431967 8.684015
## 2 10.11963 12.048398 12.156653 12.799423
## 3 22.01049 20.972243 20.828307 21.232667
## 4 17.11289 17.020632 17.256325 17.553248
## 5 18.57653 17.097430 17.637167 16.839281
## 6 20.43467 20.717026 20.242558 20.314542
Hasil prediksi menunjukkan perbandingan antara nilai aktual dan nilai prediksi dari ketiga model. Nilai prediksi yang semakin mendekati nilai aktual menunjukkan bahwa model menghasilkan estimasi yang lebih baik. Namun, penentuan model terbaik tidak hanya berdasarkan beberapa observasi, melainkan berdasarkan ukuran evaluasi pada seluruh data testing.
hitung_metrik <- function(aktual, prediksi) {
mse <- mean((aktual - prediksi)^2)
rmse <- sqrt(mse)
mae <- mean(abs(aktual - prediksi))
r2 <- 1 - sum((aktual - prediksi)^2) /
sum((aktual - mean(aktual))^2)
c(
MSE = mse,
RMSE = rmse,
MAE = mae,
R2 = r2
)
}
hasil_evaluasi <- t(
sapply(
daftar_prediksi,
function(prediksi) {
hitung_metrik(testing$Y, prediksi)
}
)
)
hasil_evaluasi <- data.frame(
Shrinkage = nilai_shrinkage,
Iterasi_Optimal = iterasi_optimal,
hasil_evaluasi
)
kable(
hasil_evaluasi,
digits = 4,
caption = "Perbandingan Kinerja Model Gradient Boosting"
)| Shrinkage | Iterasi_Optimal | MSE | RMSE | MAE | R2 |
|---|---|---|---|---|---|
| 0.01 | 4981 | 1.6279 | 1.2759 | 1.0150 | 0.9333 |
| 0.05 | 1281 | 1.6089 | 1.2684 | 1.0039 | 0.9340 |
| 0.10 | 923 | 1.7683 | 1.3298 | 1.0404 | 0.9275 |
Berdasarkan tabel evaluasi, MSE mengukur rata-rata kuadrat kesalahan prediksi, RMSE menunjukkan besarnya kesalahan prediksi dalam satuan variabel respons, dan MAE mengukur rata-rata kesalahan absolut. Sementara itu, \(R^2\) menunjukkan kemampuan model dalam menjelaskan variasi nilai respons dibandingkan dengan prediksi menggunakan rata-rata nilai aktual.
Model dengan MSE, RMSE, dan MAE yang lebih kecil memiliki kesalahan prediksi yang lebih rendah. Sebaliknya, nilai \(R^2\) yang lebih besar menunjukkan kemampuan penjelasan yang lebih baik. Nilai \(R^2\) dapat bernilai negatif jika model menghasilkan prediksi yang lebih buruk daripada penggunaan rata-rata respons sebagai prediksi.
indeks_terbaik <- which.min(hasil_evaluasi$RMSE)
model_terbaik <- hasil_evaluasi[indeks_terbaik, ]
kable(
model_terbaik,
digits = 4,
caption = "Model Terbaik Berdasarkan RMSE Terkecil"
)| Shrinkage | Iterasi_Optimal | MSE | RMSE | MAE | R2 | |
|---|---|---|---|---|---|---|
| 2 | 0.05 | 1281 | 1.6089 | 1.2684 | 1.0039 | 0.934 |
Berdasarkan hasil evaluasi, model terbaik berdasarkan kriteria RMSE terkecil adalah model dengan shrinkage sebesar 0.05, dengan jumlah iterasi optimal sebanyak 1281. Model tersebut menghasilkan MSE sebesar 1.6089, RMSE sebesar 1.2684, MAE sebesar 1.0039, dan \(R^2\) sebesar 0.934.
Dengan demikian, model tersebut memiliki kesalahan prediksi terkecil berdasarkan RMSE pada data pengujian. Meskipun demikian, nilai MSE, MAE, dan \(R^2\) tetap dipertimbangkan untuk memberikan penilaian yang lebih menyeluruh terhadap kinerja model.
Boosting merupakan salah satu metode ensemble learning yang menggabungkan beberapa model sederhana (weak learner) secara bertahap untuk membentuk model yang lebih kuat. Proses ini dilakukan dengan memperbaiki kesalahan prediksi dari model sebelumnya sehingga kemampuan prediksi model dapat meningkat. Metode Boosting dapat diterapkan pada permasalahan klasifikasi maupun regresi sesuai dengan karakteristik data dan tujuan analisis.
Implementasi Boosting menggunakan R dapat dilakukan dengan metode AdaBoost untuk klasifikasi dan Gradient Boosting untuk regresi. AdaBoost membentuk model secara bertahap dengan memberikan perhatian lebih pada observasi yang salah diklasifikasikan, sedangkan Gradient Boosting memperbaiki kesalahan prediksi secara berurutan. Dalam analisis regresi menggunakan metode Gradient Boosting pada data Friedman, dilakukan perbandingan tiga nilai learning rate (shrinkage), yaitu 0,01, 0,05, dan 0,10. Jumlah iterasi optimal untuk setiap model ditentukan menggunakan cross-validation untuk memperoleh model dengan kinerja prediksi terbaik.
Evaluasi performa model dilakukan menggunakan ukuran evaluasi yang sesuai dengan jenis permasalahan. Pada klasifikasi, ukuran evaluasi yang digunakan meliputi accuracy, precision, recall, dan F1-score. Sementara itu, pada regresi digunakan MSE, RMSE, MAE, dan \(R^2\). Model klasifikasi dinilai berdasarkan kemampuannya mengklasifikasikan data dengan tepat, sedangkan model regresi dinilai berdasarkan tingkat kesalahan prediksi dan kemampuannya menjelaskan variasi variabel respons. Pada regresi, nilai MSE, RMSE, dan MAE yang lebih kecil serta nilai \(R^2\) yang lebih besar menunjukkan kinerja model yang lebih baik.
Berdasarkan batasan masalah pada Bab IV, analisis Gradient Boosting pada data Friedman berfokus pada perbandingan nilai learning rate dan penentuan jumlah iterasi optimal untuk memperoleh model regresi terbaik. Perbandingan kinerja dilakukan berdasarkan nilai MSE, RMSE, MAE, dan \(R^2\). Hasil evaluasi tersebut digunakan untuk menentukan kombinasi parameter yang memberikan hasil prediksi terbaik. Dengan demikian, pemilihan nilai learning rate dan jumlah iterasi yang tepat merupakan bagian penting dalam membangun model Gradient Boosting dengan kinerja prediksi yang optimal.
Program R sangatlah bermanfaat bagi semua orang khususnya pada mahasiswa statistika, hal ini sangat memudahkan dalam mengolah suatu data di komputer. Tetapi pengguna harus lebih hati-hati dalam memasukan sintaks dan data karena apabila terjadi kesalahan dalam memasukan maupun mengolah data tersebut hasilnya akan sangat berpengaruh.
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.
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.
Rosyidi, M. I. U., & Rochmawati, N. (2024). Implementasi ensemble learning AdaBoost pada algoritma klasifikasi Decision Tree dan SVM untuk klasifikasi SMS berbahasa Indonesia. JIEET (Journal of Information Engineering and Educational Technology), 8(1), 7–13.