全部产品
Search
文档中心

PolarDB:Algoritma LightGBM

更新时间:Nov 09, 2025

Topik ini menjelaskan algoritma light gradient boosting machine (LightGBM).

Informasi latar belakang

LightGBM adalah kerangka kerja peningkatan gradien terdistribusi berbasis Algoritma pohon keputusan. Dirancang sebagai alat yang cepat, efisien, hemat memori, dan akurat tinggi, LightGBM mendukung pemrosesan data paralel dan berskala besar. LightGBM dapat mengurangi penggunaan memori, menurunkan biaya komunikasi, meningkatkan efisiensi permintaan paralel elastis multi-node (ePQ), serta mencapai percepatan linear dalam komputasi data.

Skenario

LightGBM adalah kerangka kerja algoritma yang mencakup Model GBDT, Random Forest, dan model regresi logistik. LightGBM umumnya digunakan dalam skenario seperti klasifikasi biner, klasifikasi multikelas, dan Pengurutan.

Sebagai contoh, dalam sebagian besar skenario rekomendasi komoditas personalisasi, diperlukan model prediksi klik. Model prediksi klik digunakan untuk memprediksi klik atau pembelian pengguna berdasarkan data perilaku historis pengguna, seperti klik, tidak klik, dan pembelian. Fitur-fitur berikut diekstraksi berdasarkan perilaku dan atribut pengguna:

  • Fitur kategorikal: tipe string, seperti jenis kelamin (pria atau wanita).

  • Kategori komoditas: kategori seperti pakaian, mainan, atau elektronik.

  • Fitur numerik: tipe data integer atau floating-point, seperti aktivitas pengguna atau harga komoditas.

Parameter

Nilai parameter yang dijelaskan dalam tabel berikut sama dengan nilai parameter model_parameter yang ditentukan dalam pernyataan CREATE MODEL yang digunakan untuk membuat model. Anda dapat mengonfigurasi parameter-parameter tersebut sesuai dengan kebutuhan bisnis Anda.

Parameter

Deskripsi

boosting_type

Tipe pembelajar lemah. Nilai valid:

  • gbdt (default): menggunakan model Pohon Keputusan Gradient-Boosted.

  • gblinear: menggunakan model linier.

  • rf: menggunakan model Random Forest.

  • dart: menggunakan teknik dropout untuk menghapus beberapa pohon guna mencegah Overfitting.

  • goss: menggunakan algoritma Pengambilan sampel satu sisi berbasis gradien. Tipe ini cepat, tetapi dapat menyebabkan underfitting.

Catatan

