Lewati ke konten utama

Klasifikator AdaBoost di Python

Pahami pendekatan ensemble, cara kerja algoritme AdaBoost, dan pelajari pembangunan model AdaBoost di Python.
Diperbarui 28 Sep 2026  · 8 mnt Baca

Jelajahi bersama AI

ChatGPTClaudePerplexity

Dalam beberapa tahun terakhir, algoritme boosting sangat populer di kompetisi data science atau machine learning. Sebagian besar pemenang kompetisi tersebut menggunakan algoritme boosting untuk mencapai akurasi tinggi. Kompetisi data science menyediakan platform global untuk belajar, mengeksplorasi, dan memberikan solusi atas berbagai masalah bisnis dan pemerintahan. Algoritme boosting menggabungkan beberapa model dengan akurasi rendah (atau lemah) untuk membentuk model dengan akurasi tinggi (atau kuat). Algoritme ini dapat dimanfaatkan di berbagai domain seperti kredit, asuransi, pemasaran, dan penjualan. Algoritme boosting seperti AdaBoost, Gradient Boosting, dan XGBoost adalah algoritme machine learning yang banyak digunakan untuk memenangkan kompetisi data science. Dalam tutorial ini, Anda akan mempelajari algoritme ensemble boosting AdaBoost, dan topik-topik berikut akan dibahas:

Pendekatan Ensemble Machine Learning

Ensemble adalah model komposit, yang menggabungkan serangkaian pengklasifikasi berkinerja rendah dengan tujuan menciptakan pengklasifikasi yang lebih baik. Di sini, setiap pengklasifikasi melakukan voting dan label prediksi akhir dikembalikan berdasarkan voting mayoritas. Ensemble menawarkan akurasi lebih tinggi dibandingkan pengklasifikasi individual atau dasar. Metode ensemble dapat diparalelkan dengan mengalokasikan setiap base learner ke mesin yang berbeda-beda. Singkatnya, metode pembelajaran ensemble adalah meta-algoritme yang menggabungkan beberapa metode machine learning ke dalam satu model prediktif untuk meningkatkan kinerja. Metode ensemble dapat menurunkan varians menggunakan pendekatan bagging, menurunkan bias menggunakan pendekatan boosting, atau meningkatkan prediksi menggunakan pendekatan stacking.

Pendekatan Ensemble Machine Learning
  1. Bagging adalah singkatan dari bootstrap aggregation. Ini menggabungkan beberapa learner untuk mengurangi varians dari estimasi. Sebagai contoh, random forest melatih M Decision Tree; Anda dapat melatih M pohon yang berbeda pada subset data acak yang berbeda dan melakukan voting untuk prediksi akhir. Metode ensemble bagging antara lain Random Forest dan Extra Trees.

  2. Algoritme Boosting adalah sekumpulan pengklasifikasi dengan akurasi rendah untuk membentuk pengklasifikasi yang sangat akurat. Pengklasifikasi berakurasi rendah (atau lemah) menawarkan akurasi lebih baik daripada sekadar melempar koin. Pengklasifikasi berakurasi tinggi (atau kuat) menawarkan tingkat galat mendekati 0. Algoritme boosting dapat melacak model yang gagal melakukan prediksi akurat. Algoritme boosting kurang terpengaruh oleh masalah overfitting. Tiga algoritme berikut sangat populer dalam kompetisi data science.

    • AdaBoost (Adaptive Boosting)
    • Gradient Tree Boosting
    • XGBoost
  3. Stacking (atau stacked generalization) adalah teknik pembelajaran ensemble yang menggabungkan prediksi beberapa model klasifikasi dasar menjadi himpunan data baru. Data baru ini diperlakukan sebagai data masukan untuk pengklasifikasi lain yang digunakan untuk menyelesaikan masalah tersebut. Stacking sering disebut sebagai blending.

Pendekatan Ensemble Machine Learning

Berdasarkan pengaturan base learner, metode ensemble dapat dibagi menjadi dua kelompok: pada metode ensemble paralel, base learner dibuat secara paralel, misalnya Random Forest. Pada metode ensemble berurutan (sekuensial), base learner dibuat secara berurutan, misalnya AdaBoost.

Berdasarkan jenis base learner, metode ensemble dapat dibagi menjadi dua kelompok: metode ensemble homogen menggunakan jenis base learner yang sama pada setiap iterasi. Metode ensemble heterogen menggunakan jenis base learner yang berbeda pada setiap iterasi.

