Penanganan data hilang adalah metode untuk menangani data yang hilang dalam dataset. Tujuannya adalah meningkatkan integritas data dan kinerja model dengan menyimpulkan serta mengganti data yang hilang. Teknik imputasi umum meliputi pengisian dengan nilai minimum, maksimum, rata-rata, atau nilai kustom. Teknik ini membantu mengurangi dampak negatif dari data yang tidak lengkap pada pelatihan model dan prediksi.
Konfigurasikan komponen
Metode 1: Konfigurasikan komponen di halaman pipeline
Di halaman detail pipeline dalam Machine Learning Designer, tambahkan komponen Missing Data Imputation ke pipeline dan konfigurasikan parameter sesuai tabel berikut.
Tab | Parameter | Deskripsi |
Fields Setting | Columns to Impute | Pilih kolom yang ingin Anda isi datanya. |
Original Value | Nilai asli kolom yang ingin Anda isi datanya. Nilai valid:
| |
Replace With | Nilai baru kolom yang ingin Anda isi datanya. Nilai valid:
| |
Configs | Konfigurasikan kebijakan penggantian kustom. Nilainya dalam format Catatan Parameter ini hanya ditampilkan jika Anda memilih Advanced Options. | |
Tuning | Cores | Jumlah core. |
Memory Size per Core | Ukuran memori setiap core. Satuan: MB. |
Metode 2: Konfigurasikan komponen menggunakan perintah PAI
Konfigurasikan parameter komponen 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.
PAI -name FillMissingValues
-project algo_public
-Dconfigs="poutcome,null-empty,testing"
-DoutputParaTableName="test_input_model_output"
-DoutputTableName="test_3"
-DinputTablePartitions="pt=20150501"
-DinputTableName="bank_data_partition";Parameter | Diperlukan | Nilai default | Deskripsi |
inputTableName | Ya | Tidak ada nilai default | Nama tabel input. |
inputTablePartitions | Tidak | Semua partisi | Partisi yang dipilih dari tabel input untuk pelatihan. Format berikut didukung:
Catatan Jika Anda menentukan beberapa partisi, pisahkan mereka dengan koma (,). |
outputTableName | Ya | Tidak ada nilai default | Nama tabel output. |
configs | Ya | Tidak ada nilai default | Nilai yang ingin Anda gunakan untuk mengisi nilai yang hilang. Sebagai contoh, dalam
|
outputParaTableName | Ya | Tabel Parameter Output 1 yang merupakan tabel non-partisi | Nama tabel parameter output. |
inputParaTableName | Tidak | Tidak ada nilai default | Nama tabel parameter input. |
lifecycle | Tidak | Tidak ada nilai default | Lifecycle tabel output. Nilai valid: [1,3650]. |
coreNum | Tidak | Ditentukan oleh sistem | Jumlah core yang digunakan dalam komputasi. Nilainya harus bilangan bulat positif. |
memSizePerCore | Tidak | Ditentukan oleh sistem | Ukuran memori setiap core. Satuan: MB. Nilai valid: (1,65536). |
Contoh
Jalankan pernyataan SQL berikut untuk menghasilkan data uji:
drop table if exists fill_missing_values_test_input; create table fill_missing_values_test_input( col_string string, col_bigint bigint, col_double double, col_boolean boolean, col_datetime datetime); insert overwrite table fill_missing_values_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;Data input:
+------------+------------+------------+-------------+--------------+ | col_string | col_bigint | col_double | col_boolean | col_datetime | +------------+------------+------------+-------------+--------------+ | 04 | 13 | 10.4 | NULL | 2016-07-05 10:00:00 | | 02 | NULL | 10.3 | true | 2016-07-03 10:00:00 | | 03 | 12 | NULL | false | 2016-07-04 10:00:00 | | NULL | 11 | 10.2 | false | 2016-07-02 10:00:00 | | 01 | 10 | 10.1 | true | 2016-07-01 10:00:00 | | 05 | 14 | 10.5 | true | NULL | +------------+------------+------------+-------------+--------------+Jalankan perintah berikut:
drop table if exists fill_missing_values_test_input_output; drop table if exists fill_missing_values_test_input_model_output; PAI -name FillMissingValues -project algo_public -Dconfigs="col_double,null,mean;col_string,null-empty,str_type_empty;col_bigint,null,max;col_boolean,null,true;col_datetime,null,2016-07-06 10:00:00" -DoutputParaTableName="fill_missing_values_test_input_model_output" -Dlifecycle="28" -DoutputTableName="fill_missing_values_test_input_output" -DinputTableName="fill_missing_values_test_input"; drop table if exists fill_missing_values_test_input_output_using_model; drop table if exists fill_missing_values_test_input_output_using_model_model_output; PAI -name FillMissingValues -project algo_public -DoutputParaTableName="fill_missing_values_test_input_output_using_model_model_output" -DinputParaTableName="fill_missing_values_test_input_model_output" -Dlifecycle="28" -DoutputTableName="fill_missing_values_test_input_output_using_model" -DinputTableName="fill_missing_values_test_input";Lihat hasil yang dikembalikan.
fill_missing_values_test_input_output
+------------+------------+------------+-------------+--------------+ | col_string | col_bigint | col_double | col_boolean | col_datetime | +------------+------------+------------+-------------+--------------+ | 04 | 13 | 10.4 | true | 2016-07-05 10:00:00 | | 02 | 14 | 10.3 | true | 2016-07-03 10:00:00 | | 03 | 12 | 10.3 | false | 2016-07-04 10:00:00 | | str_type_empty | 11 | 10.2 | false | 2016-07-02 10:00:00 | | 01 | 10 | 10.1 | true | 2016-07-01 10:00:00 | | 05 | 14 | 10.5 | true | 2016-07-06 10:00:00 | +------------+------------+------------+-------------+--------------+fill_missing_values_test_input_model_output
+------------+------------+ | feature | json | +------------+------------+ | col_string | {"name": "fillMissingValues", "type": "string", "paras":{"missing_value_type": "null-empty", "replaced_value": "str_type_empty"}} | | col_bigint | {"name": "fillMissingValues", "type": "bigint", "paras":{"missing_value_type": "null", "replaced_value": 14}} | | col_double | {"name": "fillMissingValues", "type": "double", "paras":{"missing_value_type": "null", "replaced_value": 10.3}} | | col_boolean | {"name": "fillMissingValues", "type": "boolean", "paras":{"missing_value_type": "null", "replaced_value": 1}} | | col_datetime | {"name": "fillMissingValues", "type": "datetime", "paras":{"missing_value_type": "null", "replaced_value": 1467770400000}} | +------------+------------+fill_missing_values_test_input_output_using_model
+------------+------------+------------+-------------+--------------+ | col_string | col_bigint | col_double | col_boolean | col_datetime | +------------+------------+------------+-------------+--------------+ | 04 | 13 | 10.4 | true | 2016-07-05 10:00:00 | | 02 | 14 | 10.3 | true | 2016-07-03 10:00:00 | | 03 | 12 | 10.3 | false | 2016-07-04 10:00:00 | | str_type_empty | 11 | 10.2 | false | 2016-07-02 10:00:00 | | 01 | 10 | 10.1 | true | 2016-07-01 10:00:00 | | 05 | 14 | 10.5 | true | 2016-07-06 10:00:00 | +------------+------------+------------+-------------+--------------+fill_missing_values_test_input_output_using_model_model_output
+------------+------------+ | feature | json | +------------+------------+ | col_string | {"name": "fillMissingValues", "type": "string", "paras":{"missing_value_type": "null-empty", "replaced_value": "str_type_empty"}} | | col_bigint | {"name": "fillMissingValues", "type": "bigint", "paras":{"missing_value_type": "null", "replaced_value": 14}} | | col_double | {"name": "fillMissingValues", "type": "double", "paras":{"missing_value_type": "null", "replaced_value": 10.3}} | | col_boolean | {"name": "fillMissingValues", "type": "boolean", "paras":{"missing_value_type": "null", "replaced_value": 1}} | | col_datetime | {"name": "fillMissingValues", "type": "datetime", "paras":{"missing_value_type": "null", "replaced_value": 1467770400000}} | +------------+------------+