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 struktur keputusan, algoritma 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 pembelajar yang lemah menjadi pembelajar yang kuat dengan menjumlahkan residu. Pustaka ini tersedia untuk C++, Python, R, Java, Scala, dan Julia1.
Struktur keputusan digunakan untuk klasifikasi atau regresi tugas di machine learning. Mereka menggunakan struktur pohon hierarkis di mana node internal menunjukkan fitur, cabang menunjukkan aturan keputusan, dan setiap node daun menunjukkan hasil kumpulan data.
Karena struktur keputusan 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 pembelajar yang lemah dilatih secara berurutan untuk memperbaiki kesalahan yang dibuat oleh model sebelumnya. Setelah ratusan iterasi, pembelajar yang lemah diubah menjadi pembelajar yang kuat.
Random forest dan algoritma 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 algoritma penguatan menggunakan pendekatan aditif di mana pembelajar yang lemah dilatih secara berurutan untuk memperbaiki kesalahan model sebelumnya.
Struktur keputusan di mana gradient boost diterapkan adalah jenis algoritma peningkatan yang menggunakan gradient descent. Seperti metodologi peningkatan lainnya, peningkatan gradien dimulai dengan pembelajar yang lemah untuk membuat prediksi. Struktur keputusan pertama dalam gradient boosting disebut pembelajar dasar. Selanjutnya, pohon baru dibuat dengan cara aditif berdasarkan kesalahan pembelajar dasar. Algoritma 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 algoritma 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 matriks kebingungan.
Selanjutnya, Anda mungkin ingin mengulangi melalui kombinasi hiperparameter untuk membantu meningkatkan kinerja model Anda. Penyetelan hiperparameter adalah proses optimasi untuk hiperparameter algoritma 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 algoritma peningkatan sumber terbuka yang tersedia. Pada bagian ini, kita akan membandingkan XGBoost dengan tiga kerangka kerja peningkatan lainnya.
AdaBoost adalah algoritma 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 pembelajar yang lemah 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 algoritma penguatan gradien terakhir yang akan kami ulas. LightGBM dikembangkan oleh Microsoft dan pertama kali dirilis pada tahun 20169. Di mana sebagian besar algoritme pembelajaran decision trees menumbuhkan pohon berdasarkan kedalaman, LightGBM menggunakan strategi pertumbuhan pohon berdasarkan daun10. 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.