Tren AI terbaru, dipersembahkan oleh para pakar
Dapatkan kurasi insight tentang berita AI yang paling penting dan menarik. Berlangganan buletin Think mingguan. Lihat Pernyataan Privasi IBM.
XGBoost (eXtreme Gradient Boosting) adalah pustaka machine learning sumber terbuka terdistribusi yang menggunakan decision tree, algoritme peningkatan pembelajaran diawasi yang memanfaatkan gradient descent. Ia dikenal karena kecepatan, efisiensi, dan kemampuannya untuk menskalakan dengan baik dengan kumpulan data yang besar.
Dikembangkan oleh Tianqi Chen dari University of Washington, XGBoost adalah implementasi lanjutan dari gradient boosting dengan kerangka kerja umum yang sama; yaitu menggabungkan pohon weak learner menjadi pembelajar yang kuat dengan menjumlahkan residu. Pustaka ini tersedia untuk C++, Python, R, Java, Scala, dan Julia1.
Decision tree digunakan untuk klasifikasi atau regresi tugas di machine learning. Algoritme ini menggunakan struktur pohon hierarkis; simpul internal (internal node) merepresentasikan fitur, cabang (branch) menyatakan aturan keputusan, dan setiap simpul daun (leaf node) menghasilkan prediksi atau klasifikasi data.
Karena decision tree rentan terhadap overfitting, metode ensambel, seperti boosting, sering kali dapat digunakan untuk membuat model yang lebih kuat. Peningkatan menggabungkan beberapa pohon lemah terpisah—yaitu, model yang berkinerja sedikit lebih baik daripada peluang acak, untuk membentuk pembelajar yang kuat. Setiap weak learner dilatih secara berurutan untuk memperbaiki kesalahan yang dibuat oleh model sebelumnya. Setelah ratusan iterasi, weak learner diubah menjadi pembelajar yang kuat.
Random forest dan algoritme peningkatan keduanya merupakan teknik pembelajaran ensambel populer yang menggunakan pohon tiap pembelajar untuk meningkatkan kinerja prediktif. Random forest didasarkan pada konsep bagging (agregasi bootstrap) dan melatih setiap pohon secara independen untuk menggabungkan prediksi mereka, sementara algoritme boosting menggunakan pendekatan aditif yang melatih model standar (weak learner) secara berurutan guna memperbaiki kesalahan prediksi dari model sebelumnya.
Gradient Boosting Trees merupakan jenis algoritme boosting berbasis decision tree yang menerapkan metode gradient descent untuk meminimalkan kesalahan prediksi model. Seperti metodologi peningkatan lainnya, peningkatan gradien dimulai dengan weak learner untuk membuat prediksi. Struktur keputusan pertama dalam gradient boosting disebut pembelajar dasar. Selanjutnya, pohon baru dibuat dengan cara aditif berdasarkan kesalahan pembelajar dasar. Algoritme ini kemudian menghitung residu dari prediksi setiap pohon untuk menentukan seberapa jauh prediksi model dari kenyataan. Residu adalah perbedaan antara nilai prediksi model dan nilai aktual. Residu kemudian digabungkan untuk menilai model dengan fungsi kesalahan.
Dalam machine learning, fungsi kesalahan digunakan untuk mengukur kinerja model. Gradien dalam struktur keputusan yang diterapkan gradient boost mengacu pada gradient descent. Gradient descent digunakan untuk meminimalkan kerugian (yaitu untuk meningkatkan kinerja model) ketika melatih model baru. Gradient descent adalah algoritme pengoptimalan populer yang digunakan untuk meminimalkan fungsi kesalahan dalam masalah machine learning. Beberapa contoh fungsi kesalahan termasuk rata-rata kuadrat kesalahan atau rata-rata absolut kesalahan untuk masalah regresi, kesalahan lintas entropi untuk masalah klasifikasi, atau fungsi kesalahan khusus dapat dikembangkan untuk contoh penggunaan dan kumpulan data tertentu.
Berikut adalah diskusi tentang beberapa fitur XGBoost di Python yang membuatnya lebih menonjol dibandingkan dengan paket peningkatan gradien normal di scikit-learn2:
Dapatkan kurasi insight tentang berita AI yang paling penting dan menarik. Berlangganan buletin Think mingguan. Lihat Pernyataan Privasi IBM.
Pada bagian ini, kita akan membahas cara menggunakan paket XGBoost, cara memilih hyperparameter untuk peningkat pohon XGBoost, bagaimana XGBoost dibandingkan dengan implementasi peningkat lainnya dan beberapa contoh penggunaannya.
Dengan asumsi Anda telah melakukan analisis data eksplorasi pada data Anda, lanjutkan dengan membagi data Anda antara kumpulan data pelatihan dan kumpulan data pengujian. Selanjutnya, konversikan data Anda ke format DMatrix yang diharapkan oleh XGBoost3. DMatrix adalah struktur data internal XGBoost yang dioptimalkan untuk efisiensi memori dan kecepatan pelatihan4.
Selanjutnya, instansikan model XGBoost dan, tergantung pada contoh penggunaan Anda, pilih fungsi objektif mana yang ingin Anda gunakan melalui hyperparameter “object”. Sebagai contoh, jika Anda memiliki tugas klasifikasi multi-kelas, Anda harus menetapkan tujuan ke “multi:softmax”5. Atau, jika Anda memiliki masalah klasifikasi biner, Anda dapat menggunakan tujuan regression logistik “binary:logistic”. Sekarang Anda dapat menggunakan set pelatihan Anda untuk melatih model dan memprediksi klasifikasi untuk data yang disisihkan sebagai set pengujian. Menilai kinerja model dengan membandingkan nilai yang diprediksi dengan nilai aktual set uji. Anda dapat menggunakan metrik seperti akurasi, presisi, mengingat, atau skor f-1 untuk mengevaluasi model Anda. Anda mungkin juga ingin memvisualisasikan positif sejati, negatif sejati, positif palsu, dan negatif palsu menggunakan confusion matrix.
Selanjutnya, Anda mungkin ingin mengulangi melalui kombinasi hiperparameter untuk membantu meningkatkan kinerja model Anda. Penyetelan hiperparameter adalah proses optimasi untuk hiperparameter algoritme machine learning. Hiperparameter terbaik dapat ditemukan menggunakan metode pencarian grid dan validasi silang, yang akan diulang melalui kamus kemungkinan opsi penyetelan hiperparameter.
Berikut ini adalah penjelasan mengenai beberapa hyperparameter yang tersedia untuk disetel pada pohon yang ditingkatkan gradien di XGBoost:
XGBoost adalah salah satu dari banyak algoritme peningkatan sumber terbuka yang tersedia. Pada bagian ini, kita akan membandingkan XGBoost dengan tiga kerangka kerja peningkatan lainnya.
AdaBoost adalah algoritme peningkatan awal yang ditemukan oleh Yoav Freund dan Robert Schapire pada tahun 19957. Dalam AdaBoost, lebih banyak penekanan diberikan pada prediksi yang salah melalui sistem bobot yang memengaruhi titik data yang lebih sulit diprediksi secara lebih signifikan. Pertama, setiap titik data dalam kumpulan data diberi bobot tertentu. Ketika weak learner memprediksi contoh dengan benar, bobot contoh berkurang. Tetapi jika pembelajar salah mendapatkan contoh, bobot untuk titik data itu meningkat. Saat pohon baru dibuat, bobotnya didasarkan pada kesalahan klasifikasi pohon pembelajar sebelumnya. Dengan bertambahnya jumlah pembelajar, sampel yang mudah diprediksi akan lebih sedikit digunakan untuk peserta didik berikutnya, sementara titik data yang lebih sulit diprediksi akan diberi bobot yang lebih besar. Peningkatan gradien dan XGBoost cenderung menjadi alternatif yang lebih kuat untuk AdaBoost karena akurasi dan kecepatannya.
CatBoost adalah kerangka kerja peningkat gradien lainnya. Dikembangkan oleh Yandex pada tahun 2017, aplikasi ini berspesialisasi dalam menangani fitur kategorikal tanpa perlu prepemrosesan dan umumnya bekerja dengan baik di luar kotak tanpa perlu melakukan penyetelan hyperparameter yang ekstensif8. Seperti XGBoost, CatBoost telah membangun dukungan untuk menangani data yang hilang. CatBoost sangat berguna untuk kumpulan data dengan banyak fitur kategoris. Menurut Yandex, kerangka kerja ini digunakan untuk pencarian, sistem rekomendasi, asisten pribadi, mobil tanpa pengemudi, prediksi cuaca, dan tugas-tugas lainnya.
LightGBM (Light Gradient Boosting Machine) adalah algoritme penguatan gradien terakhir yang akan kami ulas. LightGBM dikembangkan oleh Microsoft dan pertama kali dirilis pada tahun 20169. Jika sebagian besar algoritme decision tree menumbuhkan pohon secara horizontal berdasarkan kedalamannya (level-wise/depth-wise growth), LightGBM justru menerapkan strategi pertumbuhan pohon berbasis daun (leaf-wise growth)10. Seperti XGBoost, LightGBM menunjukkan kecepatan dan akurasi pelatihan model yang cepat dan berkinerja baik dengan kumpulan data besar.
XGBoost dan decision trees yang ditingkatkan gradien digunakan di berbagai aplikasi ilmu data, termasuk:
Latih, validasi, lakukan tuning, dan terapkan AI generatif, model dasar, dan kemampuan machine learning dengan IBM watsonx.ai, studio perusahaan generasi berikutnya untuk pembangun AI. Bangun aplikasi AI dalam waktu singkat, dengan sedikit data.
Gunakan AI di bisnis Anda dalam perpaduan antara keahlian AI terdepan di industri dari IBM dan portofolio solusi Anda.
Temukan kembali alur kerja dan operasi yang penting dengan menambahkan AI untuk memaksimalkan pengalaman, pengambilan keputusan secara real-time, dan nilai bisnis.