すべてのプロダクト
Search
ドキュメントセンター

Platform For AI:カスタムパイプライン

最終更新日:Dec 19, 2024

Machine Learning Designerはパイプラインを使用してモデルを構築およびデバッグします。 パイプラインの計画と作成から始めて、処理とスケジューリングのロジックに従ってさまざまなコンポーネントを整理します。 この例では、心臓病予測のためのバイナリ分類モデルを構築するためにブランクパイプラインが作成される。

前提条件

Platform for AI (PAI) がアクティブ化され、ワークスペースが作成されました。

ステップ1: パイプラインを作成する

[Visualized Modeling (Designer)] に移動し、ワークスペースを選択し、[Visualized Modeling (Designer)] ページに移動します。 表示されるページで、パイプラインを作成して開きます。

image

パラメーター

説明

パイプライン名

カスタム名を入力します。

データストレージ

実行中に一時的なデータとモデルを保存するには、このパラメーターをOSSバケットパスに設定することを推奨します。 指定しない場合、ワークスペースのデフォルトストレージが使用されます。

システムは、実行ごとにData Storage Path/Task ID/Node IDという名前の一時フォルダを自動的に作成するため、パイプライン内のすべてのコンポーネントのOSSパスを設定する必要はありません。 これにより、データの統合管理も容易になります。

可視性

  • Visible to Me: パイプラインはMy Pipelinesフォルダーの下に作成されます。 あなたとワークスペース管理者だけがパイプラインを見ることができます。

  • 現在のワークスペースに表示: パイプラインは [ワークスペースに表示] フォルダーに作成されます。 ワークスペースの誰もがパイプラインを見ることができます。

ステップ2: 準備とデータの前処理

モデルを構築する前に、データソースを準備し、データの前処理を完了します。 これにより、ビジネス要件に基づいた後続のモデルトレーニングが容易になります。

データの準備

作成したパイプラインで、[データソース /ターゲット] カテゴリにコンポーネントを追加して、MaxComputeやObject Storage Service (OSS) などのデータソースからデータを読み取ります。 詳細については、コンポーネントリファレンス: データソースまたは宛先の特定のコンポーネントドキュメントをご参照ください。 このトピックでは、[読み取りテーブル] コンポーネントを使用して、PAIが提供する心臓病の症例に関連するパブリックデータを読み取ります。 データセットの詳細については、「心臓病データセット」をご参照ください。

designer快速入门2

  1. [データソース /ターゲット] カテゴリの [テーブルの読み取り] コンポーネントに適切なテーブルを選択して、データを読み取ります。

    左側のコンポーネントリストで、[データソース /ターゲット] をクリックし、[テーブルの読み取り] コンポーネントを右側のキャンバスにドラッグして、MaxComputeテーブルデータを読み取ります。 Read Table-1という名前のパイプラインノードがキャンバス上に自動的に生成されます。

  2. ノード設定ページでソースデータテーブルを設定します。

    キャンバス上の [Read Table-1] ノードをクリックし、右側のノード設定セクションの [table name] フィールドにMaxComputeテーブル名を入力します。 このトピックでは、pai_online_project.heart_disease_predictionテーブルを使用して、PAIが提供する心臓病の症例に関連するパブリックデータを読み取ります。

  3. ノード設定セクションの [フィールド情報] タブに切り替えて、パブリックデータのフィールドの詳細を表示します。

前処理データ

