Implementasi Boosting di Python
Salah satu cara terbaik untuk memahami boosting adalah dengan mencobanya secara praktik. Untuk itu, kita akan menggunakan dataset Kaggle Almond Types Classification, yang menampilkan tiga jenis almond: MAMRA, SANORA, dan REGULAR, beserta atribut fisik uniknya seperti area, perimeter, dan kebundaran.
Fitur dari setiap sampel almond diekstraksi melalui teknik pemrosesan citra canggih. Nilai null dalam dataset merepresentasikan kasus ketika orientasi almond—apakah ditegakkan, diletakkan miring, atau telentang—mempengaruhi akurasi proses ekstraksi fitur.
Sekarang mari gunakan dataset ini untuk mencoba tugas klasifikasi. Kita akan menggunakan algoritma AdaBoost, yang, seperti telah kita bahas, meningkatkan kinerja model dengan menggabungkan weak learner menjadi satu model yang kuat.
1. Mengimpor pustaka
Kita mulai dengan mengimpor pustaka yang diperlukan dan memuat dataset almond. Lalu, kita pisahkan fitur dan variabel target.
import pandas as pd
almonds = pd.read_csv('Almond.csv', index_col=0)
X = almonds.drop('Type', axis=1)
y = almonds['Type']
2. Menangani data hilang
Selanjutnya, kita membersihkan dataset dengan mengisi nilai yang hilang menggunakan KNN imputer. Ini memastikan kita memiliki dataset lengkap untuk model.
from sklearn.impute import KNNImputer
imputer = KNNImputer(n_neighbors=5)
X_imputed = imputer.fit_transform(X)
3. Membagi data untuk pelatihan dan pengujian
Kita membagi data menjadi set pelatihan dan uji agar dapat mengevaluasi seberapa baik model menangani data baru.
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X_imputed, y, test_size=0.2, random_state=42)
4. Melatih classifier pohon keputusan
Di sini kita melatih model pohon keputusan sederhana, yang memberi kita akurasi dasar sebelum melanjutkan untuk meningkatkan kinerjanya.
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
tree = DecisionTreeClassifier(max_depth=1, random_state=42)
tree.fit(X_train, y_train)
tree_accuracy = accuracy_score(y_test, tree.predict(X_test))
5. Meningkatkan kinerja dengan AdaBoost
Kemudian kita menggunakan AdaBoost untuk meningkatkan kinerja pohon keputusan dengan berfokus pada kesalahannya dan mendorong akurasi.
from sklearn.ensemble import AdaBoostClassifier
ada = AdaBoostClassifier(base_estimator=tree, n_estimators=100, learning_rate=1.0, random_state=42)
ada.fit(X_train, y_train)
ada_accuracy = accuracy_score(y_test, ada.predict(X_test))
# Print the accuracies
print(f'Accuracy of the weak learner (Decision Tree): {tree_accuracy * 100:.2f}%')
print(f'Accuracy of AdaBoost model: {ada_accuracy * 100:.2f}%')
6. Keluaran akhir
Terakhir, kita membandingkan hasil dan melihat bagaimana AdaBoost secara signifikan meningkatkan akurasi.
Accuracy of the weak learner (Decision Tree): 43.14%
Accuracy of AdaBoost model: 61.50%
Lantas, apa yang dapat diambil? Hasil ini menggambarkan kekuatan ensemble learning melalui AdaBoost. Di sini, weak learner adalah pohon keputusan dengan kedalaman maksimum hanya satu, yang memiliki akurasi sekitar 43%. Mengingat hanya ada tiga jenis almond, akurasi 43% tidak jauh di atas rata-rata tebakan. Namun, ketika weak learner ini digunakan sebagai estimator dasar dalam model AdaBoost dengan 100 iterasi, akurasi meningkat menjadi 62%.
Sebagai catatan kehati-hatian, meskipun AdaBoost menunjukkan akurasi yang lebih tinggi pada dataset Almonds kita, ia tidak selalu menjadi pilihan terbaik untuk setiap situasi. Ada risiko overfitting, terutama pada dataset kecil seperti ini, di mana model bisa menjadi terlalu kompleks. Pada kenyataannya, teknik klasifikasi yang lebih sederhana bisa berkinerja sama baiknya atau bahkan lebih baik untuk tugas tertentu. Jadi, meski kita menggunakan AdaBoost di sini untuk mengilustrasikan konsep, penting untuk mempertimbangkan kembali apakah kita benar-benar menginginkan tingkat kompleksitas yang tinggi.
Kesimpulan
Boosting merepresentasikan kemajuan signifikan di bidang machine learning, menampilkan kekuatan metode ensemble untuk meningkatkan akurasi prediktif. Seperti yang telah kita bahas, algoritma boosting seperti AdaBoost, Gradient Boosting, dan XGBoost beroperasi dengan prinsip dasar: menggabungkan beberapa model lemah untuk menciptakan satu prediktor yang lebih efektif.
Namun, penting diingat bahwa boosting hanyalah salah satu alat dalam kotak peralatan machine learning. Efektivitasnya dapat bervariasi tergantung pada masalah spesifik. Seperti halnya teknik machine learning lainnya, memahami kapan dan bagaimana menerapkan boosting adalah kunci untuk memaksimalkan potensinya.
Untuk memperdalam pemahaman Anda tentang boosting dan konsep machine learning lainnya, pertimbangkan untuk menjelajahi jalur karier komprehensif DataCamp Machine Learning for Everyone. Bagi yang ingin lebih berspesialisasi, jalur karier Machine Learning Scientist with Python menawarkan pelatihan mendalam tentang teknik-teknik lanjutan dan penerapan praktis.

