ClassificationSolutionVersion - グローバル

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:28分
  • ClassificationSolutionVersion API は、予測インテリジェンスストアで使用されるスクリプト可能なオブジェクトです。

    この API には 予測インテリジェンス プラグイン (com.glide.platform_ml) が必要です。この API は sn_ml 名前空間内で提供されます。

    この API は、ClassificationSolution ストア内の ClassificationSolution API オブジェクトに基づいてソリューションバージョンを操作するために使用されます。

    ソリューション定義をトレーニングするたびに、ソリューションのバージョンが作成されます。ほとんどのバージョンは、スケジュール設定済みのソリューショントレーニング中に作成されます。

    この API のメソッドには、次の ClassificationSolution - グローバル メソッドを使用してアクセスできます。

    ClassificationSolutionVersion - getPredictionPerformance(オブジェクト options)

    ソリューションの精度と範囲を計算します。

    このメソッドを使用するには、最初に setPredictionSettings() メソッドを使用して設定を作成する必要があります。

    表 : 1. パラメーター
    名前 タイプ 説明
    オプション オブジェクト 日付スパン内で取得する測定基準を選択します。詳細については、「 ターゲットメトリクスの構成」を参照してください。
    {
      "fromDate": "String",
      "metricName": "String",
      "toDate": "String"
    }
    options.fromDate 文字列 オプション。測定基準をシステム日時形式で取得する開始日。
    options.metricName 文字列 メトリクスの名前。
    有効な値:
    • precision
    • coverage
    options.toDate 文字列 オプション。メトリクスの取得を終了する日付。

    形式:システムの日時形式。

    表 : 2. 戻り値
    タイプ 説明
    オブジェクト 入力測定基準の結果を含む解析可能な JavaScript オブジェクト。
    {
      "metricName" : "String",
      "metricValue" : "String",
      "numberOfPredictionsConsidered" : "String"
    }
    Object.metricName 入力として選択された測定基準の名前。

    データタイプ:文字列

    Object.metricValue 選択された測定基準の値。

    データタイプ:文字列

    Object.numberOfRecordsConsidered 計算で考慮される予測結果 [ml_predictor_results] テーブル内のレコードの数。

    データタイプ:文字列

    次の例は、ソリューションのアクティブバージョンから精度の値を取得する方法を示しています。

    // Get precision value
    var mlSolution = sn_ml.ClassificationSolutionStore.get('ml_incident_categorization');
    
    gs.print(JSON.stringify(JSON.parse(mlSolution.getActiveVersion().getPredictionPerformance({"metricName": "precision"})), null, 2));

    出力:

    {
      "metricName": "precision",
      "metricValue": "70.10",
      "numberOfPredictionsConsidered": "10"
    }

    ClassificationSolutionVersion - getPredictionSettings()

    ML ソリューション [ml_solution] テーブルから推定精度、推定範囲、推定リコールの値を取得し、クラスの信頼性 [ml_class] テーブルからレコードを取得します。

    表 : 3. パラメーター
    名前 タイプ 説明
    なし
    表 : 4. 返される内容
    タイプ 説明
    オブジェクト 各クラスの予測設定を返します。データには、ML ソリューション [ml_solution] テーブルのトレーニング済みモデルに含まれるすべてのクラスの精度、範囲、リコール、および分布の値が含まれます。詳細については、「 予測モデルコンポーネント」を参照してください。
    {
      "<class name>": {Object}
    }
    <Object>.<クラス名> クラス信頼度 [ml_class] テーブルのトレーニング統計情報データ。詳細については、「 ターゲットメトリクスの構成」を参照してください。

    データタイプ: オブジェクト

    {
      "precision": "String",
      "coverage": "String",
      "recall": "String"
    }
    <Object>.<クラス名>.precision このクラスの推定ソリューション精度の測定基準。

    データタイプ:文字列 (数値)

    <Object>.<クラス名>.coverage このクラスの推定ソリューション範囲の測定基準。

    データタイプ:文字列 (数値)

    <Object>.<クラス名>.recall このクラスの推定ソリューションリコールの測定基準。

    データタイプ:文字列 (数値)

    次の例は、ソリューションのアクティブバージョンの精度設定を取得する方法を示しています。

    var mlSolution = sn_ml.ClassificationSolutionStore.get('ml_incident_categorization');
    
    gs.print(JSON.stringify(JSON.parse(mlSolution.getActiveVersion().getPredictionSettings()), null, 2));

    出力:

    {
      "solutionSettings": {
        "precision": "61.69",
        "coverage": "66.75",
        "recall": "57.54"
      },
      "classSettings": {
        "Approvals": {
          "precision": "100",
          "coverage": "0",
          "recall": "0"
        },
        "Authentication": {
          "precision": "38.71",
          "coverage": "98.44",
          "recall": "56.25"
        },
        "Automation": {
          "precision": "100",
          "coverage": "0",
          "recall": "0"
        }, ...

    ClassificationSolutionVersion - getProperties()

    ソリューションオブジェクトプロパティを取得します バージョン番号

    表 : 5. パラメーター
    名前 タイプ 説明
    なし
    表 : 6. 返される内容
    タイプ 説明
    オブジェクト データセットのコンテンツと ClassificationSolution のバージョンの詳細。結果はオブジェクトプロパティのセットアップによって異なります。
    {
      "algorithmConfig": {
        "algorithm": "String",
        "targetClassRecall": "String"
      },
      "datasetProperties": {Object},
      "domainName": "String",
      "encoder": {Object},
      "groupByFieldName": "String",   
      "inputFieldNames": [Array],
      "isActive": Boolean,
      "label": "String",
      "name": "String",
      "predictedFieldName": "String",
      "processingLanguage": "String",
      "scope": "String",
      "stopwords": [Array],
      "stopwords": [Array],
      "trainingFrequency": "String",
      "versionNumber": "Number"
    }
    <Object>.algorithmConfig ソリューションをエンコードするメソッド。

    データタイプ: オブジェクト

    <Object>.algorithmConfig.algorithm このソリューションをトレーニングするためのエンコーディングアルゴリズムの名前。
    可能な値:
    • xgboost:トレーニングを最適化するための XGBoost エンコーディング。
    • logisticRegression:名目値や序数などのカテゴリターゲットにロジスティック回帰モデルを使用する方法。

    データタイプ:文字列

    <Object>.algorithmConfig.targetClassRecall 特定のクラスをバイアスするソリューションのトレーニングを操作するためのクラスリコールパラメーター。リコール値は、パーセンテージを表す 0 〜 100 の数値です。

    データタイプ:文字列

    <Object>.datasetProperties

    ソリューションに関連付けられた DatasetDefinition() オブジェクトのプロパティを一覧表示します。

    データタイプ: オブジェクト

    {
      "encodedQuery": "String",
      "fieldDetails": [Array],
      "fieldNames": [Array],
      "tableName": "String"
    }
    <Object>.datasetProperties.tableName データセットのテーブルの名前。例:"tableName" : "Incident"

    データタイプ:文字列

    <Object>.datasetProperties.fieldNames 指定されたテーブルからの文字列としてのフィールド名のリスト。例:"fieldNames" : ["short_description", "priority"]

    データタイプ:アレイ

    <Object>.datasetProperties.fieldNames.fieldDetails フィールドプロパティを指定する JavaScript オブジェクトのリスト。

    データタイプ:オブジェクトのアレイ

    [
      {
        "name": "String",
        "type": "String"
      }
    ]
    <Object>.datasetProperties.fieldNames.fieldDetails.<object>.name このデータセットを制限する情報のタイプを定義するフィールドの名前。

    データタイプ:文字列

    <Object>.datasetProperties.fieldDetails.<object>.type 機械学習フィールドタイプ。

    データタイプ:文字列

    <Object>.datasetProperties.fieldDetails.encodedQuery 標準の Glide 形式のエンコードされたクエリ文字列。「エンコードされたクエリ文字列」を参照してください。

    データタイプ:文字列

    <Object>.domainName このデータセットに関連付けられたドメイン名。ドメインセパレーションおよび予測インテリジェンスを参照してください。

    データタイプ:文字列

    <Object>.encoder このソリューションに割り当てられるエンコーダーオブジェクト。。「Encoder - Encoder(オブジェクト config)」を参照してください。

    データタイプ: オブジェクト

    <Object>.groupByFieldName レコードをグループ化して分類ソリューションを構築するために使用するフィールド名。

    データタイプ:文字列

    <Object>.inputFieldNames 文字列としての入力フィールド名のリスト。モデルは、次のフィールドを使用して予測を行います。

    データタイプ:文字列

    <Object>.isActive このバージョンがアクティブかどうかを示すフラグ。
    有効な値:
    • true:バージョンはアクティブです。
    • false:バージョンはアクティブではありません。

    データタイプ:文字列

    <Object>.label 予測タスクを識別します。
    {
      "label": "my first prediction"
    }

    データタイプ:文字列

    <Object>.name システムによって割り当てられた名前。

    データタイプ:文字列

    <Object>.predictedFieldName 予測可能性についてトレーニングするフィールドを識別します。

    データタイプ:文字列

    <Object>.processingLanguage 2 文字の ISO 639-1 言語コード形式の処理言語。

    データタイプ:文字列

    <Object>.scope オブジェクトスコープ。現在、有効な値は global のみです。

    データタイプ:文字列

    <Object>.stopwords オプション。language プロパティ設定に基づいて自動的に生成される文字列のプリセットリスト。詳細については、「 カスタム ストップワード リストを作成する」を参照してください。

    データタイプ:アレイ

    <Object>.trainingFrequency モデルを再トレーニングする頻度。
    可能な値:
    • every_30_days
    • every_60_days
    • every_90_days
    • every_120_days
    • every_180_days
    • run_once
    デフォルト:run_once

    データタイプ:文字列

    <Object>.versionNumber のバージョン番号 ClassificationSolution オブジェクト。

    データタイプ:文字列

    次の例では、ストア内のアクティブなオブジェクトバージョンのプロパティを取得します。

    // Get properties
    var mlSolution = sn_ml.ClassificationSolutionStore.get('ml_incident_categorization');
    
    gs.print(JSON.stringify(JSON.parse(mlSolution.getActiveVersion().getProperties()), null, 2));

    出力:

    *** Script: {
      "datasetProperties": {
        "encodedQuery": "activeANYTHING^EQ",
        "fieldNames": [
          "short_description",
          "category"
        ],
        "tableName": "incident"
      },
      "domainName": "global",
      "inputFieldNames": [
        "short_description"
      ],
      "isActive": "true",
      "label": "Incident Categorization_Trainer",
      "name": "ml_incident_categorization",
      "predictedFieldName": "category",
      "processingLanguage": "en",
      "stopwords": [
        "Default English Stopwords"
      ],
      "versionNumber": "1"
    }

    ClassificationSolutionVersion - getStatus(ブール includeDetails)

    トレーニング完了ステータスを取得します。

    表 : 7. パラメーター
    名前 タイプ 説明
    includeDetails ブーリアン ステータス details を返すかどうかを示すフラグ。
    有効な値:
    • true:追加の詳細を返します。
    • false:追加の詳細を返しません。

    デフォルト値:False

    表 : 8. 返される内容
    タイプ 説明
    オブジェクト ClassificationSolution オブジェクト のトレーニングステータス情報を含む JavaScript オブジェクト
    {
      "state": "String",
      "percentComplete": "Number as a String",
      "hasJobEnded": "Boolean value as a String",
      "details": {Object}
    }
    <Object>。state トレーニング完了ステータス。トレーニングジョブがターミナルステータスに達した場合、ジョブはそのステータスを終了しません。ステータスがターミナルの場合、hasJobEnded プロパティは true に設定されます。
    可能な値:
    • fetching_files_for_training
    • preparing_data
    • 再試行
    • solution_cancelled (terminal)
    • solution_complete (terminal)
    • solution_error (terminal)
    • solution_incomplete
    • training_request_received
    • training_request_timed_out (terminal)
    • training_solution
    • Uploading_solution
    • waiting_for_training

    データタイプ:文字列

    <Object>.hasJobEnded トレーニングが完了したかどうかを示すフラグ。
    有効な値:
    • true:トレーニングは完了しました。
    • false:トレーニングは完了していません。

    データタイプ:文字列としてのブール値

    <Object>.percentComplete トレーニング完了率。完了率が 100 未満の場合、ジョブはターミナルステータスである可能性があります。たとえば、トレーニングがタイムアウトした場合などです。

    データタイプ:文字列としての数値

    範囲:0 〜 100

    <Object>.details 追加のトレーニングの詳細のリストを含むオブジェクト。

    データタイプ:オブジェクト

    次の例は、トレーニングが完了して成功した結果を示しています。

    // Get status
    var mlSolution = sn_ml.ClassificationSolutionStore.get('ml_incident_categorization');
    
    gs.print(JSON.stringify(JSON.parse(mlSolution.getActiveVersion().getStatus(true), null, 2)));

    出力:

    {
     "state":"solution_complete",
     "percentComplete":"100",
     "hasJobEnded":"true",
     "details":{"stepLabel":"Solution Complete"} // This information is only returned if getStatus(true);
    }

    次の例は、トレーニングが完了して失敗した結果を示しています。

    // Get status
    var solutionName = 'ml_x_snc_global_global_classification_solution';
    var mlSolution = sn_ml.ClassificationSolutionStore.get(solutionName);
    var trainingStatus = mlSolution.getLatestVersion().getStatus();
    
    gs.print(JSON.stringify(JSON.parse(trainingStatus), null, 2));

    出力:

    {
     "state":"solution_error",
     "percentComplete":"100",
     "hasJobEnded":"true"
    }

    ClassificationSolutionVersion - getTrainingStatistics()

    指定されたソリューションのすべてのトレーニング統計情報を取得します。

    表 : 9. パラメーター
    名前 タイプ 説明
    なし
    表 : 10. 返される内容
    タイプ 説明
    オブジェクト トレーニングに含まれる各クラスの統計情報とトレーニングから除外された各クラスの値を含む JavaScript オブジェクト。詳細については、「 予測モデルコンポーネント」を参照してください。
    {
      "includedClasses": {Object},
      "excludedClasses": {Object}
    }
    <Object>.includedClasses トレーニング済みモデル内の各クラスの精度、範囲、リコール、および分布の値を含むオブジェクト。

    データタイプ: オブジェクト

    
      "includedClasses": {
        "<class name>": {
          "distribution": "String",
          "statistics": [Array]
        },
    <Object>.includedClasses.<クラス名>.distribution このクラスの結果確率分布の値。

    データタイプ:文字列

    <Object>.includedClasses.<クラス名>.statistics トレーニング統計データを提供するオブジェクトのリスト。詳細については、「 ターゲットメトリクスの構成」を参照してください。

    データタイプ:オブジェクトのアレイ

    [
      {
        "coverage": "String",
        "precision": "String",
        "recall": "String",
        "selected": "String"
      }
    ]
    <Object>.includedClasses.<クラス名>.statistics.coverage このクラスの推定ソリューション範囲の測定基準。

    データタイプ:文字列 (数値)

    <Object>.includedClasses.<クラス名>.statistics.precision このクラスの推定ソリューション精度の測定基準。

    データタイプ:文字列 (数値)

    <Object>.includedClasses.<クラス名>.statistics.recall このクラスの推定ソリューションリコールの測定基準。

    データタイプ:文字列 (数値)

    <Object>.includedClasses.<クラス名>.statistics.selected このクラスがソリューショントレーニングのレコードを含むかどうかを示すフラグ。
    有効な値:
    • true:このクラスは、ソリューションのトレーニングについて選択されたレコードを含んでいます。
    • false:このクラスはトレーニングから除外されています。

    データタイプ:文字列 (ブール値)

    デフォルト値:false

    <Object>.excludedClasses トレーニングから除外されたすべてのクラスの分布と行数。

    データタイプ: オブジェクト

    
      "excludedClasses": {
        "<class name>": {
          "distribution": "0.11",
          "rowCount": "9"
        }
    <Object>.excludedClasses.<クラス名>.distribution このクラスの結果確率分布の値。

    データタイプ:文字列

    <Object>.excludedClasses.<クラス名>.rowCount トレーニングから除外された行の数。

    データタイプ:文字列 (数値)

    次の例は、アクティブなソリューションからトレーニング統計情報を取得する方法を示しています。

    // Get training stats
    var mlSolution = sn_ml.ClassificationSolutionStore.get('ml_incident_categorization');
    
    gs.print(JSON.stringify(JSON.parse(mlSolution.getActiveVersion().getTrainingStatistics()), null, 2));

    出力:

    {
      "includedClasses": {
        "Approvals": {
          "distribution": "0.43",
          "statistics": [
            {
              "precision": "100",
              "coverage": "0",
              "recall": "0",
              "selected": "true"
            }
          ]
        }, 
        "Authentication": {
          "distribution": "4.3",
          "statistics": [
            {
              "precision": "39.33",
              "coverage": "95.31",
              "recall": "54.69",
              "selected": "false"
            },
            {
              "precision": "100",
              "coverage": "0",
              "recall": "0",
              "selected": "false"
            },
         ...
        }
        ...
      "excludedClasses": {
        "ACE": {
          "distribution": "0.11",
          "rowCount": "9"
        },
        "AHA": {
          "distribution": "0.01",
          "rowCount": "1"
        }, 
        ...
    }

    ClassificationSolutionVersion - getVersionNumber()

    ソリューションオブジェクトのバージョン番号を取得します

    表 : 11. パラメーター
    名前 タイプ 説明
    なし
    表 : 12. 返される内容
    タイプ 説明
    文字列 バージョン番号。

    次の例は、バージョン番号を取得する方法を示しています。

    // Get version number
    var mlSolution = sn_ml.ClassificationSolutionStore.get('ml_incident_categorization');
    
    gs.print("Version number: "+JSON.stringify(JSON.parse(mlSolution.getActiveVersion().getVersionNumber()), null, 2));

    出力:

    Version number: 1

    ClassificationSolutionVersion - predict(オブジェクト input, オブジェクト options)

    予測の入力データを取得します。

    表 : 13. パラメーター
    名前 タイプ 説明
    入力 オブジェクト GlideRecord または、キーと値のペアとしてフィールド名と値を含む JSON オブジェクトのアレイ。
    オプション オブジェクト 予測結果をフィルタリングするためのオプションの値。
    {
      "apply_threshold": Boolean,
      "top_n": Number
    }
    options.apply_threshold ブーリアン ソリューションのしきい値をチェックして結果セットに適用するかどうかを示すフラグ。
    有効な値:
    • true:信頼性がしきい値より大きい結果を返します。
    • false:すべての結果を返します。

    デフォルト:true

    options.top_n 番号 指定されている場合、指定された予測の数までの上位の結果を返します
    表 : 14. 返される内容
    タイプ 説明
    オブジェクト sys_id または record_number でソートされた予測結果を含む JSON オブジェクト。
    {
        <identifier>: [Array]
    }
    <Object>.<識別子> 各予測結果の詳細を含むオブジェクトのリスト。

    データタイプ:オブジェクトのアレイ

    <identifier>: [
      {
        "confidence": Number,
        "predictedSysId": "String",
        "predictedValue": "String", 
        "threshold": Number
      }
    ]
    <Object>.<識別子>.<object>.confidence 予測に関連付けられた信頼性の値。例:53.84。

    データタイプ:数値

    <Object>.<識別子>.<object>.predictedSysId 予測値の sys_id。結果は、情報が予測されている任意のテーブルから取得できます。

    データタイプ:文字列

    <Object>.<識別子>.<object>.predictedValue 予測結果を表す値。

    データタイプ:文字列

    <Object>.<識別子>.<object>.threshold 予測に関連付けられた構成済みのしきい値の値。

    データタイプ:数値

    次の例は、predict() メソッドの予測結果を表示する方法を示しています。このメソッドは、 sys_id 別の GlideRecord を入力として受け取り、オプションのパラメーターを含めて、上位 3 つの結果に制限してしきい値を除外します。

    var mlSolution = sn_ml.ClassificationSolutionStore.get('ml_incident_categorization');
    
    // single GlideRecord input
    var input = new GlideRecord("incident");
    input.get("<sys_id>");
    
    // configure optional parameters
    var options = {};
    options.top_n = 3;
    options.apply_threshold = false;
    
    var results = mlSolution.getVersion(1).predict(input, options);
    // pretty print JSON results
    gs.print(JSON.stringify(JSON.parse(results), null, 2));

    出力:

    {
      "<sys_id/gr>": [
        {
          "confidence": 62.10782320780268,
          "threshold": 20.36,
          "predictedValue": "Clone Issues",
          "predictedSysId": ""
        },
        {
          "confidence": 6.945237375770391,
          "threshold": 16.63,
          "predictedValue": "Instance Administration",
          "predictedSysId": ""
        },
        {
          "confidence": 5.321061076300759,
          "threshold": 23.7,
          "predictedValue": "Administration",
          "predictedSysId": ""
        }
      ]
    }

    次の例は、predict() メソッドの予測結果を表示する方法を示しています。このメソッドは、 キーと値のペアを入力のフィールド名のアレイとして受け取り、オプションのパラメーターを含めて、上位 3 つの結果に制限してしきい値を除外します。

    var mlSolution = sn_ml.ClassificationSolutionStore.get('ml_incident_categorization');
    
    // key-value pairs input
    var input = [{"short_description":"my email is not working"}, {short_description:"need help with password"}];
    
    // configure optional parameters
    var options = {};
    options.top_n = 3;
    options.apply_threshold = false;
    var results = mlSolution.predict(input, options);
    
    // pretty print JSON results
    gs.print(JSON.stringify(JSON.parse(results), null, 2));

    出力:

    {
      "1": [
        {
          "confidence": 37.5023032262591,
          "threshold": 10.72,
          "predictedValue": "Authentication",
          "predictedSysId": ""
        },
        {
          "confidence": 24.439964862166583,
          "threshold": 23.7,
          "predictedValue": "Administration",
          "predictedSysId": ""
        },
        {
          "confidence": 11.736320486031047,
          "threshold": 100,
          "predictedValue": "Security",
          "predictedSysId": ""
        }
      ],
      "2": [
        {
          "confidence": 99,
          "threshold": 17.77,
          "predictedValue": "Email",
          "predictedSysId": ""
        },
        {
          "confidence": 3.182137005157543,
          "threshold": 10.72,
          "predictedValue": "Authentication",
          "predictedSysId": ""
        },
        {
          "confidence": 2.8773826570713514,
          "threshold": -1,
          "predictedValue": "Email (I/f)",
          "predictedSysId": ""
        }
      ]
    }

    ClassificationSolutionVersion - setPredictionSettings(オブジェクト options)

    ソリューションレベルまたはクラスレベルで精度、範囲、またはリコールの値を設定します。

    表 : 15. パラメーター
    名前 タイプ 説明
    オプション オブジェクト 測定基準の設定値。これらの機能の詳細については、「 ターゲットメトリクスの構成」を参照してください。
    {  	 
       "metricName" : "String",
       "metricValue" : "String",
       "className" : "String"
    }
    options.metricName 文字列 設定する測定基準の名前。
    有効な値:
    • coverage
    • precision
    • recall
    options.metricValue 文字列 測定基準に割り当てる数値。
    options.className 文字列 オプション。結果を制限するクラスの名前。getTrainingStatistics() メソッドを使用して、ソリューションのクラスの完全なリストを取得します。
    表 : 16. 返される内容
    タイプ 説明
    なし

    次の例は、Clone Issues という名前のクラスの精度測定基準を 89.5 に設定する方法を示しています。

    var mlSolution = sn_ml.ClassificationSolutionStore.get('ml_x_snc_global_global_classification');
    var input = {"metricName" : "precision", "metricValue" : "89.5", "className" : "Clone Issues"};
    
    mlSolution.getActiveVersion().setTrainingStatistics(input);