このトピックでは、Machine Learning Designer (旧称Machine Learning Studio) が提供する正規化コンポーネントについて説明します。
コンポーネントの設定
次のいずれかの方法を使用して、正規化コンポーネントを設定できます。
方法1: パイプラインページでコンポーネントを設定する
Machine Learning Designerのパイプラインページでコンポーネントパラメーターを設定します。
タブ | パラメーター | 説明 |
フィールド設定 | すべてデフォルトで選択 | デフォルトでは、入力テーブルのすべての列が選択されます。 特定の列をトレーニングに使用することはできません。 これらの列は予測結果に影響を与えません。 |
元の列を予約 | 元の列を予約するかどうかを指定します。 正規化後、列名の前にnormalized_が付いています。 予約できるのは、DOUBLEまたはBIGINTタイプの列のみです。 | |
チューニング | コア | コアの数。 システムは、入力データの量に基づいて、トレーニングに使用されるコアを自動的に割り当てます。 |
コアあたりのメモリサイズ | 各コアのメモリサイズ。 システムは、入力データの量に基づいてメモリを自動的に割り当てます。 単位:MB。 |
方法2: PAIコマンドを使用する
PAIコマンドを使用してコンポーネントパラメータを設定します。 SQLスクリプトコンポーネントを使用してPAIコマンドを呼び出すことができます。 詳細については、「SQLスクリプト」をご参照ください。
高密度データのコマンド
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 |
ライフサイクルの設定 (Set lifecycle) | 不可 | 出力テーブルのライフサイクル。 有効な値: [1,3650] 。 | デフォルト値なし |
coreNum | 不可 | コンピューティングで使用されるコアの数。 値は正の整数でなければなりません。 | システムによって決定される |
memSizePerCore | 不可 | 各コアのメモリサイズ。 単位:MB。 有効値: (1,65536) | システムによって決定される |
enableSparse | 不可 | スパース形式の入力データをサポートするかどうかを指定します。 有効な値:
| false |
itemDelimiter | 不可 | キーと値のペア間で使用される区切り文字。 | , |
kvDelimiter | 不可 | キーと値の間に使用される区切り文字。 | : |
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_文字列
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
Output
normalize_test_input_output
col_文字列
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
特徴
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_文字列
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
特徴
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}}