Standardisasi adalah teknik pra-pemrosesan data yang mengonversi fitur ke dimensi seragam. Komponen Standardisasi menyatukan dimensi fitur berbeda dengan menetapkan rata-rata menjadi 0 dan deviasi standar menjadi 1. Teknik ini dapat meningkatkan konvergensi dan performa model, terutama model yang menggunakan algoritma optimasi gradien descent.
Deskripsi Algoritma
Anda dapat menstandarkan satu atau lebih kolom dalam tabel dan menyimpan hasilnya ke tabel baru.
Rumus berikut digunakan untuk standardisasi: (X - Rata-rata) / (Deviasi Standar).
Rata-rata: nilai rata-rata sampel.
Deviasi Standar: deviasi standar dari sampel. Deviasi standar digunakan ketika sampel dihitung untuk mendapatkan deviasi total. Untuk membuat nilai setelah standardisasi lebih mendekati rata-rata, Anda perlu sedikit meningkatkan deviasi standar yang dihitung menggunakan rumus
.Rumus untuk menghitung deviasi standar sampel adalah
.
mewakili rata-rata sampel X1, X2, ..., dan Xn.
Konfigurasikan komponen
Metode 1: Konfigurasikan komponen pada halaman pipeline
Tambahkan komponen Standardization pada halaman pipeline Machine Learning Designer dan konfigurasikan parameter komponen yang dijelaskan dalam tabel berikut di sisi kanan halaman.
Tab | Parameter | Deskripsi |
Pengaturan Bidang | Semua Dipilih Secara Default | Pilih semua secara default. Kolom tambahan tidak mempengaruhi hasil prediksi. |
Cadangkan Kolom Asli | Kolom yang diproses diberi awalan "stdized_". Mendukung tipe DOUBLE dan BIGINT. | |
Matriks Jarang Masukan | Menentukan apakah mendukung data masukan dalam format jarang. Jika Anda mengaktifkan fitur ini, konfigurasikan parameter berikut:
| |
Pengaturan | Inti | Jumlah core. Sistem secara otomatis mengalokasikan core yang digunakan untuk pelatihan berdasarkan volume data masukan. |
Ukuran Memori per Core | Ukuran memori setiap core. Sistem secara otomatis mengalokasikan memori berdasarkan volume data masukan. Satuan: MB. |
Metode 2: Gunakan perintah PAI
Konfigurasikan parameter komponen Standardization menggunakan perintah PAI. Anda dapat menggunakan komponen SQL Script untuk memanggil perintah PAI. Untuk informasi lebih lanjut, lihat Skenario 4: Jalankan perintah PAI dalam komponen skrip SQL.
Perintah untuk data padat
PAI -name Standardize -project algo_public -DkeepOriginal="false" -DoutputTableName="test_5" -DinputTablePartitions="pt=20150501" -DinputTableName="bank_data_partition" -DselectedColNames="euribor3m,pdays"Perintah untuk data jarang
PAI -name Standardize -project projectxlib4 -DkeepOriginal="true" -DoutputTableName="kv_standard_output" -DinputTableName=kv_standard_test -DselectedColNames="f0,f1,f2" -DenableSparse=true -DoutputParaTableName=kv_standard_model -DkvIndices=1,2,8,6 -DitemDelimiter=",";
Parameter | Diperlukan | Nilai Default | Deskripsi |
inputTableName | Ya | Tidak ada | Nama tabel masukan. |
selectedColNames | Tidak | Semua kolom | Kolom yang dipilih dari tabel masukan untuk pelatihan. Nama kolom harus dipisahkan dengan koma (,). Kolom tipe INT dan DOUBLE didukung. Jika data masukan dalam format jarang, kolom tipe STRING didukung. |
inputTablePartitions | Tidak | Semua partisi | Partisi yang dipilih dari tabel masukan untuk pelatihan. Format berikut didukung:
null Jika Anda menentukan beberapa partisi, pisahkan mereka dengan koma (,). |
outputTableName | Ya | Tidak ada | Nama tabel keluaran. |
outputParaTableName | Ya | Tidak ada | Nama tabel parameter keluaran. |
inputParaTableName | Tidak | Tidak ada | Nama tabel parameter masukan. |
keepOriginal | Tidak | false | Menentukan apakah akan mencadangkan kolom asli. Nilai valid:
|
lifecycle | Tidak | Tidak ada | Lifecycle tabel keluaran. |
coreNum | Tidak | Ditugaskan secara otomatis oleh sistem | Jumlah core. |
memSizePerCore | Tidak | Ditugaskan secara otomatis oleh sistem | Ukuran memori setiap core. |
enableSparse | Tidak | false | Menentukan apakah mendukung data masukan dalam format jarang. Nilai valid:
|
itemDelimiter | Tidak | "," | Pemisah yang digunakan antara pasangan key-value. |
kvDelimiter | Tidak | ":" | Pemisah yang digunakan antara key dan value. |
kvIndices | Tidak | Tidak ada | Indeks fitur yang memerlukan standardisasi dalam tabel yang berisi data dalam format key-value. |
Contoh
Hasilkan data masukan
drop table if exists standardize_test_input; create table standardize_test_input( col_string string, col_bigint bigint, col_double double, col_boolean boolean, col_datetime datetime); insert overwrite table standardize_test_input select * from ( select '01' as col_string, 10 as col_bigint, 10.1 as col_double, True as col_boolean, cast('2016-07-01 10:00:00' as datetime) as col_datetime union all select cast(null as string) as col_string, 11 as col_bigint, 10.2 as col_double, False as col_boolean, cast('2016-07-02 10:00:00' as datetime) as col_datetime union all select '02' as col_string, cast(null as bigint) as col_bigint, 10.3 as col_double, True as col_boolean, cast('2016-07-03 10:00:00' as datetime) as col_datetime union all select '03' as col_string, 12 as col_bigint, cast(null as double) as col_double, False as col_boolean, cast('2016-07-04 10:00:00' as datetime) as col_datetime union all select '04' as col_string, 13 as col_bigint, 10.4 as col_double, cast(null as boolean) as col_boolean, cast('2016-07-05 10:00:00' as datetime) as col_datetime union all select '05' as col_string, 14 as col_bigint, 10.5 as col_double, True as col_boolean, cast(null as datetime) as col_datetime ) tmp;
Jalankan perintah PAI
drop table if exists standardize_test_input_output; drop table if exists standardize_test_input_model_output; PAI -name Standardize -project algo_public -DoutputParaTableName="standardize_test_input_model_output" -Dlifecycle="28" -DoutputTableName="standardize_test_input_output" -DinputTableName="standardize_test_input" -DselectedColNames="col_double,col_bigint" -DkeepOriginal="true"; drop table if exists standardize_test_input_output_using_model; drop table if exists standardize_test_input_output_using_model_model_output; PAI -name Standardize -project algo_public -DoutputParaTableName="standardize_test_input_output_using_model_model_output" -DinputParaTableName="standardize_test_input_model_output" -Dlifecycle="28" -DoutputTableName="standardize_test_input_output_using_model" -DinputTableName="standardize_test_input";Masukan
standardize_test_input
col_string
col_bigint
col_double
col_boolean
col_datetime
01
10
10.1
true
2016-07-01 10:00:00
NULL
11
10.2
false
2016-07-02 10:00:00
02
NULL
10.3
true
2016-07-03 10:00:00
03
12
NULL
false
2016-07-04 10:00:00
04
13
10.4
NULL
2016-07-05 10:00:00
05
14
10.5
true
NULL
Keluaran
standardize_test_input_output
col_string
col_bigint
col_double
col_boolean
col_datetime
stdized_col_bigint
stdized_col_double
01
10
10.1
true
2016-07-01 10:00:00
-1.2649110640673518
-1.2649110640683832
NULL
11
10.2
false
2016-07-02 10:00:00
-0.6324555320336759
-0.6324555320341972
02
NULL
10.3
true
2016-07-03 10:00:00
NULL
0.0
03
12
NULL
false
2016-07-04 10:00:00
0.0
NULL
04
13
10.4
NULL
2016-07-05 10:00:00
0.6324555320336759
0.6324555320341859
05
14
10.5
true
NULL
1.2649110640673518
1.2649110640683718
standardize_test_input_model_output
fitur
json
col_bigint
{“name”: “standardize”, “type”:”bigint”, “paras”:{“mean”:12, “std”: 1.58113883008419}}
col_double
{“name”: “standardize”, “type”:”double”, “paras”:{“mean”:10.3, “std”: 0.1581138830082909}}
standardize_test_input_output_using_model
col_string
col_bigint
col_double
col_boolean
col_datetime
01
-1.2649110640673515
-1.264911064068383
true
2016-07-01 10:00:00
NULL
-0.6324555320336758
-0.6324555320341971
false
2016-07-02 10:00:00
02
NULL
0.0
true
2016-07-03 10:00:00
03
0.0
NULL
false
2016-07-04 10:00:00
04
0.6324555320336758
0.6324555320341858
NULL
2016-07-05 10:00:00
05
1.2649110640673515
1.2649110640683716
true
NULL
standardize_test_input_output_using_model_model_output
fitur
json
col_bigint
{“name”: “standardize”, “type”:”bigint”, “paras”:{“mean”:12, “std”: 1.58113883008419}}
col_double
{“name”: “standardize”, “type”:”double”, “paras”:{“mean”:10.3, “std”: 0.1581138830082909}}