One hot encoding mengonversi fitur dengan m nilai yang mungkin menjadi m fitur biner, masing-masing saling eksklusif. Hanya satu fitur yang aktif pada waktu tertentu, menghasilkan dataset yang jarang setelah pengkodean. Outputnya adalah struktur kunci-nilai yang jarang.
Ikhtisar
Komponen One Hot Encoding menyediakan fitur pelatihan dan prediksi:
Pelatihan:
Node input: Node input kiri (Input Table Name) digunakan untuk data pelatihan. Selama pelatihan, node input kanan tidak diperlukan.

Node output: Komponen ini menyediakan dua node output. Node kiri adalah tabel hasil pengkodean, dan node kanan adalah tabel model yang digunakan untuk mengkodekan data baru dengan tipe yang sama.
Prediksi:
Node input kanan (Input Model Table) digunakan untuk input model. Anda dapat menggunakan model one hot yang ada untuk mengkodekan data baru.
Konfigurasikan komponen
Anda dapat menggunakan salah satu metode berikut untuk mengonfigurasi komponen One Hot Encoding.
Metode 1: Konfigurasikan komponen di halaman pipeline
Konfigurasikan parameter berikut di halaman pipeline.
Tab | Parameter | Deskripsi |
Fields Setting | Select Binary Column | Wajib. Bidang-bidang yang memerlukan binarisasi. |
Other Reserved Features | Fitur-fitur yang dicadangkan dan diekspor dalam format kunci-nilai. Bidang yang dipilih diekspor sebagai fitur dalam format kunci-nilai. Bidang tersebut harus bertipe DOUBLE. Mereka tidak tunduk pada one-hot encoding dan dikodekan mulai dari 0. | |
Appended Columns | Opsional. Kolom-kolom yang ditambahkan ke tabel output. | |
Parameters Setting | Lifecycle | Siklus hidup tabel output. Nilai default: 7. |
Output table type | Tipe tabel output. Nilai valid: KV dan Table. Jika jumlah fitur yang memerlukan diskretisasi besar, kami sarankan Anda menetapkan parameter ini ke KV. Jika Anda menetapkan parameter ini ke Table, tabel output dapat berisi maksimal 1.024 kolom. | |
Cores | Jumlah core. | |
Memory Size per Node | Ukuran memori setiap core. Unit: MB. | |
Delete Encoding of Last Enumeration | Jika Anda menetapkan ke true, independensi linear data yang dikodekan dijamin. | |
Ignore Empty Elements | Jika Anda menetapkan ke true, elemen kosong tidak dikodekan. |
Metode 2: Gunakan perintah PAI
Konfigurasikan parameter komponen menggunakan perintah PAI. Anda dapat menggunakan komponen SQL Script untuk memanggil perintah PAI. Untuk informasi lebih lanjut, lihat SQL Script.
PAI -name one_hot
-project algo_public
-DinputTable=one_hot_test
-DbinaryCols=f0,f1,f2
-DmodelTable=one_hot_model
-DoutputTable=one_hot_output
-Dlifecycle=28;Parameter | Wajib | Deskripsi | Nilai default |
inputTable | Ya | Nama tabel input. | Tidak ada |
inputTablePartitions | Tidak | Partisi-partisi yang dipilih dari tabel input untuk pelatihan. | Semua partisi tabel input |
binaryCols | Ya | Bidang-bidang yang memerlukan one-hot encoding. Bidang-bidang ini harus merupakan fitur enumerasi, dan tipe datanya tidak dibatasi. | Tidak ada |
reserveCols | Tidak | Bidang-bidang yang dipilih yang diekspor sebagai fitur dalam format kunci-nilai. Bidang tersebut harus bertipe DOUBLE. Mereka tidak tunduk pada one-hot encoding dan dikodekan mulai dari 0. | String kosong |
appendCols | Tidak | Bidang-bidang yang dipilih yang diekspor ke tabel output sama seperti di tabel input. | Tidak ada |
outputTable | Ya | Tabel output yang dihasilkan setelah one-hot encoding. Hasil pengkodean disimpan dalam format kunci-nilai. | Tidak ada |
inputModelTable | Tidak | Tabel model yang digunakan untuk pengkodean. Catatan Salah satu dari inputModelTable dan outputModelTable harus berupa string non-kosong. Saat inputModelTable tidak kosong, tabel yang sesuai harus berupa tabel model non-kosong. | String kosong |
outputModelTable | Tidak | Tabel model output. Catatan Salah satu dari inputModelTable dan outputModelTable harus berupa string non-kosong. | String kosong |
lifecycle | Tidak | Siklus hidup tabel output. | 7 |
dropLast | Ya | Menentukan apakah akan menghapus hasil pengkodean enumerator terakhir. Jika parameter ini diatur ke true, independensi linear data yang dikodekan dijamin. | false |
outputTableType | Ya | Tipe tabel output. Nilai valid: kv (tabel jarang) dan table (tabel padat). Jika jumlah fitur yang memerlukan diskretisasi besar, kami sarankan Anda menetapkan parameter ini ke kv. Jika Anda menetapkan parameter ini ke table, tabel output dapat berisi maksimal 1.024 kolom. Jika jumlah kolom yang diekspor melebihi nilai tersebut, kesalahan akan dilaporkan. | kv |
ignoreNull | Ya | Menentukan apakah mengabaikan elemen kosong dalam data yang memerlukan pengkodean. Jika parameter ini diatur ke true, elemen kosong tidak dikodekan. | false |
coreNum | Tidak | Jumlah core. | Ditentukan oleh sistem |
memSizePerCore | Tidak | Ukuran memori setiap core. Unit: MB. Nilai valid: [2048,64 × 1024]. | Ditentukan oleh sistem |
Bidang kolom pengkodean dapat mendukung hingga puluhan juta nilai diskrit.
Saat menggunakan model yang telah dilatih untuk pengkodean selanjutnya, parameter dropLast, ignoreNull, dan reserveCols tetap dalam model dan tidak dapat diubah. Untuk mengubah parameter ini, Anda harus melatih ulang.
Secara default, tabel kv yang dihasilkan oleh One Hot Encoding menggunakan penomoran berbasis nol.
Saat mengkodekan data baru menggunakan model, jika data tersebut berisi nilai diskrit yang tidak ada dalam tabel pemetaan model, nilai-nilai tersebut diabaikan dan tidak dikodekan. Untuk mengkodekan nilai-nilai ini, tabel pemetaan model harus dilatih ulang.
Contoh
Data input sampel.
f0(BIGINT)
f1(STRING)
f2(DATETIME)
f3(DOUBLE)
f4(BOOLEAN)
12
prefix1
1970-09-15 12:50:22
0.1
true
12
prefix3
1971-01-22 03:15:33
0.4
false
NULL
prefix3
1970-01-01 08:00:00
0.2
NULL
3
NULL
1970-01-01 08:00:00
0.3
false
34
NULL
1970-09-15 12:50:22
0.4
NULL
3
prefix1
1970-09-15 12:50:22
0.2
true
3
prefix1
1970-09-15 12:50:22
0.3
false
3
prefix3
1970-01-01 08:00:00
0.2
true
3
prefix3
1971-01-22 03:15:33
0.1
false
NULL
prefix3
1970-01-01 08:00:00
0.3
false
Konfigurasikan parameter One Hot Encoding di komponen skrip SQL sebagai berikut.
PAI -project algo_public -name one_hot --Default component parameters, no modification needed -DinputTable=one_hot -DbinaryCols=f0,f2,f4 -DoutputModelTable=one_hot_model_8 -DoutputTable=one_hot_in_table_1_output_8 -DdropLast=false -DappendCols=f0,f2,f4 -DignoreNull=false -DoutputTableType=table -DreserveCols=f3 -DcoreNum=4 -DmemSizePerCore=2048;Setelah eksekusi berhasil, lihat hasil output.
Tabel model output dari One Hot Encoding adalah sebagai berikut.
col_name
col_value
mapping
_reserve_
f3
0
f0
12
1
f0
3
2
f0
34
3
f0
null
4
f2
0
5
f2
22222222000
6
f2
33333333000
7
f4
0
8
f4
1
9
f4
null
10
Baris teratas dalam tabel pemetaan model adalah baris reserve, dan nama kolomnya tetap sebagai reserve. Baris ini menyimpan informasi reserve. Baris-baris lainnya sesuai dengan informasi pemetaan pengkodean.
Tabel hasil pengkodean
Tabel
f0
f2
f4
_reserve__f3_0
f0_12_1
f0_3_2
f0_34_3
f0_null_4
f2_0_5
f2_22222222_6
f2_33333333_7
f4_0_8
f4_1_9
f4_null_10
12
1970-09-15 12:50:22
true
0.1
1.0
0.0
0.0
0.0
0.0
1.0
0.0
0.0
1.0
0.0
12
1971-01-22 03:15:33
false
0.4
1.0
0.0
0.0
0.0
0.0
0.0
1.0
1.0
0.0
0.0
NULL
1970-01-01 08:00:00
NULL
0.2
0.0
0.0
0.0
1.0
1.0
0.0
0.0
0.0
0.0
1.0
3
1970-01-01 08:00:00
false
0.3
0.0
1.0
0.0
0.0
1.0
0.0
0.0
1.0
0.0
0.0
34
1970-09-15 12:50:22
NULL
0.4
0.0
0.0
1.0
0.0
0.0
1.0
0.0
0.0
0.0
1.0
3
1970-09-15 12:50:22
true
0.2
0.0
1.0
0.0
0.0
0.0
1.0
0.0
0.0
1.0
0.0
3
1970-09-15 12:50:22
false
0.3
0.0
1.0
0.0
0.0
0.0
1.0
0.0
1.0
0.0
0.0
3
1970-01-01 08:00:00
true
0.2
0.0
1.0
0.0
0.0
1.0
0.0
0.0
0.0
1.0
0.0
3
1971-01-22 03:15:33
false
0.1
0.0
1.0
0.0
0.0
0.0
0.0
1.0
1.0
0.0
0.0
NULL
1970-01-01 08:00:00
false
0.3
0.0
0.0
0.0
1.0
1.0
0.0
0.0
1.0
0.0
0.0
KV
f0
f2
f4
kv
12
1970-09-15 12:50:22
true
0:0.1,1:1,6:1,9:1
12
1971-01-22 03:15:33
false
0:0.4,1:1,7:1,8:1
NULL
1970-01-01 08:00:00
NULL
0:0.2,4:1,5:1,10:1
3
1970-01-01 08:00:00
false
0:0.3,2:1,5:1,8:1
34
1970-09-15 12:50:22
NULL
0:0.4,3:1,6:1,10:1
3
1970-09-15 12:50:22
true
0:0.2,2:1,6:1,9:1
3
1970-09-15 12:50:22
false
0:0.3,2:1,6:1,8:1
3
1970-01-01 08:00:00
true
0:0.2,2:1,5:1,9:1
3
22-01-1971 03:15:33
false
0:0.1,2:1,7:1,8:1
NULL
1970-01-01 08:00:00
false
0:0.3,4:1,5:1,8:1
Pengujian Skalabilitas
Data uji: Jumlah sampel adalah 200 juta, dan jumlah enumerator adalah 100.000. Data uji tercantum dalam tabel berikut.
f0 | f1 |
94 | prefix3689 |
9664 | prefix5682 |
2062 | prefix5530 |
9075 | prefix9854 |
9836 | prefix1764 |
5140 | prefix1149 |
3455 | prefix7272 |
2508 | prefix7139 |
7993 | prefix1551 |
5602 | prefix4606 |
3132 | prefix5767 |
Hasil pengujian tercantum dalam tabel berikut.
Jumlah core | Waktu pelatihan | Waktu prediksi | Rasio percepatan |
5 | 84 detik | 181 detik | 1/1 |
10 | 60 detik | 93 detik | 1.4/1.95 |
20 | 46 detik | 56 detik | 1.8/3.23 |
Catatan Penggunaan untuk Konsol
Gunakan komponen secara langsung untuk pengkodean.

Gunakan komponen untuk melatih model. Kemudian, gunakan model tersebut untuk mengkodekan data.
