Cara Otomatis Atasi Categorical Features pada Boosting dengan CatBoost

DW ADS

Hai sobat Exsight!

Jika kalian bertanya dapatkah proses convert categorical features menjadi bentuk numerik dipangkas ketika menggunakan boosting, maka jawabannya adalah sangat bisa!

Kabar gembira datang dari perusahaan teknologi Rusia yaitu Yandex yang me-release CatBoost pada tahun 2017. Memang ada beberapa teknik boosting lain yang dapat mengatasi categorical features secara otomatis, tapi CatBoost memiliki kelebihan lain. Yuk, simak penjelasannya!

Apa itu CatBoost?

CatBoost – Open Source Gradient Boosting Library

CatBoost (Category Boosting) adalah algoritma machine learning yang masuk dalam keluarga gradient boosting. Gradient boosting sebagai basisnya sendiri adalah teknik machine learning untuk regresi dan klasifikasi yang powerful dan sudah terbukti pada banyak aplikasi. Algoritma gradient boosting diawali dengan inisialisasi model, pembentukan pohon-pohon regresi, hingga pembentukan model akhir berupa jumlahan nilai inisial konstan dengan seluruh deret pohon yang terus diperbaharui.

Namun riset dari Prokhorenkova dkk (2018) menyebutkan bahwa implementasi gradient boosting rupanya mengalami beberapa isu statistik target leakage pada model prediksinya sehingga menyebabkan prediction shift. Seperti namanya, target leakage diibaratkan seperti membocorkan jawaban pada sebuah ujian yang sedang berlangsung. Algoritma pada tahap preprocessing untuk categorical features pun juga mengalami isu serupa. Atas kedua isu tersebut, CatBoost hadir mengangkat ordering principle yang diklaim dapat mengatasi target leakage dengan konsep permutasi.

Nah, supaya kamu nggak makin pusing mendengar istilah-istilah baru di atas, langsung aja yuk kita implementasikan di Python. Oiya, jangan lupa pastikan bahasa Python sudah terinstall di laptop atau pc mu. Atau jika belum, kamu bisa mengikuti tutorial cara instalasi Python dan Jupyter Notebook di link ini yaaa.

Implementasi Penggunaan CatBoost pada Python

Library

pip install catboost
from catboost import CatBoostClassifier
import numpy as np

Mendefinisikan Categorical Features

cat_features = np.where(X.dtypes != np.float)[0]

Klasifikasi Data dengan CatBoost

model = CatBoostClassifier(
       l2_leaf_reg = 2),
       learning_rate = 0.1,
       max_depth = 2,
       eval_metric='AUC',
       random_seed=42,
       verbose=False,
       loss_function='Logloss',
)
model.fit(X, y, cat_features=cat_features)

Penjabaran di atas adalah contoh sederhana penggunaan CatBoost dengan Python ya Sobat, tentu saja kalian dapat mengeksplor lebih luas lagi untuk memperoleh hasil yang maksimal. Selamat mencoba Sobat Exsight!

Jangan lupa baca artikel Exsight yang lain di sini ya!

Jika ada pertanyaan terkait code python di atas kamu bisa langsung bertanya di kolom komentar jugaa.

See youu!!

Referensi

Liudmila Prokhorenkova, Gleb Gusev, Aleksandr Vorobev, Anna Veronika Dorogush, and Andrey Gulin. 2018. CatBoost: unbiased boosting with categorical features. In <i>Proceedings of the 32nd International Conference on Neural Information Processing Systems</i> (<i>NIPS’18</i>). Curran Associates Inc., Red Hook, NY, USA, 6639–6649.

Sstt...
Mau Kiriman Artikel Terbaru Exsight
Tanpa Biaya Langganan? ????

Nama Kamu

Email Kamu

Dapatkan Akses Informasi Terupdate Seputar Dunia Data dan Statistika 🙂

Exsight ADS

Leave a Comment

Hubungi Admin
Halo, selamat datang di Exsight! 👋

Hari ini kita ada DISKON 20% untuk semua transaksi. Klaim sekarang!