ビジュアルモデリングは、モデルを視覚的に構築しデバッグするための豊富なコンポーネントセットを提供します。次の例では、心臓病予測モデルを使用して、ビジュアルモデリングパイプラインにおけるモデル構築とデバッグのプロセスを順を追って説明します。
前提条件
パイプラインを作成済みであること。
モデルの構築
モデルは、パイプラインに編成されたノード (コンポーネント) として表される、複数のきめ細かいタスクから構成されます。構築を開始する前に、モデルをより小さなタスクに分割して計画します。各ノードは、単一の単純なタスクを実行する必要があります。一般的なプロセスは次のとおりです。
-
左側のコンポーネントリストでコンポーネントを見つけ、キャンバスにドラッグします。
リスト内で紫色のアイコンが付いているコンポーネントは、Alink コンポーネントです (CSV ファイルの読み取りコンポーネントなど)。標準機能に加えて、Alink コンポーネントはグループ化できます。グループのリソースを設定すると、実行効率とリソース使用率が向上します。詳細については、「Alink コンポーネント」をご参照ください。
-
ターゲットノードをクリックして、右側のペインでそのパラメーターを設定します。
-
ノードを接続して、アップストリームとダウンストリームの関係を持つパイプラインに編成します。
各ノードには、1 つ以上の入力ポートまたは出力ポートがあります。ポートにカーソルを合わせるとデータ型が表示され、ノードを正しく接続するのに役立ちます。
モデルが実行されると、まずアップストリームノードが実行されます。ダウンストリームノードは、そのすべてのアップストリームノードが正常に完了した後にのみ開始されます。
モデルの構築は、通常、次のステージで構成されます。
データの読み取り
パイプラインに [ソース/宛先] コンポーネントを追加して、MaxCompute や Object Storage Service (OSS) などのソースからデータを読み取ります。詳細については、コンポーネントリファレンス: ソース/宛先にある各コンポーネントのドキュメントをご参照ください。この例では、MaxCompute からデータを読み取ります。
-
MaxCompute でテーブルを作成し、データをインポートします。詳細については、「MaxCompute テーブルの作成と使用」をご参照ください。
この例では、
testプロジェクトにheartdiseaseという名前のテーブルを作成し、テストデータをインポートします。-- テーブルを作成します。 CREATE TABLE IF NOT EXISTS heartdisease( age STRING COMMENT '患者の年齢。', sex STRING COMMENT '患者の性別。有効値:female または male。', cp STRING COMMENT '胸痛のタイプ。この例のスクリプトでは、`angina`、`notang` などの値が使用されます。', trestbps STRING COMMENT '安静時血圧。', chol STRING COMMENT '血清コレステロール。', fbs STRING COMMENT '空腹時血糖値。値が 120 mg/dl を超える場合は true、それ以外の場合は false。', restecg STRING COMMENT '安静時心電図の結果。この例のスクリプトでは、`norm`、`abn` などの値が使用されます。', thalach STRING COMMENT '達成された最大心拍数。', exang STRING COMMENT '患者が運動誘発性狭心症であるかどうかを示します。true は「はい」、false は「いいえ」を示します。', oldpeak STRING COMMENT '安静時と比較した運動誘発性の ST 低下 (ST 部分の低下値)。', slop STRING COMMENT 'ピーク運動時の ST 部分の傾き。この例のスクリプトでは、`up`、`flat` などの値が使用されます。', ca STRING COMMENT '透視検査で発見された主要血管の数。', thal STRING COMMENT '欠陥のタイプ。この例のスクリプトでは、`norm`、`fix` などの値が使用されます。', `status` STRING COMMENT '患者が疾患を有するかどうかを示します。この例のスクリプトでは、`sick` などの値が使用されます。', style STRING); -- デモンストレーションのため、この例では Platform for AI (PAI) のパブリックテストデータを直接インポートします。 INSERT INTO heartdisease select * from pai_online_project.heart_disease_prediction; -
[テーブル読み込み] コンポーネントをキャンバスにドラッグして、MaxCompute テーブルからデータを読み込みます。
キャンバス上に [テーブル読み込み-1] ノードが自動的に作成されます。この数字は、同じタイプのコンポーネントを追加した順に 1 からインクリメントされます。
-
ノード設定ペインで、ソーステーブル名を設定します。パラメーターの詳細については、「テーブルの読み取り」をご参照ください。
キャンバスで、[テーブル読み取り-1] ノードを選択します。右側のノード設定ペインで、[テーブル名] フィールドに、対応する MaxCompute テーブル名として
heartdiseaseを入力します。説明MaxCompute プロジェクト間でテーブルデータを読み取る場合、テーブル名は
project_name.table_name形式 (例:test2.heartdisease) である必要があり、そのプロジェクトに対する権限が必要です。 -
右側の設定ペインで、[フィールド情報] タブに切り替えると、このパブリックデータセットのフィールド詳細を表示できます。
データ前処理
データを読み取った後、モデルトレーニングまたは予測の入力要件を満たすように前処理を行います。ビジュアルモデリングは、豊富なデータ前処理コンポーネントと大規模モデルデータ処理コンポーネントを提供します。
この例では、データ前処理ステージで、SQL スクリプト、型変換、正規化、分割の 4 つのコンポーネントを順番に使用します。これらは、テーブルの読み取り コンポーネントと 二項分類のロジスティック回帰 コンポーネントの間に配置されます。
また、SQL スクリプト コンポーネントを使用して、特徴量用のカスタム SQL スクリプトを作成することもできます。たとえば、次のスクリプトは入力特徴量のデータ型を変換します。
select age,
(case sex when 'male' then 1 else 0 end) as sex,
(case cp when 'angina' then 0 when 'notang' 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 'abn' 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 つの出力ポートがあります。
-
ロジスティック回帰モデル:この出力は、予測などのコンポーネントのモデル入力として機能します。
-
PMML:モデルのデプロイでは、通常、予測モデルマークアップ言語 (PMML) モデルが使用されます。たとえば、PMML プロセッサなどの組み込みプロセッサを使用して生成されたモデルをデプロイするには、モデル生成をサポートするコンポーネントのパラメーターで[PMML の生成]を選択し、そのコンポーネントを実行する必要があります。
モデルの予測または推論
モデルをトレーニングした後、予測または推論コンポーネントを接続して、モデルのパフォーマンスを評価します。
たとえば、予測 コンポーネントには 2 つの入力ポートがあります。
-
モデル入力:モデルトレーニングセクションでトレーニングされたモデルを受け取ります。
-
予測データ入力:前処理されたテストデータを受け取ります。
分割されたテストデータを 予測 ノードの予測データ入力ポートに接続します。二項分類のロジスティック回帰モデルをモデル入力ポートに接続します。予測 ノードの右側の設定ペインで、予測に使用する特徴量を選択して [Feature Columns] を設定し、[Pass-through Columns] を設定します。後の評価のためにラベル列を含めます。[Output Result Column Name] を prediction_result に、[Output Score Column Name] を prediction_score に、[Output Detail Column Name] を prediction_detail に設定します。
モデル評価
評価コンポーネントは、関連するメトリクスに基づいてモデルのパフォーマンスを分析します。
ビジュアルモデリングは、以下の評価コンポーネントを提供しており、必要に応じて 予測 コンポーネントのダウンストリームに接続できます。
評価コンポーネントには、二項分類評価、回帰評価、クラスタリング評価、混同行列、多クラス分類評価 が含まれます。パイプラインキャンバスで、必要な評価ノードを 予測 ノードのダウンストリームに接続して実行します。その後、ツールバーの 可視化 アイコンをクリックして評価結果を表示します。
モデルのデバッグ
デバッグと実行
-
パイプライン全体:キャンバスの左上隅にある
(実行) アイコンをクリックして、パイプライン全体を実行します。複雑なパイプラインの場合は、デバッグを容易にするために、単一のノードまたはノードのサブセットを実行することを推奨します。 -
単一または複数のコンポーネント:コンポーネントを右クリックして、単一のノードまたはパイプラインの一部を実行します。複数の実行オプションが利用できます。
実行オプションには、[Run This Node]、[Run from Here]、[Run to Here]、[Run from Root to Here]、[Run Downstream Nodes] があります。
アイコンは、正常に実行されたコンポーネントに表示されます。失敗した場合は、
アイコンが表示されます。コンポーネントを右クリックして、ログと結果を表示できます。
ログと結果の表示
-
コンポーネントが正常に実行された後、そのコンポーネントを右クリックして [データの表示] を選択すると、出力データを表示できます。
一部のコンポーネントでは、Machine Learning Designer はデータをグラフやチャートに変換できます。複雑なデータと分析結果を視覚化することで、主要な情報、傾向、パターンをすばやく特定できます。また、キャンバスの上部にある [視覚化分析] または視覚化アイコンをクリックして、視覚化分析を実行することもできます。詳細については、「視覚化分析」をご参照ください。
-
ログの表示: コンポーネントの実行に失敗した場合、コンポーネントを右クリックして[ログの表示]を選択すると、失敗の根本原因を特定できます。
実行中のタスクの表示
すべての過去のタスク実行を表示するには、キャンバスの右上隅にある[すべてのタスクを表示]をクリックします。モデリングプロセス中の各実行は、関連するノード、その設定、および出力を保持したまま、履歴タスクとして記録されます。
表示される [Historical Tasks] パネルで、各タスクの [Actions] 列には、[Details]、[Model]、[version rollback]、[Share] のリンクがあります。[Details] をクリックすると、タスクのノード設定と出力結果が表示されます。
タスク詳細ページで、左側のキャンバス上のターゲットノード (SQL Script-3 など) をクリックします。右側のペインにノードの詳細が表示されます。[Task Log] タブを選択して実行ログを表示します。[Run Information] または [Output Results] タブに切り替えて、それぞれの内容を表示することもできます。
バージョンのロールバックを実行する必要がある場合は、履歴タスクの詳細を確認して、正しいバージョンにロールバックしていることを確認してください。ロールバックする前に、最新のタスクを保存して実行します。これにより、必要に応じて元に戻すことができる現在の状態のレコードが作成されます。
関連トピック
-
モデルをデバッグした後、トレーニング済みのモデルを新しいモデルとして登録し、管理できます。詳細については、「モデルの登録と管理」をご参照ください。
-
モデルをデバッグした後、オンライン予測用にデプロイできます。詳細については、「モデルの予測とデプロイ」をご参照ください。
-
ビジュアルモデリングは、モデルサービスを更新するための Update EAS (Beta) コンポーネントを提供します。詳細については、「オンラインモデルサービスの定期的な更新」をご参照ください。
-
DataWorks を使用して、オフラインのパイプライン実行をスケジューリングし、モデルを定期的に更新できます。詳細については、「DataWorks を使用したビジュアルモデリングパイプラインのオフラインでのスケジューリング」をご参照ください。
-
コンポーネントの詳細については、「コンポーネントリファレンス」をご参照ください。