Saat Anda menentukan nilai untuk parameter ini, apit nilai tersebut dengan tanda kutip tunggal ('). Contoh: boosting_type='gbdt'

n_estimators

Jumlah iterasi. Nilainya harus berupa bilangan bulat. Nilai default: 100.

loss

Tugas pembelajaran dan tujuan pembelajaran dari tugas tersebut. Nilai valid:

  • binary (default): klasifikasi biner.

  • regression: menggunakan model regresi dengan Regularisasi L2.

  • regression_l1: menggunakan model regresi dengan Regularisasi L1.

  • multiclass: klasifikasi multikelas.

num_leaves

Jumlah daun. Nilainya harus berupa bilangan bulat. Nilai default: 128.

max_depth

Kedalaman maksimum pohon. Nilainya harus berupa bilangan bulat. Nilai default: 7.

Catatan

Jika parameter ini disetel ke -1, kedalaman pohon tidak ditentukan. Kami menyarankan Anda menentukan parameter ini dengan hati-hati untuk mencegah overfitting.

learning_rate

Tingkat pembelajaran. Nilainya harus berupa bilangan titik mengambang. Nilai default: 0,06.

max_leaf_nodes

Jumlah maksimum node daun dalam pohon. Nilainya bisa berupa bilangan bulat atau dibiarkan kosong. Secara default, parameter ini dibiarkan kosong, yang menunjukkan bahwa jumlah node daun dalam pohon tidak dibatasi.

min_samples_leaf

Jumlah minimum node daun sampel dalam pohon. Nilainya harus berupa bilangan bulat. Nilai default: 20.

Catatan

Jika jumlah node daun kurang dari jumlah minimum node daun sampel, node tersebut dipangkas bersama dengan node saudaranya.

subsample

Rasio sampel yang digunakan untuk pembuatan model terhadap semua sampel. Nilainya harus berupa bilangan titik mengambang. Nilai valid: 0 hingga 1. Nilai default: 1.

Catatan

Jika nilai parameter ini kurang dari 1, hanya proporsi sampel tertentu yang digunakan untuk pembuatan model.

max_features

Proporsi fitur pembuatan model terhadap semua fitur. Nilainya harus berupa bilangan titik mengambang. Nilai valid: 0 hingga 1. Nilai default: 1.

max_depth

Kedalaman maksimum pohon. Nilainya harus berupa bilangan bulat. Nilai default: 7.

Catatan

Nilai yang lebih besar menentukan presisi yang lebih tinggi. Namun, overfitting mungkin terjadi.

random_state

Bibit angka acak. Nilainya harus berupa bilangan bulat. Nilai default: 1.

Catatan

Jika ada nilai berbeda, konstruksi pohon dan segmentasi data pembuatan model mungkin terpengaruh.

model_type

Tipe penyimpanan model. Nilai valid:

  • pkl (default): file PKL.

  • pmml: file PMML. Tipe ini dapat menampilkan informasi terkait pohon seperti struktur pohon.

n_jobs

Jumlah utas yang digunakan untuk membuat model. Nilainya harus berupa bilangan bulat. Nilai default: 4.

Catatan

Semakin banyak utas yang digunakan untuk pembuatan model, semakin cepat model dibuat.

is_unbalance

Menentukan apakah akan menambah bobot kategori dengan jumlah sampel kecil untuk mengatasi ketidakseimbangan sampel. Nilai valid:

  • False (default): tidak menambah bobot kategori dengan jumlah sampel kecil.

  • True: menambah bobot kategori dengan jumlah sampel kecil.

categorical_feature

Fitur kategorikal. Nilainya harus berupa larik string. Dalam kebanyakan kasus, LightGBM menentukan tipe data untuk secara otomatis mengonfigurasi parameter categorical_feature. Anda juga dapat mengonfigurasi parameter ini.

Sebagai contoh, jika parameter categorical_feature disetel ke 'AirportTo,DayOfWeek', nilai 'AirportTo,DayOfWeek' menunjukkan dua fitur kategorikal.

automl

Menentukan apakah akan mengaktifkan fitur penyetelan parameter otomatis. Nilai valid:

  • False (default): Fitur penyetelan parameter otomatis dinonaktifkan.

  • True: Fitur penyetelan parameter otomatis diaktifkan. Secara default, setelah fitur penyetelan parameter otomatis diaktifkan, teknik Penghentian Dini digunakan untuk menghentikan iterasi saat tugas pembelajaran dan tujuan pembelajaran tugas yang ditentukan oleh parameter loss tetap tidak berubah.

automl_train_tag

Label pembuatan model.

automl_test_tag

Label pengujian model.

automl_column

Nama kolom dalam set pembuatan model atau set pengembangan yang ditentukan oleh fitur penyetelan parameter otomatis. Anda harus mengonfigurasi parameter automl_column dan automl_test_tag. Volume data parameter automl_train_tag harus 4 hingga 9 kali lipat dari parameter automl_test_tag.

Catatan

Setelah Anda mengonfigurasi parameter automl_column, pencarian otomatis untuk kombinasi parameter optimal diaktifkan. Dalam hal ini, Anda dapat menambahkan awalan automl_ sebelum parameter learning_rate dan subsample. Dengan cara ini, Anda dapat mencari parameter yang ada untuk menemukan parameter optimal. Contoh:

automl_column='automl_column',automl_train_tag='train',automl_test_tag='test',automl_learning_rate='0.05,0.04,0.03,0.01',automl_subsample='0.6,0.5'

Parameter optimal diperoleh dari set laju pembelajaran "0,05, 0,04, 0,03, dan 0,01" dan parameter pengambilan sampel "0,6 dan 0,5".

Contoh

Buat model LightGBM.

/*polar4ai*/CREATE MODEL airline_gbm WITH
(model_class = 'lightgbm',
x_cols = 'Airline,Flight,AirportFrom,AirportTo,DayOfWeek,Time,Length',
y_cols='Delay',model_parameter=(boosting_type='gbdt'))
AS (SELECT * FROM db4ai.airlines);

Evaluasi model.

/*polar4ai*/SELECT Airline FROM EVALUATE(MODEL airline_gbm, 
SELECT * FROM db4ai.airlines LIMIT 20) WITH 
(x_cols = 'Airline,Flight,AirportFrom,AirportTo,DayOfWeek,Time,Length',y_cols='Delay',metrics='acc');

Gunakan model untuk prediksi.

/*polar4ai*/SELECT Airline FROM PREDICT(MODEL airline_gbm,
SELECT * FROM db4ai.airlines limit 20) WITH
(x_cols = 'Airline,Flight,AirportFrom,AirportTo,DayOfWeek,Time,Length');