Vinod Chugani memulai kariernya di Tokyo sebagai Kepala Meja Penjualan Hedge Fund termuda di JPMorgan dan kemudian mencetak rekor penjualan individu di Lehman Brothers, lalu membangun bisnis distribusi elektronik di 30 negara dengan pendapatan melampaui SG$100 juta sebelum beralih ke data. Lulusan Ekonomi Duke dan alumni NYC Data Science Academy, ia menjadi salah satu dari tiga penerima beasiswa dari lebih dari 100 pelamar untuk kursus Building AI Applications oleh Hugo Bowne-Anderson di Maven. Saat ini, ia menulis untuk DataCamp, KDnuggets, Machine Learning Mastery, dan Statology tentang topik mulai dari statistika hingga AI agensial, dan membimbing para profesional data di NYC Data Science Academy dengan lebih dari 1.000 sesi tatap muka atas namanya.
Frequently Asked Questions
Apa itu boosting dalam machine learning?
Boosting adalah teknik ensemble learning yang digunakan untuk meningkatkan akurasi model prediktif. Teknik ini menggabungkan beberapa weak learner—model yang kinerjanya hanya sedikit lebih baik daripada tebak acak—menjadi satu strong learner, yang secara signifikan meningkatkan kinerja model secara keseluruhan.
Apa perbedaan boosting dan bagging?
Boosting dan bagging sama-sama merupakan teknik ensemble yang menggabungkan beberapa model untuk meningkatkan prediksi, tetapi cara kerjanya berbeda. Boosting melatih model secara berurutan, di mana model baru berfokus pada kesalahan model sebelumnya untuk mengurangi bias dan meningkatkan akurasi. Sebaliknya, bagging melatih model secara paralel pada subset data yang berbeda, lalu merata-ratakan hasilnya untuk mengurangi varians dan meningkatkan stabilitas. Meskipun boosting sensitif terhadap outlier dan noise, bagging lebih tangguh terhadapnya karena metode perata-rataannya.
Apakah boosting dapat digunakan untuk masalah klasifikasi dan regresi?
Ya, teknik boosting dapat diadaptasi untuk klasifikasi maupun regresi. Sementara AdaBoost lebih umum digunakan untuk masalah klasifikasi, varian lain seperti Gradient Boosting dapat digunakan secara efektif untuk regresi.
Bagaimana cara memilih jumlah iterasi boosting?
Jumlah iterasi, atau jumlah weak learner, dalam algoritma boosting biasanya bergantung pada dataset spesifik dan kompleksitas masalah. Jumlah ini dapat ditentukan menggunakan cross-validation atau teknik serupa untuk menyeimbangkan antara underfitting dan overfitting.
Apa perbedaan AdaBoost dengan teknik boosting lain, seperti Gradient Boosting?
AdaBoost meningkatkan bobot pada instance yang salah klasifikasi agar model berikutnya fokus pada kasus-kasus menantang ini. Sebaliknya, Gradient Boost menyesuaikan learner baru terhadap galat residual dari model sebelumnya.
Apa saja keunggulan utama menggunakan AdaBoost?
Keunggulan utama AdaBoost adalah kesederhanaannya, efektivitasnya, dan fakta bahwa ia tidak memerlukan pengetahuan awal tentang weak learner. Ia juga sangat fleksibel, dapat dikombinasikan dengan algoritma pembelajaran apa pun, dan sering kali sangat berhasil pada klasifikasi ketika metode lain mungkin kesulitan.
Apa saja alternatif terkenal untuk meningkatkan kinerja model machine learning selain AdaBoost?
Beberapa alternatif terkenal untuk AdaBoost antara lain Gradient Boosting, XGBoost, CatBoost, LightGBM, dan HistGradientBoost.
Apa saja jenis metode ensemble learning selain boosting?
Bentuk umum ensemble learning selain boosting mencakup bagging dan stacking, masing-masing menggunakan strategi berbeda untuk mengintegrasikan model demi memaksimalkan daya prediksi.

