特徴列を正規化することで、モデルトレーニングの効率と精度を向上させます。
コンポーネントの構成
正規化コンポーネントのパラメーターは、以下のいずれかの方法で構成します。
メソッド 1: GUI でコンポーネントを構成する
Designer ワークフローページでコンポーネントパラメーターを構成します。
|
タブ |
パラメーター |
説明 |
|
[フィールド設定] |
[デフォルトですべて選択] |
すべての列がデフォルトで選択されます。余分な列は予測結果に影響しません。 |
|
[元の列を保持] |
処理された列には "stdized_" がプレフィックスとして付加されます。DOUBLE 型と BIGINT 型の列をサポートします。 |
|
|
[実行チューニング] |
コンピューティングコア数 |
システムは、入力データ量に基づいてトレーニング用のインスタンス数を自動的に割り当てます。 |
|
[コアあたりのメモリサイズ] |
システムは、入力データ量に基づいてメモリを自動的に割り当てます。単位: MB。 |
メソッド 2: PAI コマンドを使用する
PAI コマンドを使用してコンポーネントパラメーターを構成します。SQL Script コンポーネントを使用して PAI コマンドを呼び出します。詳細については、「SQL Script」をご参照ください。
-
密なデータ用のコマンド
PAI -name Normalize -project algo_public -DkeepOriginal="true" -DoutputTableName="test_4" -DinputTablePartitions="pt=20150501" -DinputTableName="bank_data_partition" -DselectedColNames="emp_var_rate,euribor3m" -
スパースデータ用のコマンド
PAI -name Normalize -project projectxlib4 -DkeepOriginal="true" -DoutputTableName="kv_norm_output" -DinputTableName=kv_norm_test -DselectedColNames="f0,f1,f2" -DenableSparse=true -DoutputParaTableName=kv_norm_model -DkvIndices=1,2,8,6 -DitemDelimiter=",";
|
パラメーター名 |
必須 |
説明 |
デフォルト値 |
|
inputTableName |
はい |
入力テーブル名。 |
なし |
|
selectedColNames |
いいえ |
トレーニングに使用される入力テーブルの列。列名をコンマ (,) で区切ります。INT 型と DOUBLE 型をサポートします。入力データがスパース形式の場合、STRING 型もサポートします。 |
すべての列 |
|
inputTablePartitions |
いいえ |
トレーニングに使用される入力テーブルのパーティション。サポートされている形式:
説明
複数のパーティションはコンマ (,) で区切ります。 |
すべてのパーティション |
|
outputTableName |
はい |
出力テーブル名。 |
なし |
|
outputParaTableName |
いいえ |
出力パラメーターテーブル名。 |
非パーティションテーブルにデフォルト設定されます。 |
|
inputParaTableName |
はい |
入力パラメーターテーブル名。 |
なし |
|
keepOriginal |
いいえ |
元の列を保持:
|
false |
|
lifecycle |
いいえ |
出力テーブルのライフサイクル。有効範囲: 1 to 3650。 |
なし |
|
coreNum |
いいえ |
コンピューティング用のコア数。有効な値: 正の整数。 |
システムが自動的に割り当てます。 |
|
memSizePerCore |
いいえ |
コアあたりのメモリサイズ (MB)。有効範囲: 1 to 65536。 |
システムが自動的に割り当てます。 |
|
enableSparse |
いいえ |
スパースサポートを有効にする。有効な値:
|
false |
|
itemDelimiter |
いいえ |
キーと値のペア間の区切り文字。 |
default |
|
kvDelimiter |
いいえ |
キーとその値間の区切り文字。 |
default |
|
kvIndices |
いいえ |
キーと値のテーブルで正規化が必要な特徴のインデックス。 |
なし |
例
-
データ生成
drop table if exists normalize_test_input; create table normalize_test_input( col_string string, col_bigint bigint, col_double double, col_boolean boolean, col_datetime datetime); insert overwrite table normalize_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; -
PAI コマンド
drop table if exists normalize_test_input_output; drop table if exists normalize_test_input_model_output; PAI -name Normalize -project algo_public -DoutputParaTableName="normalize_test_input_model_output" -Dlifecycle="28" -DoutputTableName="normalize_test_input_output" -DinputTableName="normalize_test_input" -DselectedColNames="col_double,col_bigint" -DkeepOriginal="true"; drop table if exists normalize_test_input_output_using_model; drop table if exists normalize_test_input_output_using_model_model_output; PAI -name Normalize -project algo_public -DoutputParaTableName="normalize_test_input_output_using_model_model_output" -DinputParaTableName="normalize_test_input_model_output" -Dlifecycle="28" -DoutputTableName="normalize_test_input_output_using_model" -DinputTableName="normalize_test_input"; -
入力
normalize_test_input
col_string
col_bigint
col_double
col_boolean
col_datetime
01
10
10.1
true
2016-07-01 10:00:00
NULL
11
10.2
false
2016-07-02 10:00:00
02
NULL
10.3
true
2016-07-03 10:00:00
03
12
NULL
false
2016-07-04 10:00:00
04
13
10.4
NULL
2016-07-05 10:00:00
05
14
10.5
true
NULL
-
出力
-
normalize_test_input_output
col_string
col_bigint
col_double
col_boolean
col_datetime
normalized_col_bigint
normalized_col_double
01
10
10.1
true
2016-07-01 10:00:00
0.0
0.0
NULL
11
10.2
false
2016-07-02 10:00:00
0.25
0.2499999999999989
02
NULL
10.3
true
2016-07-03 10:00:00
NULL
0.5000000000000022
03
12
NULL
false
2016-07-04 10:00:00
0.5
NULL
04
13
10.4
NULL
2016-07-05 10:00:00
0.75
0.7500000000000011
05
14
10.5
true
NULL
1.0
1.0
-
normalize_test_input_model_output
feature
json
col_bigint
{"name": "normalize", "type":"bigint", "paras":{"min":10, "max": 14}}
col_double
{"name": "normalize", "type":"double", "paras":{"min":10.1, "max": 10.5}}
-
normalize_test_input_output_using_model
col_string
col_bigint
col_double
col_boolean
col_datetime
01
0.0
0.0
true
2016-07-01 10:00:00
NULL
0.25
0.2499999999999989
false
2016-07-02 10:00:00
02
NULL
0.5000000000000022
true
2016-07-03 10:00:00
03
0.5
NULL
false
2016-07-04 10:00:00
04
0.75
0.7500000000000011
NULL
2016-07-05 10:00:00
05
1.0
1.0
true
NULL
-
normalize_test_input_output_using_model_model_output
feature
json
col_bigint
{"name": "normalize", "type":"bigint", "paras":{"min":10, "max": 14}}
col_double
{"name": "normalize", "type":"double", "paras":{"min":10.1, "max": 10.5}}
-