Machine Learning Designer は、柔軟かつ可視化された方法でモデルを構築およびデバッグするのに役立つさまざまなモデルコンポーネントを提供します。このトピックでは、Machine Learning Designer のパイプラインを使用してモデルを構築およびデバッグする方法について説明します。このトピックでは、心臓病予測モデルを使用します。
前提条件
パイプラインが作成されていること。詳細については、「パイプラインの作成」をご参照ください。
モデルの構築
モデルは、複数のノード (コンポーネント) タスクで構成されます。ビジネス要件に基づいてモデルを構築するために、パイプラインを使用してノードタスクをオーケストレーションできます。モデルを構築する前に、モデルを分割し、ノードタスクを計画することをお勧めします。また、単純なタスクごとに 1 つのノードを使用することをお勧めします。次のセクションでは、モデルを構築するプロセスについて説明します。
パイプラインの詳細ページで、左側のコンポーネントリストから目的のコンポーネントを見つけ、キャンバスにドラッグします。
コンポーネントリストでは、Alink コンポーネントには、次の図の Read CSV File コンポーネントのような紫色のマークが付いています。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。', The type of chest pain of the patient. Valid values: typical, atypical, non-anginal, and asymptomatic. ', trestbps STRING COMMENT '患者の安静時血圧レベル。', chol STRING COMMENT '患者の血清コレステロール値。', fbs STRING COMMENT '患者の空腹時血糖値。空腹時血糖値が 120 mg/dl を超える場合、値は true に設定されます。それ以外の場合、値は false に設定されます。', restecg STRING COMMENT '患者の安静時心電図 (ECG) 結果。有効な値: norm と hyp。', thalach STRING COMMENT ‘最大心拍数。', exang STRING COMMENT ’患者が運動誘発性狭心症を持っているかどうかを指定します。有効な値: true と false。', oldpeak STRING COMMENT '安静時と比較して運動によって誘発される 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] という名前のノードが自動的に生成されます。名前の数字は、同じコンポーネントがキャンバスにドラッグされた順序に従います。
ノード構成ページで、ソーステーブルの名前を指定します。詳細については、「Read Table」をご参照ください。
キャンバスで、[Read Table-1] コンポーネントをクリックします。右側のノード構成ページで、[Table Name] フィールドに MaxCompute テーブルの名前を指定します。この例では、
heartdiseaseと入力します。説明MaxCompute プロジェクト間でテーブルからデータを読み取るには、テーブル名を
プロジェクト名.テーブル名の形式で入力します。例: as test2.heartdisease。プロジェクトの権限があることを確認してください。キャンバスの右側で、[Fields Information] タブをクリックして、公開データの列の詳細を表示します。
データの事前処理
データが読み取られた後、モデルのトレーニングまたは予測の入力要件を満たすために、データの事前処理が必要です。Machine Learning Designer は、さまざまなデータ事前処理コンポーネントと大規模モデルデータ事前処理コンポーネントを提供します。

また、SQL Script コンポーネントを使用して、機能の実装に使用されるカスタム 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: モデルのデプロイメントは、Predictive Model Markup Language (PMML) モデルに依存します。たとえば、PMML プロセッサなどの組み込みプロセッサを使用して生成されたモデルをデプロイする場合、コンポーネントを実行する前に、モデルコンポーネントのパラメーター構成で [Whether To Generate PMML] を選択する必要があります。

モデルの予測または推論の実行
モデルをトレーニングした後、予測または推論コンポーネントを接続して、モデルのパフォーマンスをテストできます。
この例では、予測コンポーネントが使用されます。予測コンポーネントには 2 つの入力ポートがあります。
モデル結果入力: トレーニング済みモデルが入力として使用されます。
予測データ入力: 事前処理されたテストデータが入力として使用されます。

モデルの評価
特定のモデルは評価コンポーネントを提供します。対応する評価コンポーネントを使用して、関連するメトリックを使用してモデルのパフォーマンスを分析できます。
たとえば、Machine Learning は次の評価コンポーネントを提供しており、予測コンポーネントの下流コンポーネントとして使用できます。

モデルのデバッグ
デバッグ実行
パイプライン: キャンバスの左上隅にある
アイコンをクリックして、パイプラインを直接実行します。パイプラインが複雑な場合は、デバッグを容易にするために、モジュールごとに 1 つ以上のノードを実行することをお勧めします。単一または複数のコンポーネント: 目的のコンポーネントを右クリックして、1 つ以上のコンポーネントを実行します。複数の実行メソッドがサポートされています。

コンポーネントが期待どおりに実行されると、
アイコンが表示されます。コンポーネントの実行に失敗すると、
アイコンが表示されます。コンポーネントを右クリックして、ログと結果を表示できます。
ログと結果の表示
データの表示と可視化分析:
コンポーネントの実行後、コンポーネントを右クリックして [View Data] を選択すると、生成されたデータを表示できます。
特定のコンポーネントでは、Machine Learning Designer を使用して、データをグラフやチャートに変換し、複雑なデータや分析結果を直感的でわかりやすい方法で表示できます。これにより、主要な情報をすばやく取得し、傾向やパターンを特定して、より効率的な分析と意思決定を行うことができます。データを可視化して分析するには、コンポーネントを右クリックして [Visual Analysis] を選択するか、キャンバスの上部にある可視化アイコンをクリックします。詳細については、「可視化分析」をご参照ください。
ログの表示: コンポーネントの実行に失敗した場合、コンポーネントを右クリックして [View Log] を選択し、障害のトラブルシューティングを行うことができます。
実行中のタスクの表示
キャンバスの右上隅にある [View All Tasks] をクリックして、すべての履歴タスクの実行詳細を表示します。各実行は、モデリング中に履歴タスクとして記録されます。各履歴タスクには、実行に関与したノード、ノードの構成、および生成されたデータが記録されます。


バージョンをロールバックする前に、履歴タスクの詳細を表示し、バージョンが正しいかどうかを確認することをお勧めします。また、ロールバックを実行する前に、モデルパイプラインを保存して実行することをお勧めします。これにより、最新のステータスを含むタスクレコードが生成されます。ロールバック中に例外が発生した場合、モデルパイプラインを最新のステータスにロールバックできます。
リファレンス
モデルをデバッグした後、トレーニング済みモデルを新しいモデルとして登録し、モデルを管理できます。詳細については、「モデルの登録と管理」をご参照ください。
モデルをデバッグした後、モデルをデプロイしてオンラインモデル予測を実行できます。詳細については、「モデルの予測とデプロイメント」をご参照ください。
モデルサービスをデプロイした後、Machine Learning Designer が提供する Update EAS Service (Beta) コンポーネントを使用して、モデルサービスを定期的に更新できます。詳細については、「オンラインモデルサービスの定期的な更新」をご参照ください。
DataWorks を使用すると、オフラインワークフローをスケジュールし、モデルを定期的に更新できます。詳細については、「DataWorks タスクを使用して Machine Learning Designer のパイプラインをスケジュールする」をご参照ください。
その他のコンポーネントについては、「Designer コンポーネントの概要」をご参照ください。
Machine Learning Designer の課金については、「Machine Learning Designer の課金」をご参照ください。
