Analisis fitur diskrit adalah teknik yang digunakan untuk menangani dan menganalisis fitur dengan sejumlah kategori berbeda yang terbatas. Pendekatan ini menilai distribusi fitur diskrit, menghitung metrik seperti indeks Gini dan entropi dari setiap fitur diskrit, serta mengevaluasi pentingnya fitur menggunakan metrik seperti Gini Gain, Information Gain, dan Information Gain Ratio. Evaluasi ini membantu mengidentifikasi fitur yang secara signifikan memengaruhi performa model.
Konfigurasikan komponen
Anda dapat menggunakan salah satu metode berikut untuk mengonfigurasi komponen Analisis Fitur Diskrit.
Metode 1: Konfigurasikan komponen pada halaman pipeline
Pada halaman detail pipeline di Machine Learning Designer, tambahkan komponen Analisis Fitur Diskrit ke pipeline dan konfigurasikan parameter yang dijelaskan dalam tabel berikut.
Parameter | Deskripsi |
Kolom Fitur | Kolom-kolom yang merepresentasikan fitur data dalam sampel pelatihan. |
Kolom Label | Kolom label. |
Matriks Sparse | Jika data dalam tabel input berada dalam format sparse, fitur harus dalam format pasangan kunci-nilai. |
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 Skenario 4: Jalankan Perintah PAI dalam Komponen Skrip SQL.
PAI
-name enum_feature_selection
-project algo_public
-DinputTableName=enumfeautreselection_input
-DlabelColName=label
-DfeatureColNames=col0,col1
-DenableSparse=false
-DoutputCntTableName=enumfeautreselection_output_cntTable
-DoutputValueTableName=enumfeautreselection_output_valuetable
-DoutputEnumValueTableName=enumfeautreselection_output_enumvaluetable;Parameter | Diperlukan | Nilai default | Deskripsi |
inputTableName | Ya | Tidak ada nilai default | Nama tabel input. |
inputTablePartitions | Tidak | Tabel lengkap | Partisi yang dipilih dari tabel input untuk pelatihan. Format berikut didukung:
null Jika Anda menentukan beberapa partisi, pisahkan mereka dengan koma (,). |
featureColNames | Tidak | Tidak ada nilai default | Kolom fitur yang dipilih dari tabel input untuk pelatihan. |
labelColName | Tidak | Tidak ada nilai default | Nama kolom label dalam tabel input. |
enableSparse | Tidak | false | Menentukan apakah data input berada dalam format sparse. Nilai valid: true and false. |
kvFeatureColNames | Tidak | Tabel lengkap | Nama kolom fitur yang berada dalam format pasangan kunci-nilai. |
kvDelimiter | Tidak | : | Pemisah yang digunakan untuk memisahkan kunci dan nilai jika data dalam tabel input berada dalam format sparse. |
itemDelimiter | Tidak | , | Pemisah yang digunakan untuk memisahkan pasangan kunci-nilai jika data dalam tabel input berada dalam format sparse. |
outputCntTableName | Tidak | N/A | Tabel distribusi keluaran yang berisi nilai enumerasi fitur diskrit. |
outputValueTableName | Tidak | N/A | Tabel keluaran yang berisi nilai gini dan entropi fitur diskrit. |
outputEnumValueTableName | Tidak | N/A | Tabel keluaran yang berisi nilai gini dan entropi enumerasi fitur diskrit. |
lifecycle | Tidak | Tidak ada nilai default | Siklus hidup tabel. |
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. Nilai valid: 1 hingga 65536. Unit: MB. |
Contoh
Jalankan pernyataan SQL berikut untuk menghasilkan data input:
drop table if exists enum_feature_selection_test_input;
create table enum_feature_selection_test_input
as
select
*
from
(
select
'00' as col_string,
1 as col_bigint,
0.0 as col_double
from dual
union all
select
cast(null as string) as col_string,
0 as col_bigint,
0.0 as col_double
from dual
union all
select
'01' as col_string,
0 as col_bigint,
1.0 as col_double
from dual
union all
select
'01' as col_string,
1 as col_bigint,
cast(null as double) as col_double
from dual
union all
select
'01' as col_string,
1 as col_bigint,
1.0 as col_double
from dual
union all
select
'00' as col_string,
0 as col_bigint,
0.0 as col_double
from dual
) tmp;Data Input:
+------------+------------+------------+
| col_string | col_bigint | col_double |
+------------+------------+------------+
| 01 | 1 | 1.0 |
| 01 | 0 | 1.0 |
| 01 | 1 | NULL |
| NULL | 0 | 0.0 |
| 00 | 1 | 0.0 |
| 00 | 0 | 0.0 |
+------------+------------+------------+Perintah PAI
Perintah
drop table if exists enum_feature_selection_test_input_enum_value_output; drop table if exists enum_feature_selection_test_input_cnt_output; drop table if exists enum_feature_selection_test_input_value_output; PAI -name enum_feature_selection -project algo_public -DitemDelimiter=":" -Dlifecycle="28" -DoutputValueTableName="enum_feature_selection_test_input_value_output" -DkvDelimiter="," -DlabelColName="col_bigint" -DfeatureColNames="col_double,col_string" -DoutputEnumValueTableName="enum_feature_selection_test_input_enum_value_output" -DenableSparse="false" -DinputTableName="enum_feature_selection_test_input" -DoutputCntTableName="enum_feature_selection_test_input_cnt_output";Output Perintah
enum_feature_selection_test_input_cnt_output
+------------+------------+------------+------------+ | colname | colvalue | labelvalue | cnt | +------------+------------+------------+------------+ | col_double | NULL | 1 | 1 | | col_double | 0 | 0 | 2 | | col_double | 0 | 1 | 1 | | col_double | 1 | 0 | 1 | | col_double | 1 | 1 | 1 | | col_string | NULL | 0 | 1 | | col_string | 00 | 0 | 1 | | col_string | 00 | 1 | 1 | | col_string | 01 | 0 | 1 | | col_string | 01 | 1 | 2 | +------------+------------+------------+------------+enum_feature_selection_test_input_value_output
+------------+------------+------------+------------+------------+---------------+ | colname | gini | entropy | infogain | ginigain | infogainratio | +------------+------------+------------+------------+------------+---------------+ | col_double | 0.3888888888888889 | 0.792481250360578 | 0.20751874963942196 | 0.1111111111111111 | 0.14221913160264427 | | col_string | 0.38888888888888884 | 0.792481250360578 | 0.20751874963942196 | 0.11111111111111116 | 0.14221913160264427 | +------------+------------+------------+------------+------------+---------------+enum_feature_selection_test_input_enum_value_output
+------------+------------+------------+------------+ | colname | colvalue | gini | entropy | +------------+------------+------------+------------+ | col_double | NULL | 0.0 | 0.0 | | col_double | 0 | 0.22222222222222224 | 0.4591479170272448 | | col_double | 1 | 0.16666666666666666 | 0.3333333333333333 | | col_string | NULL | 0.0 | 0.0 | | col_string | 00 | 0.16666666666666666 | 0.3333333333333333 | | col_string | 01 | 0.2222222222222222 | 0.4591479170272448 | +------------+------------+------------+------------+