モデルの説明可能性

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:4分
  • モデルの説明可能性を使用して、モデルの予測に対する各入力フィールドの重要性を分析します。提供されたスクリプトを実行して、機能重要度のグラフィカル分析を含むワークフロー分類モデルを作成します。

    始める前に

    • この方法では、ソリューション定義フォームの代わりにワークフロー分類ソリューション API を使用して、説明可能性が追加されたモデルを作成してトレーニングします。ワークフロー分類モデルのコンポーネントについては、「 分類ソリューションの作成とトレーニング」を参照してください。
    • 必要なロール:ml_admin または admin

    このタスクについて

    モデルの説明可能性は、トレーニング中にモデルの予測に影響を与える主要な特徴を特定するのに役立ちます。

    注:
    説明可能性を既存のモデルに追加することはできません。この方法では、スクリプトを使用して新しいワークフロー分類モデルを作成し、トレーニングします。機械学習モデルのスクリプティングの詳細については、「 機械学習 API の使用」を参照してください。

    手順で提供されるスクリプトは、説明可能性が true に設定されたモデルを作成してトレーニングします。新しいモデルのソリューションフォームに、[ 特徴の重要度 ] というラベルの付いた追加のタブが表示されます。このタブには、予測に対する各入力の相対的な寄与度のグラフが表示されます。[ソリューション] フォームで、[機能の重要性] タブがハイライト表示されます。[出力 (予測)] フィールドで、値 [グローバル] が選択され、グラフの例が表示されます。

    手順

    1. 次のように移動する。 All (すべて) > システム定義 > スクリプト - バックグラウンド.
    2. 計画したモデルに従って、次のスクリプトのクエリフィルターとテーブル、フィールド、および変数の値を編集し、スクリプトを実行します。
      // Define a dataset
                          var myIncidentData = new sn_ml.DatasetDefinition({
                          'tableName': 'incident',
                          'fieldNames': ['category', 'short_description', 'sys_updated_by', 'assignment_group', 'description', 'priority'],
                          'encodedQuery': 'activeANYTHING'
                          });
                          
                          // Define a classification solution definition with explainability field
                          var mySolution = new sn_ml.ClassificationSolution({
                          'label': 'model explainability',
                          'dataset': myIncidentData,
                          'predictedFieldName': 'category',
                          'inputFieldNames': ['short_description', 'priority'],
                          //setting the explainability field to true.
                          'explainability': true,
                          });
                          
                          // Add solution to ClassificationSolutionStore
                          var my_unique_name = sn_ml.ClassificationSolutionStore.add(mySolution)
                          
                          // Submit training job
                          var solutionVersion = mySolution.submitTrainingJob();
                      
      注:
      このスクリプトのクエリフィルターとテーブル、フィールド、および変数の名前を独自の値に置き換えます。
    3. ML ソリューション [ml_solution] テーブルに移動し、[ アクティブ ] フィールドの値を選択して新しいソリューションを開きます。
    4. ソリューションフォームで、[ 機能の重要性 (Feature Importance)] タブを見つけて開きます。
      [機能重要度 ] にドロップダウンリストが表示されます。

      [Feature Importance] タブで、出力フィールドに使用可能なクラスの範囲を含むドロップダウンリスト。

      • このドロップダウンリストのラベルは出力 (予測) フィールドの名前であるため、ラベルは各モデルに固有です。
      • ドロップダウンリストの値は、出力フィールドの可能な出力クラスと、[ グローバル ] オプションです。
      リストオプション説明
      グローバル すべての予測でモデルがどのように動作するかの概要を示し、各入力特徴の全体的な影響を示します。

      [グローバル] を選択すると、すべての出力クラス全体の予測に対する入力フィールドの重要性のグラフが開きます。

      出力クラス値 選択したクラスのモデルの動作のみに焦点を当て、入力特徴がクラスごとに予測にどのように寄与するかを示します。

      可能な出力クラスのいずれかを選択して、そのクラスの予測に対する入力フィールドの重要性のグラフを開きます。

    5. ドロップダウンリストから値を選択して、グラフィカル分析を開始します。
      Y 軸は入力フィールドを示し、X 軸は各入力の数値的重要度を示します。グラフのラベルには、ドロップダウンリストで選択したクラスが反映されます。[Feature Importance] タブで、可能な出力クラスの 1 つが選択されています。このクラスの予測に対する入力フィールドの重要性を示すグラフの例が表示されます。
      バーにカーソルを合わせると、各入力の重要性のパーセンテージが表示されます。

    タスクの結果

    正の重要度の値は、入力フィールドがモデルの予測スコアを増加させることを意味します。負の値は、入力フィールドが予測スコアを減少させることを意味します。

    次のタスク

    重要度スコアの低い入力フィールドを削除することを検討してください。変更後にモデルを再トレーニングします。