Scorecard adalah alat pemodelan yang umum digunakan dalam penilaian risiko kredit. Alat ini melakukan pengelompokan untuk mendiskretisasi variabel dan menggunakan model linier, seperti regresi linier dan regresi logistik, untuk melatih model. Proses pelatihan mencakup seleksi fitur dan transformasi skor. Scorecard juga memungkinkan Anda menambahkan batasan pada variabel selama pelatihan.
Jika Anda menggunakan scorecard tanpa pengelompokan, pelatihan scorecard setara dengan regresi logistik atau linier.
Batasan
Model sementara yang dihasilkan menggunakan komponen Pelatihan Scorecard hanya dapat menyimpan data dalam tabel sementara MaxCompute. Siklus hidup default tabel sementara di Machine Learning Studio adalah 369 hari, sesuai dengan periode retensi tabel sementara yang ditentukan di ruang kerja saat ini di Machine Learning Designer. Untuk informasi lebih lanjut, lihat Kelola ruang kerja. Jika Anda ingin menggunakan model sementara untuk bisnis jangka panjang, Anda harus menyimpan data secara permanen menggunakan Tulis Tabel. Untuk detail lebih lanjut, lihat FAQ tentang komponen algoritma.
Istilah
Berikut ini menjelaskan istilah yang terlibat dalam pelatihan scorecard:
Rekayasa Fitur
Perbedaan utama antara scorecard dan model linier biasa adalah bahwa scorecard melakukan rekayasa fitur sebelum melatih model linier. Komponen Pelatihan Scorecard mendukung metode berikut untuk rekayasa fitur:
Komponen Pengelompokan digunakan untuk mendiskretisasi fitur. Kemudian, one-hot encoding dilakukan untuk setiap variabel berdasarkan hasil pengelompokan untuk menghasilkan N variabel dummy, di mana N mewakili jumlah bin.
CatatanSaat mengonversi variabel asli menjadi variabel dummy, Anda dapat menentukan batasan untuk variabel tersebut.
Komponen Pengelompokan digunakan untuk mendiskretisasi fitur. Kemudian, konversi bobot bukti (WOE) dilakukan untuk mengganti nilai asli variabel dengan nilai WOE dari bin ke mana variabel tersebut masuk.
Transformasi Skor
Dalam skenario seperti penilaian kredit, Anda perlu melakukan transformasi linier untuk mengonversi odds sampel prediksi menjadi skor. Gambar berikut menunjukkan rumus yang digunakan untuk transformasi linier.
Anda dapat menggunakan parameter berikut untuk menentukan hubungan transformasi linier:scaledValue: Menentukan skor yang diskalakan.
odds: Menentukan odds dari skor yang diskalakan.
pdo: Menentukan poin di mana odds digandakan.
Sebagai contoh, atur parameter scaledValue ke 800, parameter odds ke 50, dan parameter pdo ke 25. Dalam hal ini, dua titik berikut ditentukan untuk sebuah garis:
log(50)=a×800+b log(100)=a×825+bHitung nilai a dan b, lalu lakukan transformasi linier untuk mendapatkan skor a dan b.
Informasi penskalaan ditentukan dalam format JSON menggunakan parameter
-Dscale.{"scaledValue":800,"odds":50,"pdo":25}Jika Anda menentukan parameter
-Dscale, Anda juga harus menentukan scaledValue, odds, dan pdo.Penambahan Batasan Selama Pelatihan
Selama pelatihan scorecard, Anda dapat menambahkan batasan pada variabel. Contohnya, Anda dapat menetapkan skor bin tertentu sebagai nilai tetap, menentukan hubungan proporsional antara dua bin, atau membatasi urutan skor bin berdasarkan nilai WOE. Implementasi batasan bergantung pada algoritma optimasi dasar yang mendukung batasan. Anda dapat menentukan batasan di komponen Binning di konsol Machine Learning Platform for AI. Setelah batasan ditentukan, komponen Binning menghasilkan batasan dalam format JSON dan mentransfernya secara otomatis ke komponen pelatihan terhubung. Sistem mendukung batasan JSON berikut:
"<": Bobot variabel harus diurutkan secara menaik.
">": Bobot variabel harus diurutkan secara menurun.
"=": Bobot variabel tertentu harus bernilai tetap.
"%": Bobot dua variabel harus memenuhi hubungan proporsional.
"UP": Batas atas untuk bobot variabel. Contohnya, nilai 0,5 menunjukkan bahwa bobot variabel setelah pelatihan maksimal 0,5.
"LO": Batas bawah untuk bobot variabel. Contohnya, nilai 0,5 menunjukkan bahwa bobot variabel setelah pelatihan minimal 0,5.
Setiap batasan JSON disimpan dalam tabel sebagai string. Tabel hanya berisi satu baris dan satu kolom. Contoh:
{ "name": "feature0", "<": [ [0,1,2,3] ], ">": [ [4,5,6] ], "=": [ "3:0","4:0.25" ], "%": [ ["6:1.0","7:1.0"] ] }Batasan Bawaan
Setiap variabel asli memiliki batasan bawaan: Rata-rata skor populasi untuk setiap variabel harus 0. Karena batasan ini, nilai parameter scaled_weight dalam opsi intercept model scorecard sama dengan rata-rata skor populasi jika semua variabel dipertimbangkan.
Algoritma Optimasi
Di tab Pengaturan Parameter, pilih Opsi Lanjutan. Anda kemudian dapat mengonfigurasi algoritma optimasi yang digunakan selama pelatihan scorecard. Sistem mendukung algoritma optimasi berikut:
L-BFGS: Algoritma ini adalah algoritma optimasi orde pertama yang digunakan untuk memproses sejumlah besar data fitur. Algoritma ini tidak mendukung batasan. Jika Anda memilih algoritma ini, sistem secara otomatis mengabaikan batasan yang telah Anda tentukan.
Metode Newton: Algoritma ini adalah algoritma optimasi orde kedua klasik. Cepat dalam konvergensi dan akurat. Namun, algoritma ini tidak cocok untuk memproses sejumlah besar data fitur karena perlu menghitung matriks Hessian orde kedua. Algoritma ini juga tidak mendukung batasan. Jika Anda memilih algoritma ini, sistem secara otomatis mengabaikan batasan yang telah Anda tentukan.
Metode Barrier: Algoritma ini adalah algoritma optimasi orde kedua. Jika algoritma ini tidak mengandung batasan, maka sepenuhnya setara dengan algoritma Metode Newton. Algoritma Metode Barrier memberikan kinerja komputasi dan akurasi hampir sama dengan algoritma SQP. Dalam kebanyakan kasus, kami sarankan Anda memilih SQP.
SQP
Algoritma ini adalah algoritma optimasi orde kedua. Jika algoritma ini tidak mengandung batasan, maka sepenuhnya setara dengan algoritma Metode Newton. Algoritma SQP memberikan kinerja komputasi dan akurasi hampir sama dengan algoritma Metode Barrier. Dalam kebanyakan kasus, kami sarankan Anda memilih SQP.
CatatanL-BFGS dan Metode Newton adalah algoritma optimasi tanpa batasan. Metode Barrier dan SQP adalah algoritma optimasi dengan batasan.
Jika Anda tidak terbiasa dengan algoritma optimasi, kami sarankan Anda mengatur parameter Optimization Method ke Pemilihan Otomatis. Dalam hal ini, sistem memilih algoritma yang paling sesuai berdasarkan jumlah data dan batasan.
Seleksi Fitur
Komponen Pelatihan Scorecard mendukung seleksi fitur bertahap. Seleksi fitur bertahap merupakan kombinasi dari seleksi maju dan mundur. Setiap kali sistem melakukan seleksi maju untuk memilih variabel baru dan menambahkannya ke model, sistem juga melakukan seleksi mundur untuk menghapus variabel yang signifikansinya tidak memenuhi persyaratan. Seleksi fitur bertahap mendukung berbagai fungsi dan metode transformasi fitur, sehingga mendukung berbagai standar seleksi. Standar berikut didukung:
Kontribusi Marginal: Standar ini dapat diterapkan pada semua fungsi dan metode rekayasa fitur.
Untuk standar ini, dua model harus dilatih: Model A dan Model B. Model A tidak mengandung Variabel X, sedangkan Model B mengandung Variabel X selain semua variabel Model A. Perbedaan antara fungsi kedua model dalam konvergensi akhir adalah kontribusi marginal Variabel X terhadap semua variabel lainnya di Model B. Dalam skenario di mana variabel diubah menjadi variabel dummy, kontribusi marginal Variabel X adalah perbedaan antara fungsi semua variabel dummy di Model A dan fungsi semua variabel dummy di Model B. Oleh karena itu, standar kontribusi marginal didukung oleh semua metode rekayasa fitur.
Kontribusi marginal fleksibel dan tidak terbatas pada jenis model tertentu. Hanya variabel yang berkontribusi pada fungsi yang dilewatkan ke model. Kontribusi marginal memiliki kelemahan dibandingkan dengan signifikansi statistik. Biasanya, 0,05 digunakan sebagai ambang batas untuk signifikansi statistik. Kontribusi marginal tidak memberikan ambang batas yang direkomendasikan untuk pemula. Kami sarankan Anda mengatur ambang batas ke 10E-5.
Uji Skor: Standar ini hanya mendukung konversi WOE dan regresi logistik tanpa rekayasa fitur.
Selama seleksi maju, model yang hanya memiliki opsi intercept dilatih terlebih dahulu. Dalam setiap iterasi berikutnya, chi-kuadrat skor variabel yang belum dilewatkan ke model diukur. Variabel dengan chi-kuadrat skor terbesar dilewatkan ke model. Selain itu, nilai-p variabel dengan chi-kuadrat skor terbesar dihitung berdasarkan distribusi chi-kuadrat. Jika nilai-p variabel lebih besar dari nilai SLENTRY yang diberikan, variabel tidak dilewatkan ke model, dan seleksi fitur dihentikan.
Setelah seleksi maju selesai, seleksi mundur dilakukan untuk variabel yang dilewatkan ke model. Chi-kuadrat Wald variabel dan nilai-p terkait dihitung. Jika nilai-p lebih besar dari nilai SLSTAY yang diberikan, variabel dihapus dari model. Kemudian, sistem memulai iterasi baru.
Uji F: Standar ini hanya mendukung konversi WOE dan regresi linier tanpa rekayasa fitur.
Selama seleksi maju, variabel yang hanya memiliki opsi intercept dilatih terlebih dahulu. Dalam setiap iterasi berikutnya, nilai-F variabel yang tidak dilewatkan ke model dihitung. Perhitungan nilai-F mirip dengan perhitungan kontribusi marginal. Dua model harus dilatih untuk menghitung nilai-F variabel. Nilai-F mengikuti distribusi F. Nilai-p terkait dapat dihitung berdasarkan fungsi densitas probabilitas distribusi F. Jika nilai-p lebih besar dari nilai SLENTRY yang diberikan, variabel tidak dilewatkan ke model, dan seleksi maju dihentikan.
Selama seleksi mundur, nilai-F digunakan untuk menghitung signifikansi variabel dengan cara yang mirip dengan uji skor.
Pemilihan Paksa Variabel yang Ingin Anda Lewatkan ke Model
Sebelum seleksi fitur dilakukan, Anda dapat menentukan variabel yang ingin Anda lewatkan secara paksa ke model. Tidak ada seleksi maju atau mundur yang dilakukan untuk variabel yang ditentukan. Variabel ini langsung dilewatkan ke model terlepas dari signifikansinya. Anda dapat menentukan jumlah iterasi dan ambang batas signifikansi menggunakan parameter -Dselected. Tentukan parameter ini dalam format JSON. Contoh:
{"max_step":2, "slentry": 0.0001, "slstay": 0.0001}Jika parameter -Dselected dibiarkan kosong atau parameter max_step diatur ke 0, tidak ada seleksi fitur yang dilakukan.
Pengaturan parameter
Machine Learning Designer memungkinkan Anda mengonfigurasi komponen Pelatihan Scorecard secara visual atau dengan menjalankan perintah Platform Machine Learning for AI. Kode berikut memberikan 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=8Parameter | Deskripsi | Diperlukan | Default |
inputTableName | Nama tabel fitur input. | Ya | Tidak tersedia |
inputTablePartitions | Partisi yang dipilih dari tabel fitur input. | Tidak | Tabel lengkap |
inputBinTableName | Nama tabel hasil pengelompokan. Jika Anda menentukan parameter ini, sistem secara otomatis melakukan diskretisasi untuk fitur berdasarkan aturan pengelompokan dalam tabel hasil pengelompokan. | Tidak | Tidak tersedia |
featureColNames | Kolom fitur yang dipilih dari tabel input. | Tidak | Semua kolom kecuali kolom label |
labelColName | Nama kolom label. | Ya | Tidak tersedia |
outputTableName | Nama tabel model output. | Ya | Tidak tersedia |
inputConstraintTableName | Nama tabel yang menyimpan batasan. Batasan adalah string JSON yang disimpan dalam sel tabel. | Tidak | Tidak tersedia |
optimization | Algoritma optimasi. Nilai valid:
Hanya sqp dan barrier_method yang mendukung batasan. Jika Anda mengatur parameter optimasi ke auto, sistem secara otomatis memilih algoritma optimasi yang sesuai berdasarkan data pengguna dan pengaturan parameter terkait. Jika Anda tidak terbiasa dengan algoritma optimasi, kami sarankan Anda mengatur parameter optimasi ke auto. | Tidak | auto |
loss | Jenis loss. Nilai valid: logistic_regression dan least_square. | Tidak | logistic_regression |
iterations | Jumlah maksimum iterasi untuk optimasi. | Tidak | 100 |
l1Weight | Berat parameter Regularisasi L1. Parameter ini valid hanya jika parameter optimasi diatur ke lbfgs. | Tidak | 0 |
l2Weight | Berat parameter Regularisasi L2. | Tidak | 0 |
m | Ukuran langkah historis untuk optimasi yang dilakukan menggunakan algoritma L-BFGS. Parameter ini valid hanya jika parameter optimasi diatur ke lbfgs. | Tidak | 10 |
scale | Informasi penskalaan bobot scorecard. | Tidak | Kosong |
selected | Menentukan apakah akan mengaktifkan seleksi fitur selama pelatihan scorecard. | Tidak | Kosong |
convergenceTolerance | Toleransi konvergensi. | Tidak | 1e-6 |
positiveLabel | Menentukan apakah sampel adalah sampel positif. | Tidak | 1 |
lifecycle | Siklus hidup tabel output. | Tidak | Tidak tersedia |
coreNum | Jumlah core. | Tidak | Ditentukan oleh sistem |
memSizePerCore | Ukuran memori setiap core. Unit: MB. | Tidak | Ditentukan oleh sistem |
Output
Komponen Pelatihan Scorecard menghasilkan data ke laporan model. Laporan model berisi statistik evaluasi model dasar, seperti informasi pengelompokan, batasan pengelompokan, nilai WOE, dan informasi kontribusi marginal. Tabel berikut menjelaskan kolom dalam laporan model.
Kolom | Tipe | Deskripsi |
feaname | STRING | Nama fitur. |
binid | BIGINT | ID bin. |
bin | STRING | Deskripsi bin, yang menunjukkan interval bin. |
constraint | STRING | Batasan yang ditambahkan ke bin selama pelatihan. |
weight | DOUBLE | Bobot variabel pengelompokan. Untuk model non-scorecard tanpa pengelompokan, bidang ini menunjukkan bobot variabel model. |
scaled_weight | DOUBLE | Skor yang ditransformasi secara linier dari bobot variabel pengelompokan dalam pelatihan scorecard. |
woe | DOUBLE | Metric. Menunjukkan nilai WOE bin dalam set pelatihan. |
contribution | DOUBLE | Metric. Menunjukkan nilai kontribusi marginal bin dalam set pelatihan. |
total | BIGINT | Metric. Menunjukkan jumlah total sampel dalam bin di set pelatihan. |
positive | BIGINT | Metric. Menunjukkan jumlah sampel positif dalam bin di set pelatihan. |
negative | BIGINT | Metric. Menunjukkan jumlah sampel negatif dalam bin di set pelatihan. |
percentage_pos | DOUBLE | Metric. Menunjukkan proporsi sampel positif dalam bin terhadap total sampel positif di set pelatihan. |
percentage_neg | DOUBLE | Metric. Menunjukkan proporsi sampel negatif dalam bin terhadap total sampel negatif di set pelatihan. |
test_woe | DOUBLE | Metric. Menunjukkan nilai WOE bin dalam set pengujian. |
test_contribution | DOUBLE | Metric. Menunjukkan nilai kontribusi marginal bin dalam set pengujian. |
test_total | BIGINT | Metric. Menunjukkan jumlah total sampel dalam bin di set pengujian. |
test_positive | BIGINT | Metric. Menunjukkan jumlah sampel positif dalam bin di set pengujian. |
test_negative | BIGINT | Metric. Menunjukkan jumlah sampel negatif dalam bin di set pengujian. |
test_percentage_pos | DOUBLE | Metric. Menunjukkan proporsi sampel positif dalam bin terhadap total sampel positif di set pengujian. |
test_percentage_neg | DOUBLE | Metric. Menunjukkan proporsi sampel negatif dalam bin terhadap total sampel negatif di set pengujian. |