PS-SMART melatih model klasifikasi multikelas menggunakan algoritma berbasis GBDT yang dapat diskalakan hingga miliaran sampel dan ribuan node.
Batasan
-
Kolom target hanya menerima tipe numerik. Konversikan data STRING di tabel MaxCompute sebelum pelatihan. Contoh: konversi Good/Medium/Bad menjadi 0/1/2.
-
Untuk data dalam format KV, ID fitur harus berupa bilangan bulat positif dan nilai fitur harus berupa bilangan real. Konversikan ID fitur berupa string menggunakan komponen serialize. Terapkan rekayasa fitur (seperti diskretisasi) pada nilai fitur kategorikal.
-
Komponen ini dapat menangani ratusan ribu fitur tetapi mengonsumsi sumber daya signifikan dan berjalan lambat. Algoritma GBDT memberikan performa terbaik dengan fitur kontinu. Terapkan one-hot encoding pada fitur kategorikal untuk menyaring fitur dengan frekuensi rendah. Hindari mendiskretisasi fitur kontinu.
-
PS-SMART memperkenalkan keacakan melalui pengambilan sampel data (data_sample_ratio), pengambilan sampel fitur (fea_sample_ratio), aproksimasi histogram, dan urutan penggabungan sketsa. Struktur pohon dapat berbeda di antara pekerja terdistribusi, tetapi performa model tetap serupa. Data dan parameter yang identik dapat menghasilkan hasil yang tidak konsisten antarjalannya.
-
Menambah jumlah computing cores mempercepat pelatihan. Pelatihan hanya dimulai setelah semua server memperoleh sumber daya yang diperlukan. Meminta lebih banyak sumber daya saat kluster sedang padat akan meningkatkan waktu tunggu.
Konfigurasi komponen
Metode 1: Gunakan GUI
Tambahkan komponen PS-SMART multiclass classification ke alur kerja Designer dan konfigurasikan parameternya:
|
Jenis parameter |
Parameter |
Deskripsi |
|
Pengaturan kolom |
Is sparse format |
Format sparse menggunakan spasi untuk memisahkan pasangan KV dan titik dua untuk memisahkan key dan value. Contoh: 1:0.3 3:0.9. |
|
Feature columns |
Kolom fitur dari tabel input. Untuk format dense, pilih hanya kolom numerik (BIGINT atau DOUBLE). Untuk format sparse KV di mana key dan value keduanya numerik, pilih hanya kolom STRING. |
|
|
Label column |
Kolom label dari tabel input. Menerima tipe STRING dan numerik. Penyimpanan internal memerlukan tipe numerik, seperti 0 dan 1 untuk klasifikasi biner. |
|
|
Weight column |
Kolom bobot untuk setiap baris sampel. Hanya menerima tipe numerik. |
|
|
Pengaturan parameter |
Number of classes |
Jumlah kelas untuk klasifikasi multikelas. Jika diatur ke n, nilai kolom label harus berkisar dari 0 hingga n-1. |
|
Evaluation metric type |
Jenis metrik evaluasi: negative log likelihood multikelas dan error klasifikasi multikelas. |
|
|
Number of trees |
Jumlah pohon (bilangan bulat positif). Waktu pelatihan meningkat secara proporsional. |
|
|
Maximum tree depth |
Kedalaman maksimum pohon. Default: 5 (memungkinkan hingga 32 node daun). |
|
|
Data sampling ratio |
Proporsi data yang diambil sampelnya saat membangun setiap pohon. Menghasilkan pembelajar lemah dan mempercepat pelatihan. |
|
|
Feature sampling ratio |
Proporsi fitur yang diambil sampelnya saat membangun setiap pohon. Menghasilkan pembelajar lemah dan mempercepat pelatihan. |
|
|
L1 penalty coefficient |
Koefisien penalti L1. Mengontrol distribusi ukuran node daun. Nilai yang lebih besar menghasilkan distribusi yang lebih seragam. Tingkatkan untuk mencegah overfitting. |
|
|
L2 penalty coefficient |
Koefisien penalti L2. Mengontrol distribusi ukuran node daun. Nilai yang lebih besar menghasilkan distribusi yang lebih seragam. Tingkatkan untuk mencegah overfitting. |
|
|
Learning rate |
Laju pembelajaran. Rentang: (0,1). |
|
|
Approximate sketch precision |
Ambang batas kuantil untuk pembentukan sketsa. Nilai yang lebih kecil membuat lebih banyak bucket. Default: 0.03. Tidak perlu dikonfigurasi manual. |
|
|
Minimum split loss change |
Penurunan loss minimum yang diperlukan untuk membagi sebuah node. Nilai yang lebih besar menghasilkan pemisahan yang lebih konservatif. |
|
|
Number of features |
Jumlah fitur atau ID fitur maksimum. Digunakan untuk estimasi sumber daya. |
|
|
Global bias |
Nilai prediksi awal untuk semua sampel. Disebut juga base score. |
|
|
Random number generator seed |
Seed acak (bilangan bulat). |
|
|
Feature importance type |
Jenis perhitungan pentingnya fitur:
|
|
|
Eksekusi tuning |
Number of cores |
Jumlah core komputasi. Sistem mengalokasikan secara otomatis secara default. |
|
Memory size per core |
Memori per core (MB). Sistem mengalokasikan secara otomatis. Konfigurasi manual jarang diperlukan. |
Metode 2: Gunakan perintah PAI
Panggil perintah PAI dari komponen skrip SQL. Untuk detailnya, lihat Skenario 4: Jalankan perintah PAI dalam komponen skrip SQL.
--Train
PAI -name ps_smart
-project algo_public
-DinputTableName="smart_multiclass_input"
-DmodelName="xlab_m_pai_ps_smart_bi_545859_v0"
-DoutputTableName="pai_temp_24515_545859_2"
-DoutputImportanceTableName="pai_temp_24515_545859_3"
-DlabelColName="label"
-DfeatureColNames="features"
-DenableSparse="true"
-Dobjective="multi:softprob"
-Dmetric="mlogloss"
-DfeatureImportanceType="gain"
-DtreeCount="5"
-DmaxDepth="5"
-Dshrinkage="0.3"
-Dl2="1.0"
-Dl1="0"
-Dlifecycle="3"
-DsketchEps="0.03"
-DsampleRatio="1.0"
-DfeatureRatio="1.0"
-DbaseScore="0.5"
-DminSplitLoss="0"
--Predict
PAI -name prediction
-project algo_public
-DinputTableName="smart_multiclass_input";
-DmodelName="xlab_m_pai_ps_smart_bi_545859_v0"
-DoutputTableName="pai_temp_24515_545860_1"
-DfeatureColNames="features"
-DappendColNames="label,features"
-DenableSparse="true"
-DkvDelimiter=":"
-Dlifecycle="28"
|
Modul |
Parameter |
Wajib |
Default |
Deskripsi |
|
Parameter data |
featureColNames |
Ya |
Tidak ada |
Kolom fitur dari tabel input. Untuk format dense, pilih hanya kolom numerik (BIGINT atau DOUBLE). Untuk format sparse KV di mana key dan value keduanya numerik, pilih hanya kolom STRING. |
|
labelColName |
Ya |
Tidak ada |
Kolom label dari tabel input. Menerima tipe STRING dan numerik. Penyimpanan internal memerlukan tipe numerik. Untuk klasifikasi multikelas, nilai harus berkisar dari 0 hingga n-1, di mana n adalah jumlah kelas. |
|
|
weightCol |
Tidak |
Tidak ada |
Kolom bobot untuk setiap baris sampel. Hanya menerima tipe numerik. |
|
|
enableSparse |
Tidak |
false |
Apakah data dalam format sparse. Nilai: true atau false. Format sparse menggunakan spasi untuk memisahkan pasangan KV dan titik dua untuk memisahkan key dan value. Contoh: 1:0.3 3:0.9. |
|
|
inputTableName |
Ya |
Tidak ada |
Nama tabel input. |
|
|
modelName |
Ya |
Tidak ada |
Nama model output. |
|
|
outputImportanceTableName |
Tidak |
Tidak ada |
Nama tabel output untuk pentingnya fitur. |
|
|
inputTablePartitions |
Tidak |
Tidak ada |
Format: ds=1/pt=1. |
|
|
outputTableName |
Tidak |
Tidak ada |
Tabel output di MaxCompute. Format biner, tidak dapat dibaca langsung. Hanya dapat diakses melalui komponen prediksi SMART. |
|
|
lifecycle |
Tidak |
3 |
Siklus hidup tabel output (dalam hari). |
|
|
Parameter algoritma |
classNum |
Ya |
Tidak ada |
Jumlah kelas untuk klasifikasi multikelas. Jika diatur ke n, nilai kolom label harus berkisar dari 0 hingga n-1. |
|
objective |
Ya |
Tidak ada |
Jenis fungsi objektif. Untuk pelatihan klasifikasi multikelas, gunakan multi:softprob. |
|
|
metric |
Tidak |
Tidak ada |
Jenis metrik evaluasi untuk set data pelatihan. Output ditulis ke stdout di area Logview Coordinator. Jenis:
|
|
|
treeCount |
Tidak |
1 |
Jumlah pohon (bilangan bulat positif). Waktu pelatihan meningkat secara proporsional. |
|
|
maxDepth |
Tidak |
5 |
Kedalaman maksimum pohon. Rentang: 1 hingga 20. |
|
|
sampleRatio |
Tidak |
1.0 |
Rasio pengambilan sampel data. Rentang: (0,1]. Nilai 1.0 menonaktifkan pengambilan sampel. |
|
|
featureRatio |
Tidak |
1.0 |
Rasio pengambilan sampel fitur. Rentang: (0,1]. Nilai 1.0 menonaktifkan pengambilan sampel. |
|
|
l1 |
Tidak |
0 |
Koefisien penalti L1. Nilai yang lebih besar menghasilkan distribusi node daun yang lebih seragam. Tingkatkan untuk mencegah overfitting. |
|
|
l2 |
Tidak |
1.0 |
Koefisien penalti L2. Nilai yang lebih besar menghasilkan distribusi node daun yang lebih seragam. Tingkatkan untuk mencegah overfitting. |
|
|
shrinkage |
Tidak |
0.3 |
Laju pembelajaran. Rentang: (0,1). |
|
|
sketchEps |
Tidak |
0.03 |
Ambang batas kuantil untuk pembentukan sketsa. Jumlah bucket: O(1.0/sketchEps). Nilai yang lebih kecil membuat lebih banyak bucket. Gunakan nilai default. Tidak perlu dikonfigurasi manual. Rentang: (0,1). |
|
|
minSplitLoss |
Tidak |
0 |
Penurunan loss minimum yang diperlukan untuk membagi sebuah node. Nilai yang lebih besar menghasilkan pemisahan yang lebih konservatif. |
|
|
featureNum |
Tidak |
Tidak ada |
Jumlah fitur atau ID fitur maksimum. Digunakan untuk estimasi sumber daya. |
|
|
baseScore |
Tidak |
0.5 |
Nilai prediksi awal untuk semua sampel. Disebut juga global bias. |
|
|
randSeed |
Tidak |
Tidak ada |
Seed acak (bilangan bulat). |
|
|
featureImportanceType |
Tidak |
gain |
Jenis perhitungan pentingnya fitur:
|
|
|
Parameter tuning |
coreNum |
Tidak |
Dialokasikan sistem |
Jumlah core komputasi. Nilai yang lebih besar mempercepat eksekusi. |
|
memSizePerCore |
Tidak |
Dialokasikan sistem |
Memori per core dalam MB. |
Penerapan model
Untuk menerapkan model yang dihasilkan oleh komponen PS-SMART sebagai layanan online, tambahkan komponen General-purpose Model Export di hilir komponen PS-SMART. Konfigurasikan parameter komponen tersebut seperti halnya komponen seri PS lainnya. Untuk informasi selengkapnya, lihat General-purpose Model Export.
Setelah eksekusi berhasil, terapkan layanan model di halaman PAI-EAS Model Online Service. Untuk informasi selengkapnya, lihat Deploy a service in the console.