Klasifikator AdaBoost

AdaBoost atau Adaptive Boosting adalah salah satu pengklasifikasi ensemble boosting yang diusulkan oleh Yoav Freund dan Robert Schapire pada tahun 1996. Algoritme ini menggabungkan beberapa pengklasifikasi untuk meningkatkan akurasi. AdaBoost adalah metode ensemble iteratif. Klasifikator AdaBoost membangun pengklasifikasi kuat dengan menggabungkan beberapa pengklasifikasi yang berkinerja buruk sehingga Anda memperoleh pengklasifikasi kuat dengan akurasi tinggi. Konsep dasar di balik AdaBoost adalah menetapkan bobot pada pengklasifikasi dan data latih pada setiap iterasi sehingga memastikan prediksi yang akurat terhadap observasi yang tidak biasa. Algoritme machine learning apa pun dapat digunakan sebagai pengklasifikasi dasar jika menerima bobot pada himpunan pelatihan. AdaBoost harus memenuhi dua kondisi:

  1. Pengklasifikasi harus dilatih secara interaktif pada berbagai contoh pelatihan berbobot.
  2. Pada setiap iterasi, algoritme berupaya memberikan kecocokan yang sangat baik untuk contoh-contoh tersebut dengan meminimalkan galat pelatihan.

Bagaimana cara kerja algoritme AdaBoost?

Algoritme bekerja melalui langkah-langkah berikut:

  1. Awalnya, AdaBoost memilih subset pelatihan secara acak.
  2. Secara iteratif, ia melatih model machine learning AdaBoost dengan memilih himpunan pelatihan berdasarkan prediksi akurat dari pelatihan terakhir.
  3. Algoritme memberikan bobot lebih tinggi pada observasi yang salah diklasifikasikan sehingga pada iterasi berikutnya observasi tersebut memiliki probabilitas tinggi untuk diklasifikasikan dengan benar.
  4. Selain itu, bobot juga diberikan pada pengklasifikasi yang dilatih pada setiap iterasi sesuai dengan akurasinya. Pengklasifikasi yang lebih akurat akan memperoleh bobot lebih tinggi.
  5. Proses ini berulang hingga seluruh data pelatihan terpasang tanpa galat atau hingga mencapai jumlah estimator maksimum yang ditentukan.
  6. Untuk mengklasifikasikan, lakukan "voting" di seluruh algoritme pembelajaran yang telah Anda bangun.
Bagaimana cara kerja algoritme AdaBoost?

Membangun Model di Python

Mengimpor Library yang Diperlukan

Mari kita muat terlebih dahulu library yang diperlukan.

# Load libraries
from sklearn.ensemble import AdaBoostClassifier
from sklearn import datasets
# Import train_test_split function
from sklearn.model_selection import train_test_split
#Import scikit-learn metrics module for accuracy calculation
from sklearn import metrics

Memuat Dataset

Pada bagian pembangunan model, Anda dapat menggunakan dataset IRIS, yang merupakan masalah klasifikasi multi-kelas yang sangat terkenal. Dataset ini terdiri dari 4 fitur (panjang sepal, lebar sepal, panjang petal, lebar petal) dan sebuah target (jenis bunga). Data ini memiliki tiga jenis kelas bunga: Setosa, Versicolour, dan Virginica. Dataset tersedia di pustaka scikit-learn, atau Anda juga dapat mengunduhnya dari UCI Machine Learning Library.

# Load data
iris = datasets.load_iris()
X = iris.data
y = iris.target

Membagi dataset

Untuk memahami kinerja model, membagi dataset menjadi himpunan pelatihan dan himpunan uji adalah strategi yang baik.

Mari kita bagi dataset menggunakan fungsi train_test_split(). Anda perlu memberikan 3 parameter: features, target, dan ukuran test_set.

# Split dataset into training set and test set
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3) # 70% training and 30% test

Membangun Model AdaBoost

Mari buat Model AdaBoost menggunakan Scikit-learn. AdaBoost menggunakan Decision Tree Classifier sebagai pengklasifikasi default.

# Create adaboost classifer object
abc = AdaBoostClassifier(n_estimators=50,
                         learning_rate=1)
# Train Adaboost Classifer
model = abc.fit(X_train, y_train)

#Predict the response for test dataset
y_pred = model.predict(X_test)

