このトピックでは、MaxComputeコンピューティングリソースを使用してPS-SMARTのバイナリ分類、予測、およびバイナリ分類評価コンポーネントを実行し、PS-SMARTコンポーネントアルゴリズムに最適なハイパーパラメータの組み合わせを取得するハイパーパラメータチューニング実験を提出する方法について説明します。
前提条件
AutoMLを使用するために必要なアクセス許可がアカウントに付与されます。 初めてAutoMLを使用するときは、この前提条件が満たされていることを確認してください。 詳細については、「AutoMLを使用するために必要な権限の付与」をご参照ください。
ワークスペースが作成され、MaxComputeリソースに関連付けられます。 詳細については、「ワークスペースの作成」をご参照ください。
ステップ1: データの準備
この例では、銀行の顧客製品サブスクリプションを予測するための機能設計されたデータセットが使用されます。 次の操作を実行して、トレーニングデータセットとテストデータセットを準備します。
MaxComputeクライアントで次のSQLコマンドを実行し、bank_train_dataという名前のテーブルとbank_test_dataという名前のテーブルを作成します。 MaxComputeクライアントのインストール方法と設定方法については、「MaxComputeクライアント (odpscmd) 」をご参照ください。
create table bank_train_data( id bigint ,age double ,job double ,marital double ,education double ,default double ,housing double ,loan double ,contact double , month double ,day_of_week double ,duration double ,campaign double ,pdays double ,previous double ,poutcome double ,emp_var_rate double , cons_price_index double ,cons_conf_index double ,lending_rate3m double ,nr_employed double ,subscribe bigint ); create table bank_test_data( id bigint ,age double ,job double ,marital double ,education double ,default double ,housing double ,loan double ,contact double , month double ,day_of_week double ,duration double ,campaign double ,pdays double ,previous double ,poutcome double ,emp_var_rate double , cons_price_index double ,cons_conf_index double ,lending_rate3m double ,nr_employed double ,subscribe bigint );
MaxComputeクライアントで次のTunnelコマンドを実行して、次のトレーニングデータセットをbank_train_dataテーブルにアップロードし、テストデータセットをbank_test_dataテーブルにアップロードします。 Tunnelコマンドの使用方法については、「Tunnelコマンド」をご参照ください。
-- Upload the training dataset to the bank_train_data table. Replace xx/train_data.csv with the path of the train_data.csv file. tunnel upload xx/train_data.csv bank_train_data; -- Upload the test dataset to the bank_test_data table. Replace xx/test_data.csv with the path of the test_data.csv file. tunnel upload xx/test_data.csv bank_test_data;
トレーニングデータセット: train_data.csv
テストデータセット: test_data.csv
ステップ2: 実験の作成
[実験の作成] ページに移動し、次の手順を実行してキーパラメーターを設定します。 その他のパラメーターの設定については、「実験の作成」をご参照ください。 パラメーターを設定したら、[送信] をクリックします。
[実行設定] セクションでパラメーターを設定します。
パラメーター
説明
ジョブタイプ
ターゲットデータベースのタイプ。 [MaxCompute] を選択します。
コマンド
次の5つのコマンドを順番に設定します。 コマンドは順番に実行されます。
cmd1: バイナリ分類モデルを構築するために準備したテストデータを使用して、PS-SMARTバイナリ分類コンポーネントを実行します。 パラメーターの詳細については、「PS-SMARTバイナリ分類」をご参照ください。
PAI -name ps_smart -project algo_public -DinputTableName='bank_train_data' -DmodelName='bi_ps_${exp_id}_${trial_id}' -DoutputTableName='bi_model_output_${exp_id}_${trial_id}' -DoutputImportanceTableName='bi_imp_${exp_id}_${trial_id}' -DlabelColName='subscribe' -DfeatureColNames='age,job,marital,education,default,housing,loan,contact,month,day_of_week,duration,campaign,pdays,previous,poutcome,emp_var_rate,cons_price_index,cons_conf_index,lending_rate3m,nr_employed' -DenableSparse='false' -Dobjective='binary:logistic' -Dmetric='error' -DfeatureImportanceType='gain' -DtreeCount='${tree_count}' -DmaxDepth='${max_depth}' -Dshrinkage="0.3" -Dl2="1.0" -Dl1="0" -Dlifecycle="3" -DsketchEps="0.03" -DsampleRatio="1.0" -DfeatureRatio="1.0" -DbaseScore="0.5" -DminSplitLoss="0"
cmd2: 予測結果テーブルを削除します。
drop table if exists bi_output_${exp_id}_${trial_id};
cmd3: cmd1によって生成されたモデルに基づいて予測コンポーネントを実行し、入力データを予測します。 パラメーターの詳細については、「予測」をご参照ください。
PAI -name prediction -project algo_public -DinputTableName='bank_test_data' -DmodelName='bi_ps_${exp_id}_${trial_id}' -DoutputTableName='bi_output_${exp_id}_${trial_id}' -DfeatureColNames='age,job,marital,education,default,housing,loan,contact,month,day_of_week,duration,campaign,pdays,previous,poutcome,emp_var_rate,cons_price_index,cons_conf_index,lending_rate3m,nr_employed' -DappendColNames='subscribe,age,job,marital,education,default,housing,loan,contact,month,day_of_week,duration,campaign,pdays,previous,poutcome,emp_var_rate,cons_price_index,cons_conf_index,lending_rate3m,nr_employed' -DenableSparse='false' -Dlifecycle='3';
cmd4: cmd3によって生成された予測結果に基づいて、バイナリ分類評価コンポーネントを実行します。 パラメーターの詳細については、「バイナリ分類評価」をご参照ください。
PAI -name evaluate -project algo_public -DoutputDetailTableName='bi_0804_${exp_id}_${trial_id}_outputDetailTable' -DoutputMetricTableName='bi_0804_${exp_id}_${trial_id}_outputMetricTable' -DlabelColName='subscribe' -DscoreColName='prediction_score' -DpositiveLabel='1' -DbinCount='1000' -DdetailColName='prediction_detail' -DlabelMatch='true' -DinputTableName='bi_output_${exp_id}_${trial_id}';
cmd5: cmd4によって生成された評価結果テーブルから評価メトリックを取得します。
INSERT OVERWRITE TABLE ps_smart_classification_metrics PARTITION(pt='${exp_id}_${trial_id}') SELECT /*+MAPJOIN(b,c,d)*/ REGEXP_EXTRACT(a.data_range, '\\\((.*?),') as threshold, a.recall, a.precision, a.f1_score, c.value as auc, d.value as ks FROM (SELECT recall, precision, f1_score, data_range, 'AUC' auc, 'KS' ks from bi_0804_${exp_id}_${trial_id}_outputDetailTable) a JOIN bi_0804_${exp_id}_${trial_id}_outputMetricTable b on b.name='F1 Score' AND a.f1_score=b.value JOIN bi_0804_${exp_id}_${trial_id}_outputMetricTable c ON c.name=a.auc JOIN bi_0804_${exp_id}_${trial_id}_outputMetricTable d ON d.name=a.ks;
ハイパーパラメータ
次のセクションでは、ハイパーパラメータの制約タイプと検索空間を示します。
tree_count:
制約タイプ: 選択。
検索スペース: アイコンをクリックして、50、100、150の列挙値を追加します。
max_depth:
制約タイプ: 選択。
検索スペース: アイコンをクリックして、6、8、10の列挙値を追加します。
上記の設定では、9つのハイパーパラメータの組み合わせが生成されます。 システムは、ハイパーパラメータの組み合わせごとに試行を作成し、1つのハイパーパラメータの組み合わせを使用して、各試行でPS-SMARTのバイナリ分類およびバイナリ分類評価コンポーネントを実行します。
トライアル設定セクションでパラメーターを設定します。
パラメーター
説明
メトリックタイプ
テーブルを選択します。
移動方法
ベストを選択します。
メトリック重量
次のメトリック重み設定を設定します。
Key: recall. Value: 0.5.
Key: precision. Value: 0.25.
Key: auc. Value: 0.25.
メトリックソース
値を
select * from ps_smart_classification_metrics where pt='${exp_id }_${ trial_id}';
に設定します。最適化
[最大化] を選択します。
モデル名
値をbi_ps _${ exp_id }_${ trial_id} に設定します。
[検索設定] セクションでパラメーターを設定します。
パラメーター
説明
検索アルゴリズム
[TPE] を選択します。
最大トライアル
値を5に設定します。
最大同時試行
値を 2 に設定します。
ステップ3: 実験の詳細と結果を表示する
[AutoML] ページで、実験の名前をクリックして、[実験の詳細] ページに移動します。 [実験の詳細] ページで、トライアルの実行の進行状況とステータスを表示できます。 システムは、指定された検索アルゴリズムと最大試行回数に基づいて、実験用に5回の試行を自動的に作成します。
[トライアル] をクリックして、[トライアル] タブに移動します。 実験用に自動的に生成されたトライアルと、各トライアルの実行ステータス、最終メトリック、ハイパーパラメータの組み合わせを表示できます。 この例では、OptimizationパラメーターはMaximizeに設定されています。 メトリック0.688894によって示される以下のハイパーパラメータの組み合わせは、最適な組み合わせである: tree_count:50; max_depth:8。