Machine Learning Designer は、視覚的にモデルを構築およびデバッグするための豊富なコンポーネントセットを提供します。次の例では、心臓病予測モデルを使用して、Designer パイプラインにおけるモデルの構築とデバッグのプロセスを説明します。
前提条件
パイプラインを作成しておく必要があります。
モデルの構築
モデルは、ノード (コンポーネント) として表される複数の細分化されたタスクで構成され、パイプラインに編成されます。構築を開始する前に、モデルをより小さなタスクに分解して計画します。各ノードは、単一のシンプルなタスクを実行する必要があります。一般的なプロセスは次のとおりです。
-
左側のコンポーネントリストでコンポーネントを見つけ、キャンバスにドラッグします。
リスト内で紫色のアイコンでマークされているコンポーネントは Alink コンポーネントです (Read CSV File コンポーネントなど)。Alink コンポーネントは、標準機能に加えて、グループ化できます。グループのリソースを設定することで、実行効率とリソース使用率が向上します。詳細については、「Alink コンポーネント」をご参照ください。
-
対象のノードをクリックして、右側のペインでパラメーターを設定します。
-
ノードを接続して、上流と下流の関係を持つパイプラインに編成します。
各ノードには、1 つ以上の入力ポートまたは出力ポートがあります。ポートにカーソルを合わせると、そのデータ型が表示され、ノードを正しく接続するのに役立ちます。
モデルが実行されると、上流のノードが最初に実行されます。下流のノードは、すべての上流ノードが正常に完了した後にのみ開始されます。
モデルの構築には、通常、次のステージが含まれます。
データの読み取り
パイプラインに [Source/Destination] コンポーネントを追加して、MaxCompute や Object Storage Service (OSS) などのソースからデータを読み取ります。詳細については、「コンポーネントリファレンス: Source/Destination」の特定のコンポーネントに関するドキュメントをご参照ください。この例では、MaxCompute からデータを読み取ります。
-
MaxCompute でテーブルを作成し、データをインポートします。詳細については、「MaxCompute テーブルの作成と使用」をご参照ください。
この例では、
testプロジェクトにheartdiseaseという名前のテーブルを作成し、テストデータをインポートします。-- テーブルを作成します。 CREATE TABLE IF NOT EXISTS heartdisease( age STRING COMMENT '患者の年齢。', sex STRING COMMENT '患者の性別。有効な値:female、male。', cp STRING COMMENT '胸痛のタイプ。有効な値 (重症度の高い順):typical、atypical、non-anginal、asymptomatic。', trestbps STRING COMMENT '安静時血圧。', chol STRING COMMENT '血清コレステロール。', fbs STRING COMMENT '空腹時血糖値。120 mg/dl を超える場合は true、それ以外は false です。', restecg STRING COMMENT '安静時心電図の結果。有効な値 (重症度の低い順):norm、hyp。', thalach STRING COMMENT '最大心拍数。', exang STRING COMMENT '運動誘発性狭心症の有無を示します。true は「はい」、false は「いいえ」です。', oldpeak STRING COMMENT '安静時に対する運動誘発性 ST 低下 (ST セグメント低下値)。', slop STRING COMMENT 'ピーク運動 ST セグメントの傾き。有効な値:down、flat、up。', ca STRING COMMENT '蛍光透視法で確認された主要血管の数。', thal STRING COMMENT '欠陥のタイプ。有効な値 (重症度の低い順):norm、fix、rev。', `status` STRING COMMENT '疾患の有無を示します。buff は健康、sick は病気を示します。', style STRING); -- デモのため、この例では PAI から公開テストデータを直接インポートします。 INSERT INTO heartdisease select * from pai_online_project.heart_disease_prediction; -
[Read Table] コンポーネントをキャンバスにドラッグして、MaxCompute テーブルからデータを読み取ります。
[Read Table-1] という名前のノードがキャンバスに自動的に作成されます。番号は、同じタイプのコンポーネントを追加する順序に基づいて、1 から増加します。
-
ノード設定ペインで、ソーステーブル名を設定します。パラメーターの詳細については、「Read Table」をご参照ください。
キャンバスで [Read Table-1] ノードを選択します。右側のノード設定ペインで、[Table Name] フィールドに MaxCompute テーブル名を入力します。この例では、
heartdiseaseと入力します。説明MaxCompute プロジェクト間でテーブルデータを読み取る場合、テーブル名は
project_name.table_name形式 (例: test2.heartdisease) で指定する必要があり、プロジェクトに対する権限が必要です。 -
右側の設定ペインで、[Fields Information] タブに切り替えて、この公開データセットのフィールドの詳細を表示します。
データ前処理
データを読み取った後、モデルトレーニングまたは予測の入力要件を満たすようにデータを前処理します。Machine Learning Designer は、豊富なデータ前処理および大規模モデルデータ処理コンポーネントセットを提供します。
この例では、データ前処理ステージで、SQL Script、Type Conversion、Normalization、Split の 4 つのコンポーネントを順番に使用します。これらは、Read Table と 二項分類用ロジスティック回帰 コンポーネントの間に配置されます。
SQL スクリプト コンポーネントを使用して、特徴量用のカスタム SQL スクリプトを記述することもできます。たとえば、次のスクリプトは、入力特徴量のデータ型を変換します。
select age,
(case sex when 'male' then 1 else 0 end) as sex,
(case cp when 'typical' then 0 when 'non-anginal' then 1 else 2 end) as cp,
trestbps,
chol,
(case fbs when 'true' then 1 else 0 end) as fbs,
(case restecg when 'norm' then 0 when 'hyp' then 1 else 2 end) as restecg,
thalach,
(case exang when 'true' then 1 else 0 end) as exang,
oldpeak,
(case slop when 'up' then 0 when 'flat' then 1 else 2 end) as slop,
ca,
(case thal when 'norm' then 0 when 'fix' then 1 else 2 end) as thal,
(case status when 'sick' then 1 else 0 end) as ifHealth
from ${t1};
モデルトレーニング
モデルコンポーネントは、上流のコンポーネントから前処理されたデータを受け取り、その出力を予測や推論コンポーネントなどの下流のコンポーネントに渡します。各コンポーネントには、1 つ以上の入力ポートと出力ポートがあります。ポートにカーソルを合わせると、そのデータ型が表示され、正しい接続を確保できます。
たとえば、二項分類用ロジスティック回帰コンポーネントには、2 つの出力ポートがあります。
-
Logistic Regression Model:この出力は、予測などのコンポーネントのモデル入力として使用されます。
-
PMML:モデルのデプロイは、通常、Predictive Model Markup Language (PMML) モデルに依存します。たとえば、組み込みプロセッサ (PMML Processor など) を使用して生成されたモデルをデプロイする必要がある場合は、モデル生成に対応したコンポーネントのパラメーターで [Generate PMML] を選択してから、コンポーネントを実行する必要があります。
モデル予測または推論
モデルをトレーニングした後、予測または推論コンポーネントを接続して、モデルのパフォーマンスを評価します。
たとえば、予測コンポーネントには、2 つの入力ポートがあります。
-
Model Input:モデルトレーニングセクションからトレーニング済みモデルを受け取ります。
-
Prediction Data Input:前処理されたテストデータを受け取ります。
分割されたテストデータを 予測ノードの予測データ入力ポートに接続します。二項分類用ロジスティック回帰モデルをモデル入力ポートに接続します。予測ノードの右側の設定ペインで、予測に使用する特徴量を選択して Feature Columns を設定し、Pass-through Columns を設定します。後で評価するためにラベル列を含めます。Output Result Column Name を prediction_result、Output Score Column Name を prediction_score、Output Detail Column Name を prediction_detail に設定します。
モデル評価
評価コンポーネントは、関連するメトリクスに基づいてモデルのパフォーマンスを分析します。
Machine Learning Designer は、次の評価コンポーネントを提供しており、必要に応じて予測コンポーネントの下流に接続できます。
評価コンポーネントには、二項分類評価、回帰評価、クラスタリング評価、混同行列、多クラス分類評価が含まれます。パイプラインキャンバスで、必要な評価ノードを 予測ノードの下流に接続して実行します。次に、ツールバーの 可視化アイコンをクリックして、評価結果を表示します。
モデルのデバッグ
デバッグと実行
-
パイプライン全体: キャンバスの左上隅にある
(実行) アイコンをクリックして、パイプライン全体を実行します。複雑なパイプラインの場合、デバッグを容易にするために、単一のノードまたはノードのサブセットを実行することを推奨します。 -
単一または複数のコンポーネント: コンポーネントを右クリックして、単一のノードまたはパイプラインの一部を実行します。複数の実行オプションを利用できます。
実行オプションには、[このノードを実行]、[ここから実行]、[ここまで実行]、[ルートからここまで実行]、[下流のノードを実行] が含まれます。
正常に実行されたコンポーネントには
アイコンが表示されます。失敗した場合は、
アイコンが表示されます。コンポーネントを右クリックして、ログと結果を表示できます。
ログと結果の表示
-
コンポーネントが正常に実行された後、コンポーネントを右クリックして [データを表示] を選択し、出力データを表示できます。
一部のコンポーネントでは、Machine Learning Designer はデータをグラフやチャートに変換できます。この複雑なデータと分析結果の可視化により、重要な情報、傾向、パターンをすばやく特定できます。また、[ビジュアル分析] をクリックするか、キャンバス上部の可視化アイコンをクリックして、ビジュアル分析を実行することもできます。詳細については、「ビジュアル分析」をご参照ください。
-
ログの表示:コンポーネントの実行に失敗した場合、コンポーネントを右クリックして [ログを表示] を選択し、失敗の根本原因を特定できます。
タスク実行履歴の表示
キャンバスの右上隅にある [すべてのタスクを表示] をクリックして、すべてのタスク実行履歴を表示します。モデリングプロセス中の各実行は履歴タスクとして記録され、関連するノード、その設定、および出力が保持されます。
表示される 履歴タスク パネルの各タスクの [操作] 列には、[詳細]、[モデル]、[バージョンロールバック]、[共有] のリンクが表示されます。[詳細] をクリックして、タスクのノード設定と出力結果を表示します。
タスク詳細ページで、左側のキャンバスで SQL Script-3 などの対象のノードをクリックします。右側のペインにノードの詳細が表示されます。[タスクログ] タブを選択して、実行ログを表示します。[実行情報] または [出力結果] タブに切り替えて、それぞれのコンテンツを表示することもできます。
バージョンロールバックを実行する必要がある場合は、履歴タスクの詳細を確認して、正しいバージョンにロールバックすることを確認してください。ロールバックする前に、最新のタスクを保存して実行してください。これにより、必要に応じて元に戻すことができる現在の状態の記録が作成されます。
関連トピック
-
モデルをデバッグした後、トレーニング済みモデルを新しいモデルとして登録し、管理できます。詳細については、「モデルの登録と管理」をご参照ください。
-
モデルをデバッグした後、オンライン予測用にデプロイできます。詳細については、「モデルの予測とデプロイ」をご参照ください。
-
Machine Learning Designer は、モデルサービスを更新するための Update EAS (Beta) コンポーネントを提供します。詳細については、「オンラインモデルサービスの定期的な更新」をご参照ください。
-
DataWorks を使用してパイプラインのオフライン実行をスケジュールし、モデルを定期的に更新できます。詳細については、「DataWorks を使用した Designer パイプラインのオフラインスケジュール」をご参照ください。
-
コンポーネントの詳細については、「コンポーネントリファレンス」をご参照ください。
-
「Machine Learning Designer の課金」をご参照ください。