Tutorial XGBoost & LightGBM: Gradient Boosting Masterclass

# XGBoost & LightGBM - Masterclass Gradient Boosting ## Daftar Isi 1. [Pendahuluan](#pendahuluan) 2. [Prasyarat](#prasyarat) 3. [Memahami Gradient Boosting](#memahami-gradient-boosting) 4. [Pelatiha...

By Ruby Abdullah · · tutorial
XGBoostLightGBMGradient BoostingSHAPMachine LearningPython

XGBoost & LightGBM - Masterclass Gradient Boosting

Daftar Isi

  • Pendahuluan
  • Prasyarat
  • Memahami Gradient Boosting
  • Pelatihan dan Tuning XGBoost
  • Pelatihan dan Tuning LightGBM
  • Perbandingan XGBoost vs LightGBM
  • Optimasi Hyperparameter
  • Explainability dengan SHAP
  • Analisis Feature Importance
  • Early Stopping dan Cross-Validation
  • Deployment Model
  • Praktik Terbaik
  • Kesimpulan

  • Pendahuluan

    Gradient boosting adalah salah satu teknik machine learning paling kuat untuk data terstruktur/tabular. XGBoost (eXtreme Gradient Boosting) dan LightGBM (Light Gradient Boosting Machine) adalah dua implementasi terdepan yang secara konsisten memenangkan kompetisi Kaggle dan menggerakkan sistem ML produksi di berbagai industri. Masterclass ini mencakup kedua library dari dasar hingga deployment produksi.

    XGBoost, dikembangkan oleh Tianqi Chen, memperkenalkan regularisasi ke gradient boosting dan mempopulerkan teknik ini. LightGBM, dikembangkan oleh Microsoft, membawa inovasi seperti pemisahan berbasis histogram dan pertumbuhan pohon berbasis daun (leaf-wise) untuk pelatihan yang lebih cepat. Memahami keduanya memungkinkan Anda memilih alat yang tepat untuk setiap masalah.

    Prasyarat

    • Python 3.8 atau lebih tinggi
    • Pemahaman dasar tentang konsep machine learning (klasifikasi, regresi, overfitting)
    • Keakraban dengan konvensi API scikit-learn

    pip install xgboost lightgbm
    

    pip install scikit-learn pandas numpy

    pip install shap matplotlib seaborn

    pip install optuna # Untuk optimasi hyperparameter

    Memahami Gradient Boosting

    Gradient boosting membangun ansambel dari pelajar lemah (biasanya pohon keputusan) secara berurutan, di mana setiap pohon baru mengoreksi kesalahan dari ansambel sebelumnya:

    import numpy as np
    
    

    Ilustrasi konseptual gradient boosting

    Langkah 1: Mulai dengan prediksi awal (misal, rata-rata target)

    Langkah 2: Hitung residual (aktual - prediksi)

    Langkah 3: Pasang pohon ke residual

    Langkah 4: Perbarui prediksi: prediksibaru = prediksilama + learningrate prediksipohon

    Langkah 5: Ulangi langkah 2-4

    Perbedaan utama antara XGBoost dan LightGBM:

    XGBoost: pertumbuhan pohon level-wise (breadth-first)

    LightGBM: pertumbuhan pohon leaf-wise (best-first) - lebih cepat tapi risiko overfitting

    XGBoost memisahkan node level per level

    LightGBM memisahkan daun dengan pengurangan loss tertinggi

    Pelatihan dan Tuning XGBoost

    Klasifikasi Dasar

    import xgboost as xgb
    

    import numpy as np

    from sklearn.datasets import makeclassification

    from sklearn.modelselection import traintestsplit

    from sklearn.metrics import accuracyscore, classificationreport, rocaucscore

    Buat data sampel

    X, y = makeclassification(

    nsamples=10000, nfeatures=20, ninformative=15,

    nredundant=3, randomstate=42

    )

    Xtrain, Xtest, ytrain, ytest = traintestsplit(X, y, testsize=0.2, randomstate=42)

    Menggunakan API scikit-learn

    clf = xgb.XGBClassifier(

    nestimators=500,

    maxdepth=6,

    learningrate=0.1,

    subsample=0.8,

    colsamplebytree=0.8,

    minchildweight=5,

    gamma=0.1,

    regalpha=0.1, # Regularisasi L1

    reglambda=1.0, # Regularisasi L2

    objective="binary:logistic",

    evalmetric="logloss",

    treemethod="hist", # Metode berbasis histogram (lebih cepat)

    device="cuda", # Gunakan GPU jika tersedia

    randomstate=42,

    njobs=-1

    )

    clf.fit(

    Xtrain, ytrain,

    evalset=[(Xtest, ytest)],

    verbose=50

    )

    ypred = clf.predict(Xtest)

    yproba = clf.predictproba(Xtest)[:, 1]

    Artikel Terkait

    Tutorial SHAP: Explainable AI dan Interpretasi Model

    SHAP - Panduan Praktis Explainable AI dan Interpretabilitas Model Model machine learning makin sering dipakai untuk meng...

    Tutorial PyOD: Deteksi Anomali dan Outlier dengan Python

    Deteksi Anomali di Python dengan PyOD: Panduan Praktis Sebagian besar dataset di dunia nyata mengandung sebagian kecil d...

    Tutorial spaCy: NLP Berskala Industri dengan Python

    spaCy: NLP Kelas Industri di Python spaCy adalah pustaka open-source untuk pemrosesan bahasa alami (NLP) yang dirancang ...

    DSPy: Framework untuk Optimasi LLM Secara Programatik

    DSPy: Framework untuk Optimasi LLM Secara Programatik Prompt engineering secara manual adalah proses yang melelahkan dan...