All Products
Search
Document Center

Platform For AI:Regresi logistik untuk klasifikasi multikelas

Last Updated:Apr 02, 2026

Regresi logistik standar digunakan untuk klasifikasi biner. Komponen Logistic Regression for Multiclass Classification di Platform for AI (PAI) memperluas fungsionalitas tersebut untuk mendukung klasifikasi multikelas dengan menggunakan algoritma optimisasi L-BFGS. Komponen ini menerima data masukan dalam format sparse maupun dense.

Konfigurasikan komponen

Terdapat dua metode konfigurasi yang tersedia: gunakan Machine Learning Designer untuk penyiapan visual tanpa kode, atau gunakan perintah PAI untuk alur kerja deskriptif atau otomatis dalam pipeline.

Metode 1: Konfigurasi di Machine Learning Designer

Buka komponen Logistic Regression for Multiclass Classification di Machine Learning Designer (sebelumnya Machine Learning Studio) dan atur parameter berikut.

Fields Setting tab

ParameterDeskripsi
Training feature columnsKolom fitur yang dipilih dari tabel input untuk pelatihan. Mendukung tipe data DOUBLE dan BIGINT. Maksimal 20 juta fitur didukung.
Target columnsKolom label pada tabel input.
Sparse formatApakah data input dalam format sparse.

Parameters Setting tab

ParameterDeskripsi
Regularization typePenalti yang diterapkan pada model selama pelatihan. Nilai yang valid: L1, L2, dan None.
Maximum number of iterationsJumlah maksimum iterasi L-BFGS. Default: 100.
Regularization coefficientKekuatan penalti regularisasi. Tidak berlaku ketika Regularization type diatur ke None.
Minimum convergence devianceAmbang batas konvergensi untuk algoritma L-BFGS. Pelatihan berhenti ketika selisih log-likelihood antara iterasi berturut-turut turun di bawah nilai ini. Default: 0.000001.

Metode 2: Gunakan perintah PAI

Teruskan parameter langsung ke algoritma logisticregression_multi menggunakan perintah PAI. Jalankan perintah tersebut melalui komponen SQL Script. Untuk informasi lebih lanjut, lihat SQL Script.

Contoh berikut menunjukkan sintaks perintah:

PAI -name logisticregression_multi
    -project algo_public
    -DmodelName="xlab_m_logistic_regression_6096"
    -DregularizedLevel="1"
    -DmaxIter="100"
    -DregularizedType="l1"
    -Depsilon="0.000001"
    -DlabelColName="y"
    -DfeatureColNames="pdays,emp_var_rate"
    -DgoodValue="1"
    -DinputTableName="bank_data"

Parameter

ParameterWajibDefaultDeskripsi
inputTableNameYaNama tabel input.
featureColNamesTidakSemua kolom numerikKolom fitur yang dipilih dari tabel input untuk pelatihan. Maksimal 20 juta fitur didukung.
labelColNameYaNama kolom label.
inputTablePartitionsTidakSeluruh tabelPartisi yang dipilih dari tabel input. Gunakan partition_name=value untuk partisi tunggal dan name1=value1/name2=value2 untuk partisi multi-level. Pisahkan beberapa partisi dengan koma (,).
modelNameYaNama model output.
regularizedTypeTidakl1Jenis regularisasi. Nilai yang valid: l1, l2, dan None.
regularizedLevelTidak1.0Koefisien regularisasi. Tidak berlaku ketika regularizedType bernilai None.
maxIterTidak100Jumlah maksimum iterasi L-BFGS.
epsilonTidak1.0e-06Ambang batas konvergensi untuk algoritma L-BFGS. Pelatihan berhenti ketika selisih log-likelihood antara iterasi berturut-turut kurang dari nilai ini.
enableSparseTidakfalseApakah data input dalam format sparse. Nilai yang valid: true dan false.
itemDelimiterTidak,Pembatas antar pasangan kunci-nilai dalam input format sparse.
kvDelimiterTidak:Pembatas antara kunci dan nilai dalam input format sparse.
coreNumTidakDefault sistemJumlah core.
memSizePerCoreTidakDefault sistemMemori yang dialokasikan per core, dalam MB.

Contoh