このトピックで説明する心臓病の予測は、バイナリ分類の問題です。 ロジスティック回帰モデルコンポーネントには、DOUBLEまたはBIGINTタイプの入力データが必要です。 このセクションでは、モデルトレーニングのために心臓病の症例に関連するデータに対してデータ型変換などの前処理操作を実行する方法について説明します。

  1. データ前処理: 非数値フィールドを数値フィールドに変換します。

    designer快速入门1

    1. SQL Scriptコンポーネントを検索し、キャンバスにドラッグします。 SQL Script-1という名前のパイプラインノードが生成されます。

    2. [Read Table-1] ノードからSQL Script-1ノードのt1入力ポートに線を引きます。 このようにして、Read Table-1ノードはSQL Script-1ノードのデータソースになります。

    3. SQL Script-1ノードを設定します。

      [SQL Script-1] ノードをクリックし、右側のSQLスクリプトエディターに次のコードを入力します。 [パラメーターの設定] タブで、[入力ソース] フィールドにt1が表示されます。

      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};
    4. キャンバスの左上隅にある [保存] をクリックして、パイプライン設定を保存します。

    5. SQL Script-1コンポーネントを右クリックし、[Run from Root Node To Here] をクリックしてパイプラインをデバッグおよび実行します。

      パイプラインの各ノードは順番に実行されます。 ノードが期待どおりに実行されると、ノードの右上隅に表示されるノードボックスに运行成功アイコンが表示されます。

      説明

      キャンバスの左隅にある 运行(実行) アイコンをクリックして、パイプライン全体を実行することもできます。 パイプラインが複雑な場合は、コンポーネントに基づいて特定のノードまたは一部のノードを実行することをお勧めします。 これにより、パイプラインデバッグが容易になります。 ノードの実行に失敗した場合は、ノードを右クリックし、[ログの表示] を選択して障害を診断します。

    6. パイプラインの実行後、SQL Script-1などのノードを右クリックし、[データの表示] を選択して、ノードの出力データが正しいかどうかを確認します。

  2. データ前処理: ロジスティック回帰モデルの入力データ要件を満たすように、フィールドをDOUBLEデータ型に変換します。

    b4e7bb3e15838f4bfd46dcdec8eb60d6.png

    [データ型変換] コンポーネントをキャンバスにドラッグし、前の手順を参照して、[SQL Script-1] ノードを [データ型変換-1] ノードに接続します。 このようにして、Data Type Conversion-1ノードは、SQL Script-1ノードの下流ノードになります。 [データ型変換-1] ノードをクリックします。 [フィールド設定] タブで、[ダブルタイプの列に変換] フィールドの [フィールドの選択] をクリックし、すべてのフィールドを選択して、フィールドをダブルデータタイプに変換します。

  3. データの前処理: データを正規化して、各特徴の値を0から1の範囲の値に変換します。 これにより、予測結果に対するディメンションの影響が取り除かれます。

    [正規化] コンポーネントをキャンバスにドラッグし、前の手順を参照して、[データ型変換-1] ノードを [正規化-1] ノードに接続します。 このようにして、正規化 − 1ノードは、データ型変換 − 1ノードの下流ノードになる。 [Normalization-1] ノードをクリックします。 [フィールド設定] タブで、すべてのフィールドを選択します。

  4. データ前処理: データをトレーニングデータセットと予測データセットに分割し、その後のモデルトレーニングと予測を行います。

    [Split] コンポーネントをキャンバスにドラッグし、[Normalization-1] ノードを [Split-1] ノードに接続します。 このようにして、Split-1ノードはNormalization-1ノードの下流ノードになります。 Split-1ノードの実行後、2つのデータテーブルが生成されます。

    デフォルトでは、Splitコンポーネントはデータをモデルトレーニングセットとモデル予測セットに4:1の比率で分割します。 [分割1] ノードをクリックします。 右側の [パラメーターの設定] タブで、[分割] パラメーターを指定します。 その他のパラメーターの詳細については、「分割」をご参照ください。

  5. [データ型変換-1] ノードを右クリックし、[ここから実行] をクリックして、データ型変換-1ノードからパイプライン内のノードを実行します。

ステップ3: モデルを訓練する

各サンプルにおいて、各患者は病気または健康である。 したがって、心臓病の予測はバイナリ分類の問題です。 このセクションでは、バイナリ分類コンポーネントのロジスティック回帰を使用して心臓病予測モデルを構築する方法について説明します。

designer快速入门3

  1. バイナリ分類のロジスティック回帰コンポーネントをキャンバスにドラッグし、[分割1] ノードの [出力テーブル1] を [バイナリ分類のロジスティック回帰-1] ノードに接続します。 このようにして、Binary Classification-1ノードのロジスティック回帰は、Split-1ノードの出力テーブル1の下流ノードになります。

  2. バイナリ分類-1ノードのロジスティック回帰を設定します。

    [バイナリ分類のロジスティック回帰-1] ノードをクリックします。 右側の [フィールド設定] タブで、[ターゲット列] パラメーターの [ifhealth] フィールドを選択し、[トレーニング機能列] パラメーターの [ターゲット列] パラメーターの値を除くすべてのフィールドを選択します。 その他のパラメーターの詳細については、「バイナリ分類のロジスティック回帰」をご参照ください。

  3. バイナリ分類のロジスティック回帰ノードを実行します。

ステップ4: 予測にモデルを使用する

image

  1. [予測] コンポーネントをキャンバスにドラッグし、[分割1] ノードの [出力テーブル2] と [バイナリ分類のロジスティック回帰-1] ノードを [予測-1] ノードに接続します。 このようにして、予測1ノードは、スプリット1ノードの出力テーブル2の下流ノードとなり、バイナリ分類1ノードのロジスティック回帰になります。

  2. [予測-1] ノードをクリックします。 [フィールドの設定] タブで、予約済み列パラメーターのifhealthフィールドを選択し、[機能列] パラメーターのifhealthフィールド以外のすべてのフィールドを選択します。

  3. [Prediction-1] ノードを実行し、予測結果を表示します。

    予測-1ノードを実行した後、予測-1ノードを右クリックし、[データの表示] > [予測結果出力ポート] を選択し、予測データを表示します。

    image

ステップ5: モデルの評価

  1. [バイナリ分類評価] コンポーネントをキャンバスにドラッグし、[予測-1] ノードを [バイナリ分類評価-1] ノードに接続します。 このようにして、Binary Classification Evaluation-1ノードは、Prediction-1ノードの下流ノードになります。

  2. [バイナリ分類評価-1] ノードをクリックします。 右側の [フィールド設定] タブで、[元のラベル列] パラメーターの [ifhealth] フィールドを選択します。

  3. [バイナリ分類評価-1] ノードを実行し、モデルの評価結果を表示します。

    [バイナリ分類評価-1] ノードを実行したら、[バイナリ分類評価-1] ノードを右クリックし、[ビジュアル分析] を選択して、さまざまな評価メトリックを視覚化して表示します。

    模型评估

関連ドキュメント