Kemajuan terbaru dalam machine learning telah memperkenalkan cara-cara baru untuk mengatasi masalah kompleks. Boosting adalah salah satu teknik yang terus menunjukkan potensi. Teknik ini mengubah pendekatan kita terhadap pemodelan data dengan menggunakan banyak algoritma untuk meningkatkan kinerja. Seiring konsep boosting berkembang, varian yang lebih baru seperti Gradient Boosting dan XGBoost bermunculan, mendorong batas kecepatan dan akurasi.
Jangan khawatir jika Anda merasa ada banyak hal untuk dipelajari di bidang pemodelan prediktif. Coba jalur karier Associate Data Scientist in Python atau Data Scientist in Python, serta tutorial Explore Ensemble Learning Techniques kami untuk terus belajar.
Boosting dalam Machine Learning
Boosting adalah metode ensemble learning yang kuat dalam machine learning, yang dirancang khusus untuk meningkatkan akurasi model prediktif dengan menggabungkan banyak weak learner—model yang kinerjanya hanya sedikit lebih baik daripada tebak acak—menjadi satu strong learner.
Inti boosting terletak pada proses iteratif di mana setiap weak learner dilatih untuk mengoreksi kesalahan pendahulunya, sehingga secara bertahap meningkatkan kinerja model secara keseluruhan. Dengan berfokus pada kesalahan yang dibuat oleh model sebelumnya, boosting mengubah kumpulan weak learner menjadi model yang lebih akurat.
Cara Kerja Boosting
Boosting mengubah weak learner menjadi satu strong learner yang terpadu melalui proses sistematis yang berfokus pada pengurangan kesalahan dalam pelatihan model secara berurutan. Langkah-langkahnya meliputi:
Metode ini secara efektif meminimalkan kesalahan dengan lebih intensif berfokus pada kasus-kasus sulit dalam data pelatihan, menghasilkan kinerja prediktif yang kuat.
Jenis-Jenis Algoritma Boosting
Mari kita lihat beberapa algoritma boosting yang paling dikenal.
AdaBoost (Adaptive Boosting)
AdaBoost adalah salah satu algoritma boosting pertama. Algoritma ini berfokus pada penimbangan ulang contoh pelatihan setiap kali learner ditambahkan, dengan memberikan penekanan lebih pada instance yang salah klasifikasi. AdaBoost sangat efektif untuk masalah klasifikasi biner. Baca tutorial AdaBoost Classifier in Python kami untuk mempelajari lebih lanjut.
Gradient Boosting
Gradient boosting membangun model secara berurutan dan mengoreksi kesalahan sepanjang proses. Ia menggunakan algoritma gradient descent untuk meminimalkan loss saat menambahkan model baru. Metode ini fleksibel dan dapat digunakan untuk masalah regresi maupun klasifikasi. Tutorial kami, A Guide to The Gradient Boosting Algorithm, menjelaskan proses ini secara rinci.
XGBoost (Extreme Gradient Boosting)
XGBoost adalah pustaka gradient boosting terdistribusi yang dioptimalkan dan menjadi metode andalan bagi banyak pemenang kompetisi di Kaggle. Ia dirancang agar sangat efisien, fleksibel, dan portabel. XGBoost mengimplementasikan algoritma machine learning di bawah kerangka Gradient Boosting, menawarkan solusi yang dapat diskalakan dan akurat untuk banyak masalah data praktis. Untuk studi yang lebih mendalam, pertimbangkan untuk meninjau tutorial Using XGBoost in Python kami dan mengikuti kursus khusus: Extreme Gradient Boosting with XGBoost.
Metode Ensemble
Boosting termasuk dalam kelompok besar metode ensemble. Metode ensemble adalah pendekatan dalam machine learning yang menggabungkan beberapa model untuk menghasilkan prediksi yang lebih akurat daripada yang biasanya dapat dicapai oleh satu model saja. Teknik-teknik ini bekerja dengan memanfaatkan keberagaman model yang berbeda, masing-masing dengan kekuatan dan keterbatasannya, untuk menciptakan proses pengambilan keputusan kolektif.
Berbagai jenis metode ensemble
Boosting adalah teknik ensemble learning yang menonjol, tetapi ini hanyalah salah satu dari beberapa teknik yang meningkatkan kekuatan prediktif model. Mari kita lihat beberapa yang lain.
Boosting vs. bagging
Boosting sering dibandingkan secara khusus dengan bagging. Meskipun dalam beberapa hal serupa, ada perbedaan besar di antara keduanya. Di bawah ini adalah tabel yang membandingkan boosting dengan bagging:
Jika Anda tertarik mempelajari lebih lanjut tentang bagging, baca tutorial What is Bagging in Machine Learning? kami, yang menggunakan sklearn.