The RegressionSolutionVersion API is a scriptable object used in Predictive Intelligence stores.

This API requires the Predictive Intelligence plugin (com.glide.platform_ml) and is provided within the sn_ml namespace.

Use this API when working with solution versions based on RegressionSolution API objects in the RegressionSolution store.

The system creates a solution version each time you train a solution definition. Most versions are created during scheduled solution training.

Methods in this API are accessible using the following RegressionSolution methods:

RegressionSolutionVersion - getProperties()

Gets solution object properties and version number.

Table 1. Parameters
Name Type Description
None

Example

The following example gets properties of the active object version in the store.

// Get properties
var mlSolution = sn_ml.RegressionSolutionStore.get('ml_incident_categorization');

gs.print(JSON.stringify(JSON.parse(mlSolution.getActiveVersion().getProperties()), null, 2));

Output:

{
  "datasetProperties": {
    "encodedQuery": "",
    "fieldNames": [
      "short_description",
      "sourcedc",
      "targetdc",
      "dbsize",
      "duration"
    ],
    "tableName": "cloudinfratext"
  },
  "domainName": "global",
  "encoderProperties": {
    "datasetsProperties": [],
    "name": "wc_regression"
  },
  "inputFieldNames": [
    "short_description",
    "sourcedc",
    "targetdc",
    "dbsize"
  ],
  "isActive": "true",
  "label": "Regression Test for DB Restore",
  "name": "ml_x_snc_global_global_regression",
  "predictedFieldName": "duration",
  "processingLanguage": "en",
  "stopwords": [
    "Default English Stopwords"
  ],
  "versionNumber": "1"
}

RegressionSolutionVersion - getStatus(Boolean includeDetails)

Gets training completion status.

Table 3. Parameters
Name Type Description
includeDetails Boolean Flag that indicates whether to return status details.
Valid values:
  • true: Return additional details.
  • false: Don't return additional details.

Default: False

Example

The following example shows a successful result with training complete.

// Get status
var mlSolution = sn_ml.RegressionSolutionStore.get('ml_incident_categorization');

gs.print(JSON.stringify(JSON.parse(mlSolution.getActiveVersion().getStatus(true), null, 2)));

Output:

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

Example

The following example shows an unsuccessful result with training complete.

// Get status
var solutionName = 'ml_x_snc_global_global_regression_solution';
var mlSolution = sn_ml.RegressionSolutionStore.get(solutionName);
var trainingStatus = mlSolution.getLatestVersion().getStatus();

gs.print(JSON.stringify(JSON.parse(trainingStatus), null, 2));

Output:

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

RegressionSolutionVersion - getVersionNumber()

Gets the version number of a solution object.

Table 5. Parameters
Name Type Description
None
Table 6. Returns
Type Description
String Version number.

Example

The following example shows how to get a version number.

// Get version number
var mlSolution = sn_ml.RegressionSolutionStore.get('ml_incident_categorization');

gs.print("Version number: "+JSON.stringify(JSON.parse(mlSolution.getActiveVersion().getVersionNumber()), null, 2));

Output:

Version number: 1

RegressionSolutionVersion - predict(Object input, Object options)

Gets the input data for a prediction.

Example

The following example shows how to display prediction results for a predict() method that takes a GlideRecord by sys_id for input and includes optional parameters to restrict to top three results and exclude the threshold value.

var mlSolution = sn_ml.RegressionSolutionStore.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/now_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": ""
    }
  ]
}

Example

The following example shows how to display prediction results for a predict() method that takes an array of field names as key-value pairs for input and includes optional parameters to restrict to top three results and exclude the threshold value.

var mlSolution = sn_ml.RegressionSolutionStore.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": ""
    }
  ]
}