Fungsi ML.ONE_HOT_ENCODER
Dokumen ini menjelaskan fungsi ML.ONE_HOT_ENCODER
, yang memungkinkan Anda
mengenkode ekspresi string menggunakan
skema encoding
one-hot
atau dummy.
Kosakata encoding diurutkan sesuai abjad. Nilai dan kategori NULL
yang tidak ada dalam kosakata dienkode dengan nilai index
0
. Jika Anda
menggunakan encoding dummy, kategori yang dihapus akan dienkode dengan value
dari 0
.
Saat digunakan dalam
klausa TRANSFORM
,
nilai kosakata dan kategori yang dihapus yang dihitung selama pelatihan, beserta
nilai k teratas dan batas minimum frekuensi yang Anda tentukan, akan
otomatis digunakan dalam prediksi.
Sintaks
ML.ONE_HOT_ENCODER(string_expression [, drop] [, top_k] [, frequency_threshold]) OVER()
Argumen
ML.ONE_HOT_ENCODER
menggunakan argumen berikut:
string_expression
: ekspresiSTRING
yang akan dienkode.drop
: nilaiSTRING
yang menentukan apakah fungsi menghapus kategori. Nilai yang valid adalah sebagai berikut:none
: Mempertahankan semua kategori. Ini adalah nilai defaultnya.most_frequent
: Menghapus kategori paling sering yang ditemukan dalam ekspresi string. Jika nilai ini dipilih, fungsi tersebut akan menggunakan encoding dummy.
top_k
: nilaiINT64
yang menentukan jumlah kategori yang disertakan dalam kosakata encoding. Fungsi ini memilih kategoritop_k
yang paling banyak dalam data dan menggunakannya; kategori di bawah batas ini dienkode ke0
. Nilai ini harus kurang dari1,000,000
untuk menghindari masalah karena dimensi yang tinggi. Nilai defaultnya adalah32,000
.frequency_threshold
: nilaiINT64
yang membatasi kategori yang disertakan dalam kosakata encoding berdasarkan frekuensi kategori. Fungsi ini menggunakan kategori yang frekuensinya lebih besar dari atau sama denganfrequency_threshold
; kategori di bawah batas ini dienkode ke0
. Nilai defaultnya adalah5
.
Output
ML.ONE_HOT_ENCODER
menampilkan array nilai struct, dalam bentuk
ARRAY<STRUCT<INT64, FLOAT64>>
. Elemen pertama dalam struct memberikan
indeks ekspresi string yang dienkode, dan elemen kedua memberikan
nilai ekspresi string yang dienkode.
Contoh
Contoh berikut membuat encoding dummy pada sekumpulan ekspresi string. Metode ini membatasi kosakata encoding menjadi sepuluh kategori yang paling sering muncul dalam data dan juga terjadi nol kali atau lebih.
SELECT f, ML.ONE_HOT_ENCODER(f, 'most_frequent', 10, 0) OVER () AS output FROM UNNEST([NULL, 'a', 'b', 'b', 'c', 'c', 'c', 'd', 'd']) AS f ORDER BY f;
Outputnya terlihat mirip dengan yang berikut ini:
+------+-----------------------------+ | f | output.index | output.value | +------+--------------+--------------+ | NULL | 0 | 1.0 | | a | 1 | 1.0 | | b | 2 | 1.0 | | b | 2 | 1.0 | | c | 3 | 0.0 | | c | 3 | 0.0 | | c | 3 | 0.0 | | d | 4 | 1.0 | | d | 4 | 1.0 | +------+-----------------------------+
Langkah selanjutnya
- Untuk mengetahui informasi tentang prapemrosesan fitur, lihat Ringkasan prapemrosesan fitur.
- Untuk mengetahui informasi tentang pernyataan dan fungsi SQL yang didukung untuk setiap jenis model, lihat Perjalanan pengguna menyeluruh untuk setiap model.