KONSEP
Boosting merupakan model yang baik untuk meningkatkan kinerja decision tree pada masalah
klasifikasi biner. Kunci dari metode boosting adalah belajar dari kesalahan sebelumnya,
misalkan kesalahan klasifikasi titik data. Salah satu metode boosting adalah Adaptive Boosting
(AdaBoost). Model AdaBoost ini belajar dari kesalahan dengan meningkatkan bobot titik data
yang salah diklasifikasikan. Sampel yang diprediksi secara tidak tepat akan diberikan bobot yang
lebih besar kepada mereka setelah setiap putaran prediksi. Dengan cara ini, algoritma akan
belajar dari kesalahan sebelumnya. Kemudian prediksi final adalah jumlah suara mayoritas
tertimbang dari semua pohon keputusan yang telah terbentuk.
Tahapan Adaboost :
1. Inisiasi bobot titik data
2. Klasifikasi menjadi pohon keputusan
3. Cari gini index terkecil
4. Tentukan Amount of Say dari total error dari total incorrect dikalikan bobot titik data
5. Hitung new sample weight
6. Masukkan new sample weight ke dalam kolom baru
7. Jumlahkan new weight untuk membagi tiap tiap new weight dan mendapatkan norm weight
8. Lakukan Langkah pada nomor 4
KELEBIHAN
KELEMAHAN
1. Teknik Boosting meningkat secara progresif, pastikan bahwa Anda memiliki data yang
balance.
2. Ada Boost juga sangat sensitif terhadap noise data dan outliers jadi jika Anda berencana
untuk menggunakan AdaBoost maka sangat disarankan untuk menghilangkannya (outlier).
3. Ada Boost juga terbukti lebih lambat dari XG Boost.
library(adabag)
library(caret)
library(car)
##Contoh Code Di R
#menggunakan data Iris
data1<- iris
head(data1)
#membuat partisi secara random dengan ketentuan data training 90% dan data
test 10%
parts = createDataPartition(data1$Species, p = 0.9, list = F)
train = data1[parts, ]
test = data1[-parts, ]
## [[1]]
## n= 135
##
## node), split, n, loss, yval, (yprob)
## * denotes terminal node
##
## 1) root 135 84 setosa (0.37777778 0.28148148 0.34074074)
## 2) Petal.Length< 2.35 51 0 setosa (1.00000000 0.00000000 0.00000000) *
## 3) Petal.Length>=2.35 84 38 virginica (0.00000000 0.45238095 0.54761905)
model_adaboost$weights
## [1] 1.534026 1.531765
##Akurasi
#menggunakan model untuk memprediksi data test
pred_test = predict(model_adaboost, test)
pred_test$confusion
## Observed Class
## Predicted Class setosa versicolor virginica
## setosa 5 0 0
## versicolor 0 5 0
## virginica 0 0 5
pred_test$error
## [1] 0
#menggunakan Cross-Validation
cvmodel <- boosting.cv(Species~., data=data1, boos=TRUE, mfinal=2, v=10)
print(cvmodel[-1])
## $confusion
## Observed Class
## Predicted Class setosa versicolor virginica
## setosa 50 0 0
## versicolor 0 46 6
## virginica 0 4 44
##
## $error
## [1] 0.06666667
Sumber :
https://www.datatechnotes.com/2018/03/classification-with-adaboost-model-in-r.html