Komponen Pelatihan Scorecard melatih model penilaian kredit menggunakan regresi logistik atau linier dengan rekayasa fitur bawaan. Berbeda dari regresi linier standar, komponen ini menerapkan diskretisasi fitur berbasis pengelompokan (binning) sebelum pelatihan dan secara opsional mentransformasikan fitur menggunakan weight of evidence (WOE). Proses pelatihan mendukung transformasi skor, optimisasi berbasis kendala, serta pemilihan fitur secara bertahap (stepwise).
Tanpa pengelompokan, pelatihan scorecard setara dengan regresi logistik atau linier standar.
Batasan
Komponen Pelatihan Scorecard menyimpan output modelnya dalam tabel sementara MaxCompute. Periode retensi default di Machine Learning Studio adalah 369 hari, yang sesuai dengan siklus hidup tabel sementara yang dikonfigurasi untuk ruang kerja saat ini di Machine Learning Designer. Untuk detailnya, lihat Mengelola ruang kerja.
Untuk menyimpan model melebihi periode retensi default, pertahankan model tersebut menggunakan komponen Write Table. Untuk informasi lebih lanjut, lihat FAQ tentang komponen algoritma.
Konsep utama
Rekayasa fitur
Perbedaan utama antara pelatihan scorecard dan pemodelan linier standar adalah bahwa pelatihan scorecard menerapkan rekayasa fitur sebelum menyesuaikan model. Komponen Binning mendukung dua pendekatan:
One-hot encoding: Mengelompokkan setiap variabel dan menghasilkan N variabel dummy (N = jumlah bin). Anda dapat menerapkan kendala pada masing-masing variabel dummy.
Konversi WOE: Mengganti nilai variabel asli dengan nilai weight of evidence (WOE) dari bin-nya. Hal ini menyandikan informasi prediktif langsung ke dalam fitur.
Transformasi skor
Dalam penilaian kredit, prediksi mentah model (log-odds) harus dikonversi menjadi skor yang dapat diinterpretasikan. Pelatihan Scorecard menerapkan transformasi linier menggunakan tiga parameter:
| Parameter | Deskripsi |
|---|---|
scaledValue | Skor yang diberikan pada nilai odds referensi |
odds | Odds yang bersesuaian dengan scaledValue |
pdo | Poin untuk menggandakan odds |
Ketiga parameter ini menentukan dua titik pada garis skor. Sebagai contoh, dengan scaledValue=800, odds=50, dan pdo=25:
log(50) = a × 800 + b
log(100) = a × 825 + bSelesaikan untuk a dan b guna memperoleh pemetaan linier, lalu terapkan untuk mentransformasikan bobot model menjadi skor.
Teruskan konfigurasi transformasi menggunakan parameter -Dscale dalam format JSON:
{"scaledValue": 800, "odds": 50, "pdo": 25}Ketiga field wajib diisi jika parameter -Dscale ditentukan.
Kendala
Selama pelatihan, Anda dapat menambahkan kendala untuk mengontrol cara bobot variabel dipelajari. Tentukan kendala di komponen Binning — kendala tersebut akan secara otomatis diteruskan ke Pelatihan Scorecard sebagai string JSON yang disimpan dalam tabel satu sel (inputConstraintTableName).
Kendala hanya diterapkan oleh algoritma optimisasi SQP dan barrier method. Jika Anda memilih L-BFGS atau metode Newton, semua kendala akan diabaikan.
Jenis kendala yang didukung:
| Kendala | Efek |
|---|---|
"<" | Bobot diurutkan secara ascending |
">" | Bobot diurutkan secara descending |
"=" | Bobot bin tertentu diatur ke nilai tetap |
"%" | Bobot dua bin harus memenuhi hubungan proporsional |
"UP" | Batas atas pada bobot suatu bin. Misalnya, nilai 0,5 menunjukkan bahwa bobot variabel setelah pelatihan paling besar 0,5. |
"LO" | Batas bawah pada bobot suatu bin. Misalnya, nilai 0,5 menunjukkan bahwa bobot variabel setelah pelatihan paling kecil 0,5. |
Contoh JSON kendala (satu baris, satu kolom dalam tabel kendala):
{
"name": "feature0",
"<": [[0, 1, 2, 3]],
">": [[4, 5, 6]],
"=": ["3:0", "4:0.25"],
"%": [["6:1.0", "7:1.0"]]
}Kendala bawaan: Untuk setiap variabel, skor rata-rata pada populasi pelatihan selalu 0. Akibatnya, nilai scaled_weight pada intercept sama dengan skor rata-rata populasi di seluruh variabel.
Algoritma optimisasi
Pada tab Parameters Setting, pilih Advanced Options untuk mengonfigurasi algoritma optimisasi.
| Algoritma | Pesanan | Mendukung kendala | Paling cocok untuk |
|---|---|---|---|
| L-BFGS | Pertama | Tidak | Set fitur besar |
| Newton's method | Kedua | Tidak | Set fitur kecil hingga menengah; konvergensi cepat |
| Barrier method | Kedua | Ya | Setara dengan SQP dalam sebagian besar kasus |
| SQP | Kedua | Ya | Penggunaan umum dengan kendala (direkomendasikan) |
Jika Anda tidak familiar dengan algoritma optimisasi, atur Optimization Method ke Auto Selection. Sistem akan memilih algoritma paling tepat berdasarkan volume data dan keberadaan kendala.
Pemilihan fitur
Komponen ini mendukung pemilihan fitur secara bertahap (stepwise) — kombinasi dari seleksi maju (forward) dan mundur (backward). Setelah setiap langkah maju (menambahkan variabel), proses mundur menghapus variabel yang tidak lagi memenuhi ambang batas signifikansi.
Gunakan tabel berikut untuk memilih standar seleksi yang tepat untuk konfigurasi Anda:
| Standar seleksi | Rekayasa fitur | Jenis model | Ambang batas |
|---|---|---|---|
| Marginal contribution | One-hot atau WOE (apa pun) | Apa pun | Titik awal yang direkomendasikan: 10E-5 |
| Score test | Hanya konversi WOE | Regresi logistik | SLENTRY (majuan), SLSTAY (mundur) melalui chi-square |
| F test | Hanya konversi WOE | Regresi linier | SLENTRY (majuan), SLSTAY (mundur) melalui distribusi F |
Marginal contribution mengukur selisih nilai fungsi objektif antara model dengan dan tanpa variabel X. Standar ini berlaku untuk semua kombinasi rekayasa fitur dan jenis model, sehingga merupakan standar paling fleksibel.
Score test (majuan): Pada setiap iterasi, chi-square skor setiap variabel kandidat dihitung. Variabel dengan chi-square tertinggi ditambahkan, asalkan nilai-p-nya di bawah SLENTRY. Proses mundur menggunakan chi-square Wald; variabel dengan nilai-p di atas SLSTAY dihapus.
F test (majuan): Mirip dengan score test tetapi menggunakan distribusi F. Nilai F dihitung untuk setiap variabel kandidat; variabel dengan nilai-p di atas SLENTRY dikecualikan. Proses mundur menerapkan logika nilai F yang sama.
Pemilihan variabel paksa: Tentukan variabel yang harus disertakan tanpa syarat — tidak ada seleksi maju atau mundur yang diterapkan pada variabel tersebut. Konfigurasikan ini menggunakan parameter -Dselected:
{"max_step": 2, "slentry": 0.0001, "slstay": 0.0001}Jika parameter -Dselected dibiarkan kosong atau max_step diatur ke 0, tidak ada pemilihan fitur yang dilakukan.
Parameter
Konfigurasikan komponen Pelatihan Scorecard melalui antarmuka Machine Learning Designer atau dengan menjalankan perintah PAI secara langsung. Contoh perintah:
pai -name=linear_model -project=algo_public
-DinputTableName=input_data_table
-DinputBinTableName=input_bin_table
-DinputConstraintTableName=input_constraint_table
-DoutputTableName=output_model_table
-DlabelColName=label
-DfeatureColNames=feaname1,feaname2
-Doptimization=barrier_method
-Dloss=logistic_regression
-Dlifecycle=8| Parameter | Wajib | Default | Deskripsi |
|---|---|---|---|
inputTableName | Ya | — | Nama tabel fitur input |
labelColName | Ya | — | Nama kolom label |
outputTableName | Ya | — | Nama tabel model output |
inputTablePartitions | Tidak | Seluruh tabel | Partisi yang dibaca dari tabel fitur input |
inputBinTableName | Tidak | — | Tabel hasil pengelompokan; memicu diskretisasi fitur otomatis berdasarkan aturan pengelompokan |
featureColNames | Tidak | Semua kolom non-label | Kolom fitur yang disertakan dalam pelatihan |
inputConstraintTableName | Tidak | — | Tabel yang berisi JSON kendala (satu sel) |
optimization | Tidak | auto | Algoritma optimisasi. Nilai valid: lbfgs, newton, barrier_method, sqp, auto |
loss | Tidak | logistic_regression | Fungsi loss. Nilai valid: logistic_regression, least_square |
iterations | Tidak | 100 | Jumlah maksimum iterasi optimisasi |
l1Weight | Tidak | 0 | Bobot regularisasi L1. Hanya berlaku jika optimization=lbfgs |
l2Weight | Tidak | 0 | Bobot regularisasi L2 |
m | Tidak | 10 | Ukuran langkah historis untuk L-BFGS. Hanya berlaku jika optimization=lbfgs |
scale | Tidak | — | Konfigurasi transformasi skor dalam format JSON |
selected | Tidak | — | Konfigurasi pemilihan fitur dalam format JSON |
convergenceTolerance | Tidak | 1e-6 | Toleransi konvergensi |
positiveLabel | Tidak | 1 | Nilai label untuk contoh positif |
lifecycle | Tidak | — | Siklus hidup tabel output (hari) |
coreNum | Tidak | Ditentukan sistem | Jumlah core |
memSizePerCore | Tidak | Ditentukan sistem | Memori per core (MB) |
Output
Komponen Pelatihan Scorecard menghasilkan laporan model dengan statistik evaluasi untuk setiap bin fitur. Laporan tersebut berisi tiga kelompok field:
Metadata fitur dan bin:
feaname,binid,bin,constraint,weight,scaled_weightStatistik set pelatihan:
woe,contribution,total,positive,negative,percentage_pos,percentage_negStatistik set data uji:
test_woe,test_contribution,test_total,test_positive,test_negative,test_percentage_pos,test_percentage_neg
Referensi lengkap kolom:
| Kolom | Tipe | Deskripsi |
|---|---|---|
feaname | STRING | Nama fitur |
binid | BIGINT | ID bin |
bin | STRING | Deskripsi interval bin |
constraint | STRING | Kendala yang diterapkan pada bin selama pelatihan |
weight | DOUBLE | Bobot bin. Untuk model non-scorecard tanpa pengelompokan, ini adalah bobot variabel model |
scaled_weight | DOUBLE | Skor yang ditransformasikan secara linier dari bobot bin (hanya untuk pelatihan scorecard) |
woe | DOUBLE | Nilai WOE bin pada set pelatihan |
contribution | DOUBLE | Kontribusi marginal bin pada set pelatihan |
total | BIGINT | Total sampel dalam bin (set pelatihan) |
positive | BIGINT | Sampel positif dalam bin (set pelatihan) |
negative | BIGINT | Sampel negatif dalam bin (set pelatihan) |
percentage_pos | DOUBLE | Proporsi sampel positif bin terhadap total sampel positif (set pelatihan) |
percentage_neg | DOUBLE | Proporsi sampel negatif bin terhadap total sampel negatif (set pelatihan) |
test_woe | DOUBLE | Nilai WOE bin pada set data uji |
test_contribution | DOUBLE | Kontribusi marginal bin pada set data uji |
test_total | BIGINT | Total sampel dalam bin (set data uji) |
test_positive | BIGINT | Sampel positif dalam bin (set data uji) |
test_negative | BIGINT | Sampel negatif dalam bin (set data uji) |
test_percentage_pos | DOUBLE | Proporsi sampel positif bin terhadap total sampel positif (set data uji) |
test_percentage_neg | DOUBLE | Proporsi sampel negatif bin terhadap total sampel negatif (set data uji) |