"Parameter terpenting adalah base_estimator, n_estimators, dan learning_rate." (Adaboost Classifier, Chris Albon)

  • base_estimator: Merupakan weak learner yang digunakan untuk melatih model. Secara default menggunakan DecisionTreeClassifier sebagai weak learner untuk pelatihan. Anda juga dapat menentukan algoritme machine learning lain.
  • n_estimators: Jumlah weak learner yang dilatih secara iteratif.
  • learning_rate: Berkontribusi pada bobot weak learner. Nilai defaultnya adalah 1.

Evaluasi Model

Mari perkirakan seberapa akurat pengklasifikasi atau model dapat memprediksi jenis kultivar.

Akurasi dapat dihitung dengan membandingkan nilai himpunan uji aktual dan nilai yang diprediksi.

# Model Accuracy, how often is the classifier correct?
print("Accuracy:",metrics.accuracy_score(y_test, y_pred))
Accuracy: 0.8888888888888888

Anda mendapatkan akurasi 88,88%, yang dianggap baik.

Untuk evaluasi lebih lanjut, Anda juga dapat membuat model menggunakan Base Estimator yang berbeda.

Menggunakan Base Learner yang Berbeda

Saya menggunakan SVC sebagai base estimator. Anda dapat menggunakan learner ML apa pun sebagai base estimator jika menerima sample weight seperti Decision Tree, Support Vector Classifier.

# Load libraries
from sklearn.ensemble import AdaBoostClassifier

# Import Support Vector Classifier
from sklearn.svm import SVC
#Import scikit-learn metrics module for accuracy calculation
from sklearn import metrics
svc=SVC(probability=True, kernel='linear')

# Create adaboost classifer object
abc =AdaBoostClassifier(n_estimators=50, base_estimator=svc,learning_rate=1)

# Train Adaboost Classifer
model = abc.fit(X_train, y_train)

#Predict the response for test dataset
y_pred = model.predict(X_test)


# Model Accuracy, how often is the classifier correct?
print("Accuracy:",metrics.accuracy_score(y_test, y_pred))
Accuracy: 0.9555555555555556

Anda mendapatkan tingkat klasifikasi 95,55%, yang dianggap baik.

Pada kasus ini, SVC sebagai Base Estimator memberikan akurasi yang lebih baik dibandingkan Decision Tree sebagai Base Estimator.

Kelebihan

AdaBoost mudah diimplementasikan. Algoritme ini secara iteratif mengoreksi kesalahan pengklasifikasi lemah dan meningkatkan akurasi dengan menggabungkan weak learner. Anda dapat menggunakan banyak pengklasifikasi dasar dengan AdaBoost. AdaBoost tidak rentan terhadap overfitting. Hal ini dapat dilihat dari hasil eksperimen, meskipun belum ada alasan pasti yang tersedia.

Kekurangan

AdaBoost sensitif terhadap data berisik. Algoritme ini sangat terpengaruh oleh outlier karena berupaya menyesuaikan setiap titik secara sempurna. AdaBoost lebih lambat dibandingkan XGBoost.

Kesimpulan

Selamat, Anda telah mencapai akhir tutorial ini!

Dalam tutorial ini, Anda telah mempelajari Pendekatan Ensemble Machine Learning, algoritme AdaBoost, cara kerjanya, pembangunan model dan evaluasinya menggunakan paket Python Scikit-learn. Selain itu, dibahas pula kelebihan dan kekurangannya.

Saya menantikan masukan atau pertanyaan dari Anda. Anda dapat mengajukan pertanyaan dengan meninggalkan komentar, dan saya akan berusaha sebaik mungkin untuk menjawabnya.

Jika Anda ingin mempelajari lebih lanjut tentang machine learning di Python, lihat kursus Extreme Gradient Boosting with XGBoost dan Python Machine Learning: Scikit-Learn Tutorial dari DataCamp.

Topik
Python

Kursus Python

{count, plural, one {Kursus} other {Kursus}}

Pengantar Python

{hours} jam
7.1M
Kuasai dasar-dasar analisis data dengan Python dalam 4 jam. Kursus online ini memperkenalkan antarmuka Python dan pustaka populer.
Lihat DetailRight Arrow
Mulai Kursus
Lihat SelengkapnyaRight Arrow
Terkait

{count, plural, one {blog} other {blogs}}

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

{count, plural, one {blog} other {blogs}}

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

{count, plural, one {blog} other {blogs}}

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

14 mnt

{count, plural, one {blog} other {blogs}}

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

Lihat SelengkapnyaLihat Selengkapnya