ClassificationSolutionVersion - グローバル
ClassificationSolutionVersion API は、予測インテリジェンス ストアで使用されるスクリプト可能なオブジェクトです。
この API には 予測インテリジェンス プラグイン (com.glide.platform_ml) が必要で、 sn_ml 名前空間内で提供されます。
この API は、ClassificationSolution ストア内の ClassificationSolution API オブジェクトに基づくソリューションバージョンを操作するために使用されます。
ソリューション定義をトレーニングするたびに、ソリューションバージョンが作成されます。ほとんどのバージョンは、スケジュールされたソリューショントレーニング中に作成されます。
ClassificationSolutionVersion - getPredictionPerformance (オブジェクトオプション)
ソリューションの精度と範囲を計算します。
このメソッドを使用するには、最初に setPredictionSettings() メソッドを使用して設定を作成する必要があります。
| 名前 | タイプ | 説明 |
|---|---|---|
| オプション | オブジェクト | 日付のスパン内で取得するメトリクスを選択します。詳しくは、 ターゲット・メトリックの構成を参照してください。 |
| options.fromDate | 文字列 | オプション。システム日時形式でメトリクスを取得する開始日。 |
| options.metricName | 文字列 | メトリクスの名前。 有効な値:
|
| options.toDate | 文字列 | オプション。メトリクスの取得が開始される終了日。 形式:システムの日時形式。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 入力メトリクスの結果を含む解析可能な JavaScript オブジェクト。 |
| 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] テーブルからレコードを取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| オブジェクト | 各クラスの予測設定を返します。データには、ML ソリューション [ml_solution] テーブルのトレーニング済みモデルに含まれるすべてのクラスの精度、範囲、再現率、および分布値が含まれます。詳細については、「 予測モデルのコンポーネント」を参照してください。 |
| <Object>.<class name> | クラス信頼性 [ml_class] テーブルのトレーニング統計データ。詳しくは、 ターゲット・メトリックの構成を参照してください。 データタイプ: オブジェクト |
| <Object>.<class name>.precision | このクラスの推定ソリューション精度メトリクス。 データタイプ:文字列 (数値) |
| <Object>.<class name>.coverage | このクラスの推定ソリューション カバレッジメトリクス。 データタイプ:文字列 (数値) |
| <Object>.<class name>.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()
ソリューションオブジェクトプロパティを取得します およびバージョン番号。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| オブジェクト | データセットのコンテンツと ClassificationSolution バージョンの詳細。結果は、オブジェクトプロパティの設定によって異なります。 |
| <Object>.algorithmConfig | ソリューションをエンコードする方法。 データタイプ: オブジェクト |
| <Object>.algorithmConfig.algorithm | このソリューションをトレーニングするためのエンコードアルゴリズムの名前。 可能な値:
データタイプ:文字列 |
| <Object>.algorithmConfig.targetClassRecall | 特定のクラスにバイアスを当てるようにソリューションのトレーニングを誘導するクラス再現率パラメーター。リコール値は、パーセンテージを表す 0 〜 100 の数値です。 データタイプ:文字列 |
| <Object>.datasetProperties | ソリューションに関連付けられている DatasetDefinition() オブジェクトのプロパティを一覧表示します。 データタイプ: オブジェクト |
| <Object>.datasetProperties.tableName | データセットのテーブルの名前。たとえば、「 tableName」:「インシデント」です。 データタイプ:文字列 |
| <Object>.datasetProperties.fieldNames | 指定されたテーブルのフィールド名を文字列としてリストします。例:"fieldNames" : ["short_description", "priority"]。 データタイプ:アレイ |
| <Object>.datasetProperties.fieldNames.fieldDetails | フィールドのプロパティを指定する JavaScript オブジェクトのリスト。 データタイプ:オブジェクトのアレイ
|
| <Object>.datasetProperties.fieldNames.fieldDetails.<object>.名前 | このデータセットを制限する情報のタイプを定義するフィールドの名前。 データタイプ:文字列 |
| <Object>.datasetProperties.fieldDetails.<object>.タイプ | 機械学習フィールドタイプ。 データタイプ:文字列 |
| <Object>.datasetProperties.fieldDetails.encodedQuery | 標準の Glide 形式でエンコードされたクエリ文字列。「 エンコードされたクエリ文字列」を参照してください。 データタイプ:文字列 |
| <Object>.domainName | このデータセットに関連付けられたドメイン名。「 ドメインセパレーション」および 予測インテリジェンスを参照してください。 データタイプ:文字列 |
| <Object>.encoder | このソリューションにアサインされたエンコーダーオブジェクト。。「エンコーダー - エンコーダー (オブジェクト構成)」を参照してください。 データタイプ: オブジェクト |
| <Object>.groupByFieldName | 分類ソリューションを構築するためにレコードをグループ化するフィールド名。 データタイプ:文字列 |
| <Object>.inputFieldNames | 文字列としての入力フィールド名のリスト。モデルは、これらのフィールドを使用して予測を行います。 データタイプ:文字列 |
| <Object>.isActive | このバージョンがアクティブかどうかを示すフラグ。 有効な値:
データタイプ:文字列 |
| <Object>.label | 予測タスクを識別します。 データタイプ:文字列 |
| <Object>.name | システムによって割り当てられた名前。 データタイプ:文字列 |
| <Object>.predictedFieldName | 予測可能性のためにトレーニングするフィールドを識別します。 データタイプ:文字列 |
| <Object>.processingLanguage | 2 文字の ISO 639-1 言語コード形式の処理言語。 データタイプ:文字列 |
| <Object>.scope | オブジェクトスコープ。現時点で有効な値は グローバル値のみです。データタイプ:文字列 |
| <Object>.stopwords | オプション。languageプロパティ設定に基づいてシステムが自動的に生成する文字列のプリセットリスト。詳細については、「 カスタムストップワードリストの作成」を参照してください。 データタイプ:アレイ |
| <Object>.trainingFrequency | モデルを再トレーニングする頻度。 可能な値:
データタイプ:文字列 |
| <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)
トレーニング完了ステータスを取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| includeDetails | ブーリアン | ステータスを details にするかどうかを示すフラグ。 有効な値:
デフォルト値:False |
| タイプ | 説明 |
|---|---|
| オブジェクト | のトレーニングステータス情報を含む JavaScript オブジェクトClassificationSolution オブジェクト。 |
| <Object>。state | トレーニング完了ステータス。トレーニングジョブがターミナルステータスに達しても、ジョブはそのステータスを終了しません。ステータスが [ターミナル] の場合、 hasJobEnded プロパティは true に設定されます。可能な値:
データタイプ:文字列 |
| <Object>.hasJobEnded | トレーニングが完了したかどうかを示すフラグ。 有効な値:
データタイプ:文字列としてのブール値 |
| <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()
指定されたソリューションのすべてのトレーニング統計情報を取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| オブジェクト | トレーニングに含まれる各クラスの統計情報と、トレーニングから除外された各クラスの値を含む JavaScript オブジェクト。詳細については、「 予測モデルのコンポーネント」を参照してください。 |
| <Object>.includedClasses | トレーニング済みモデルの各クラスの精度、範囲、再現率、および分布値を含むオブジェクト。 データタイプ: オブジェクト
|
| <Object>.includedClasses.<class name>.distribution | このクラスの結果確率分布の値。 データタイプ:文字列 |
| <Object>.includedClasses.<class name>.statistics | トレーニング統計データを提供するオブジェクトのリスト。詳しくは、 ターゲット・メトリックの構成を参照してください。 データタイプ:オブジェクトのアレイ
|
| <Object>.includedClasses.<class name>.statistics.coverage | このクラスの推定ソリューション カバレッジメトリクス。 データタイプ:文字列 (数値) |
| <Object>.includedClasses.<class name>.statistics.precision | このクラスの推定ソリューション精度メトリクス。 データタイプ:文字列 (数値) |
| <Object>.includedClasses.<class name>.statistics.recall | このクラスの推定ソリューション再現率メトリクス。 データタイプ:文字列 (数値) |
| <Object>.includedClasses.<class name>.statistics.selected | このクラスにソリューショントレーニングに含まれるレコードが含まれているかどうかを示すフラグ。 有効な値:
データタイプ:文字列 (ブール値) デフォルト値:false |
| <Object>.excludedClasses | トレーニングから除外されたすべてのクラスの分布と行数。 データタイプ: オブジェクト |
| <Object>.excludedClasses.<class name>.distribution | このクラスの結果確率分布の値。 データタイプ:文字列 |
| <Object>.excludedClasses.<class name>.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()
のバージョン番号を取得します ソリューションオブジェクト。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | バージョン番号。 |
次の例は、バージョン番号を取得する方法を示しています。
// 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 | オブジェクト | GlideRecord または、フィールド名と値をキーと値のペアとして含む JSON オブジェクトのアレイ。 |
| オプション | オブジェクト | 予測結果をフィルタリングするためのオプションの値。 |
| options.apply_threshold | ブーリアン | ソリューションのしきい値を確認し、結果セットに適用するかどうかを示すフラグ。 有効な値:
デフォルト:True |
| options.top_n | 数値 | 指定した場合、指定された数の予測まで、上位の結果を返します。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | sys_idまたはrecord_numberでソートされた予測結果を含む JSON オブジェクト。 |
| <Object>.<identifier> | 各予測結果の詳細を含むオブジェクトのリスト。 データタイプ:オブジェクトのアレイ
|
| <Object>.<identifier>.<object>.信頼性 | 予測に関連付けられた信頼度の値。例:53.84。 データタイプ:数値 |
| <Object>.<identifier>.<object>.predictedSysId | 予測値のsys_id。結果は、情報が予測されている任意のテーブルから取得できます。 データタイプ:文字列 |
| <Object>.<identifier>.<object>.予測値 | 予測結果を表す値。 データタイプ:文字列 |
| <Object>.<identifier>.<object>.しきい値 | 予測に関連付けられた構成済みのしきい値の値。 データタイプ:数値 |
次の例は、入力に GlideRecord をsys_id別に取得し、上位 3 件の結果に制限し、しきい値を除外するオプションのパラメーターを含む predict() メソッドの予測結果を表示する方法を示しています。
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": ""
}
]
}
次の例は、フィールド名のアレイを入力のキーと値のペアとして受け取り、上位 3 つの結果に制限し、しきい値を除外するオプションのパラメーターを含む predict() メソッドの予測結果を表示する方法を示しています。
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.metricName | 文字列 | 設定するメトリクスの名前。 有効な値:
|
| options.metricValue | 文字列 | メトリクスに割り当てる数値。 |
| options.className | 文字列 | オプション。結果を制限するクラスの名前。getTrainingStatistics() メソッドを使用して、ソリューションのクラスの完全なリストを取得します。 |
| タイプ | 説明 |
|---|---|
| なし |
次の例は、「 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);