全部产品
Search
文档中心

Platform For AI:Penanganan Data Hilang

更新时间:Jul 02, 2025

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:

  • Null (Numerik dan String)

  • String Kosong

  • Null dan String Kosong (String)

  • Kustom (String)

Replace With

Nilai baru kolom yang ingin Anda isi datanya. Nilai valid:

  • Minimum (Numerik)

  • Maksimum (Numerik)

  • Rata-rata (Numerik)

  • Kustom (Numerik dan String)

Configs

Konfigurasikan kebijakan penggantian kustom. Nilainya dalam format Kolom 1, Nilai Asli, Nilai Baru; Kolom 2, Nilai Asli, Nilai Baru;....

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:

  • Nama_Partisi=nilai

  • nama1=nilai1/nama2=nilai2: partisi multi-level

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 col1, null, 3.14; col2, empty, hello; col3, empty-null, world, null menunjukkan nilai null, dan empty menunjukkan string kosong.

  • Jika Anda menggunakan string kosong, kolom tujuan tempat Anda ingin mengisi nilai yang hilang harus bertipe STRING.

  • Jika Anda menggunakan nilai maksimum, minimum, atau rata-rata, variabel dapat digunakan dan diberi nama sebagai max, min, atau mean.

  • Jika Anda menggunakan nilai kustom, user-defined digunakan dalam format tertentu, seperti col4,user-defined,str,str123.

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

  1. 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         |
    +------------+------------+------------+-------------+--------------+
  2. 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";
  3. 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}} |
      +------------+------------+