ClassificationSolutionVersion - グローバル
ClassificationSolutionVersion API は、ストアで使用されるスクリプト可能なオブジェクトです予測インテリジェンス。
この API には 予測インテリジェンス プラグイン (com.glide.platform_ml) が必要です。この API は sn_ml 名前空間内で提供されます。
この API は、ClassificationSolution ストア内の ClassificationSolution API オブジェクトに基づいてソリューションバージョンを操作するために使用されます。
ソリューション定義をトレーニングするたびに、ソリューションのバージョンが作成されます。ほとんどのバージョンは、スケジュール設定済みのソリューショントレーニング中に作成されます。
ClassificationSolutionVersion - getPredictionPerformance(オブジェクト options)
ソリューションの精度と範囲を計算します。
このメソッドを使用するには、最初に setPredictionSettings() メソッドを使用して設定を作成する必要があります。
| 名前 | タイプ | 説明 |
|---|---|---|
| オプション | オブジェクト | 日付スパン内で取得する測定基準を選択します。詳細については、「 ターゲットメトリクスの設定」を参照してください。 |
| options.metricName | 測定基準の名前。 有効な値:
|
|
| options.fromDate | オプション。測定基準をシステム日時形式で取得する開始日。 | |
| 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>.<クラス名> | クラスの信頼性 [ml_class] テーブルからトレーニング統計データを提供するオブジェクトのアレイ。詳細については、「 ターゲットメトリクスの設定」を参照してください。 |
| <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()
ソリューションオブジェクトプロパティを取得します バージョン番号。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| オブジェクト | データセットのコンテンツと ClassificationSolution のバージョンの詳細。結果はオブジェクトプロパティのセットアップによって異なります。 |
| <Object>.algorithmConfig | ソリューションをエンコードするメソッド。 データタイプ:オブジェクト |
| <Object>.algorithmConfig.algorithm | このソリューションをトレーニングするためのエンコーディングアルゴリズムの名前。 可能な値:
データタイプ:文字列。 |
| <Object>.algorithmConfig.targetClassRecall | 特定のクラスをバイアスするソリューションのトレーニングを操作するためのクラスリコールパラメーター。リコール値は、パーセンテージを表す 0 〜 100 の数値です。 データタイプ:文字列 |
| <Object>.datasetProperties | ソリューションに関連付けられた DatasetDefinition() オブジェクトのプロパティを一覧表示します。
データタイプ:オブジェクト |
| <Object>.datasetProperties.tableName | データセットのテーブルの名前。例:"tableName" : "Incident" データタイプ:文字列。 |
| <Object>.datasetProperties.fieldNames | 指定されたテーブルからの文字列としてのフィールド名のリスト。例:"fieldNames" : ["short_description", "priority"] データタイプ:アレイ。 |
| <Object>.datasetProperties.fieldNames.fieldDetails | フィールドプロパティを指定する JavaScript オブジェクトのリスト。
データタイプ:アレイ。 |
| <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 | このバージョンがアクティブかどうかを示すフラグ。 有効な値:
データタイプ:文字列 |
| <Object>.label | 予測タスクを識別します。
データタイプ:文字列。 |
| <Object>.name | システムによって割り当てられた名前。 データタイプ:文字列。 |
| <Object>.predictedFieldName | 予測可能性についてトレーニングするフィールドを識別します。 データタイプ:文字列。 |
| <Object>.processingLanguage | 2 文字の ISO 639-1 言語コード形式の処理言語。 データタイプ:文字列。 |
| <Object>.scope | オブジェクトスコープ。現在、有効な値は global のみです。データタイプ:文字列 |
| <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 |
| タイプ | 説明 |
|---|---|
| オブジェクト | ClassificationSolution オブジェクト のトレーニングステータス情報を含む JavaScript オブジェクト。 |
| <Object>。state | トレーニング完了ステータス。トレーニングジョブがターミナルステータスに達した場合、ジョブはそのステータスを終了しません。ステータスがターミナルの場合、hasJobEnded プロパティは true に設定されます。可能な値:
データタイプ:文字列 |
| <Object>.hasJobEnded | トレーニングが完了したかどうかを示すフラグ。 有効な値:
データタイプ:文字列としてのブール値 |
| <Object>.percentComplete | トレーニングの完了率を表す 0 〜 100 の数値。完了率が 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.<クラス名>.distribution | このクラスの結果確率分布の値。 データタイプ:文字列 |
| <Object>.includedClasses.<クラス名>.statistics | トレーニング統計データを提供するオブジェクトのリスト。詳細については、「 ターゲットメトリクスの設定」を参照してください。
データタイプ:アレイ |
| <Object>.includedClasses.<クラス名>.statistics.precision | このクラスの推定ソリューション精度の測定基準。 データタイプ:文字列 (数値) |
| <Object>.includedClasses.<クラス名>.statistics.coverage | このクラスの推定ソリューション範囲の測定基準。 データタイプ:文字列 (数値) |
| <Object>.includedClasses.<クラス名>.statistics.recall | このクラスの推定ソリューションリコールの測定基準。 データタイプ:文字列 (数値) |
| <Object>.includedClasses.<クラス名>.statistics.selected | このクラスがソリューショントレーニングのレコードを含むかどうかを示すフラグ。 有効な値:
デフォルト値:false データタイプ:文字列 (ブール値) |
| <Object>.excludedClasses | トレーニングから除外されたすべてのクラスの分布と行数。
データタイプ:オブジェクト |
| <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()
ソリューションオブジェクトのバージョン番号を取得します。。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | バージョン番号。 |
次の例は、バージョン番号を取得する方法を示しています。
// 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)
予測の入力データを取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 入力 | オブジェクト | GlideRecord または、キーと値のペアとしてフィールド名と値を含む JSON オブジェクトのアレイ。 |
| オプション | オブジェクト | 予測結果をフィルタリングするためのオプションの値。 |
| options.apply_threshold | ブーリアン | ソリューションのしきい値をチェックして結果セットに適用するかどうかを示すフラグ。 有効な値:
デフォルト:true |
| options.top_n | 番号 | 指定されている場合、指定された予測の数までの上位の結果を返します |
| タイプ | 説明 |
|---|---|
| オブジェクト | sys_id または record_number でソートされた予測結果を含む JSON オブジェクト。 |
| <Object>.<識別子> | 各予測結果の詳細を含むオブジェクトのリスト。
データタイプ:アレイ |
| <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)
ソリューションレベルまたはクラスレベルで精度、範囲、またはリコールの値を設定します。
| 名前 | タイプ | 説明 |
|---|---|---|
| オプション | オブジェクト | 測定基準の設定値。これらの機能の詳細については、「 ターゲットメトリクスの設定」を参照してください。 |
| 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);