Contoh ini melatih model regresi logistik multikelas pada dataset dengan empat fitur dan menjalankan prediksi. Semua perintah dijalankan melalui komponen SQL Script.

Langkah 1: Buat data pelatihan

Jalankan pernyataan SQL berikut untuk membuat tabel multi_lr_test_input:

drop table if exists multi_lr_test_input;
create table multi_lr_test_input
as
select
    *
from
(
    select
        cast(1 as double) as f0,
        cast(0 as double) as f1,
        cast(0 as double) as f2,
        cast(0 as double) as f3,
        cast(0 as bigint) as label
    union all
        select
            cast(0 as double) as f0,
            cast(1 as double) as f1,
            cast(0 as double) as f2,
            cast(0 as double) as f3,
            cast(0 as bigint) as label
    union all
        select
            cast(0 as double) as f0,
            cast(0 as double) as f1,
            cast(1 as double) as f2,
            cast(0 as double) as f3,
            cast(2 as bigint) as label
    union all
        select
            cast(0 as double) as f0,
            cast(0 as double) as f1,
            cast(0 as double) as f2,
            cast(1 as double) as f3,
            cast(1 as bigint) as label
) a;

Tabel tersebut berisi empat kolom fitur DOUBLE (f0f3) dan satu kolom label BIGINT:

f0f1f2f3label
1.00.00.00.00
0.00.01.00.02
0.00.00.01.01
0.01.00.00.00

Langkah 2: Latih model

Jalankan perintah PAI berikut untuk melatih model dan menyimpannya sebagai multi_lr_test_model:

drop offlinemodel if exists multi_lr_test_model;
PAI -name logisticregression_multi
    -project algo_public
    -DmodelName="multi_lr_test_model"
    -DitemDelimiter=","
    -DregularizedLevel="1"
    -DmaxIter="100"
    -DregularizedType="None"
    -Depsilon="0.000001"
    -DkvDelimiter=":"
    -DlabelColName="label"
    -DfeatureColNames="f0,f1,f2,f3"
    -DenableSparse="false"
    -DinputTableName="multi_lr_test_input";

Langkah 3: Jalankan prediksi

Jalankan perintah PAI berikut untuk menghasilkan prediksi dan menyimpan hasilnya ke multi_lr_test_prediction_result:

drop table if exists multi_lr_test_prediction_result;
PAI -name prediction
    -project algo_public
    -DdetailColName="prediction_detail"
    -DmodelName="multi_lr_test_model"
    -DitemDelimiter=","
    -DresultColName="prediction_result"
    -Dlifecycle="28"
    -DoutputTableName="multi_lr_test_prediction_result"
    -DscoreColName="prediction_score"
    -DkvDelimiter=":"
    -DinputTableName="multi_lr_test_input"
    -DenableSparse="false"
    -DappendColNames="label";

Langkah 4: Lihat hasil

Kueri tabel multi_lr_test_prediction_result untuk meninjau output prediksi:

labelprediction_resultprediction_scoreprediction_detail
000.9999997274902165{"0": 0.9999997274902165, "1": 2.324679066261573e-07, "2": 2.324679066261569e-07}
000.9999997274902165{"0": 0.9999997274902165, "1": 2.324679066261573e-07, "2": 2.324679066261569e-07}
220.9999999155958832{"0": 2.018833979850994e-07, "1": 2.324679066261573e-07, "2": 0.9999999155958832}
110.9999999155958832{"0": 2.018833979850994e-07, "1": 0.9999999155958832, "2": 2.324679066261569e-07}

Kolom output berisi informasi berikut:

  • prediction_result: Label kelas yang diprediksi.

  • prediction_score: Probabilitas yang diberikan untuk kelas yang diprediksi.

  • prediction_detail: Objek JSON yang memetakan setiap label kelas ke probabilitas prediksinya. Setiap kunci adalah label kelas dan setiap nilai adalah tingkat kepercayaan model terhadap kelas tersebut. Misalnya, {"0": 0.999..., "1": 2.32e-07, "2": 2.32e-07} menunjukkan bahwa model memberikan kepastian hampir mutlak pada kelas 0 dan probabilitas hampir nol untuk kelas 1 dan 2.