---
sourceDocument: Xanadu API Reference
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - en-US

ft:publication_title :

    - Xanadu API Reference

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# RegressionSolutionVersion - Global

# RegressionSolutionVersion - Global {#ariaid-title1}

* Release version: Xanadu
* 
* Updated August 1, 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 6 minutes to read

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](https://servicenow-prod.fluidtopics.net/3hYy9ifcFaLlyL23bPPuBg#RegressionSolutionAPI "The RegressionSolution API is a scriptable object used in Predictive Intelligence stores.") objects in the [RegressionSolution store](https://servicenow-prod.fluidtopics.net/Uv9~kUPvNCgIVMkQc2v65A#RegressionSolutionStoreAPI "Enables storing and retrieving solutions.").

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:

* [getActiveVersion()](https://servicenow-prod.fluidtopics.net/3hYy9ifcFaLlyL23bPPuBg#RegressionSol-getActiveVersion "Gets the active RegressionSolutionVersion object.")
* [getAllVersions()](https://servicenow-prod.fluidtopics.net/3hYy9ifcFaLlyL23bPPuBg#RegressionSol-getAllVersions "Gets all versions of a RegressionSolution object.")
* [getLatestVersion()](https://servicenow-prod.fluidtopics.net/3hYy9ifcFaLlyL23bPPuBg#RegressionSol-getLatestVersion "Gets the latest version of a solution.")
* [getVersion()](https://servicenow-prod.fluidtopics.net/3hYy9ifcFaLlyL23bPPuBg#RegressionSol-getVersion_S "Gets a solution by provided version number.")
{#RegressionSolutionVersionAPI__ul_ycl_fzf_tlb}

## RegressionSolutionVersion - getProperties() {#ariaid-title2}

Gets solution object properties
and version number.
{#RegressionVersion-getProperties__table_d2m_zwz_4lb__entry__3}

| Name | Type | Description |
|-|-|-|
| None |   |   |
[Table 1. Parameters]

{#RegressionVersion-getProperties__table_d2m_zwz_4lb} {#RegressionVersion-getProperties__table_e2m_zwz_4lb__entry__2}

| Type | Description |
|-|-|
| Object | Contents of the Dataset and [RegressionSolution](https://servicenow-prod.fluidtopics.net/3hYy9ifcFaLlyL23bPPuBg#RegressionSol-RegressionSolution_O "Creates a regression solution.") version details. Results vary by object property setup. { "datasetProperties": {Object}, "domainName": "String", "encoder": {Object}, "inputFieldNames": [Array], "isActive": Boolean, "label": "String", "name": "String", "predictedFieldName": "String", "predictedInterval": [Array], "processingLanguage": "String", "scope": "String", "stopwords": [Array], "versionNumber": "Number" } |
| \<Object\>.datasetProperties | Lists the properties of the [DatasetDefinition()](https://servicenow-prod.fluidtopics.net/5PRN6njd2wF_we1ri_egPw#DDef-DatasetDefinition_O "Creates an instance of the DatasetDefinition class, enabling you to define a dataset by table name, fields, and query.") object associated with the solution. { "encodedQuery": "String", "fieldDetails": [Array], "fieldNames": [Array], "tableName": "String" } |
| \<Object\>.datasetProperties.tableName | Name of the table for the dataset. For example, `"tableName" : "Incident"`. Data type: String. |
| \<Object\>.datasetProperties.fieldNames | List of field names from the specified table as strings. For example, `"fieldNames" : ["short_description", "priority"]`. Data type: Array. |
| \<Object\>.datasetProperties.fieldNames.fieldDetails | List of JavaScript objects that specify field properties. [ { "name": "String", "type": "String" } ] Data type: Array. |
| \<Object\>.datasetProperties.fieldNames.fieldDetails.\<object\>.name | Name of the field defining the type of information to restrict this dataset to. Data type: String. |
| \<Object\>.datasetProperties.fieldDetails.\<object\>.type | Machine-learning field type. Data type: String. |
| \<Object\>.datasetProperties.fieldDetails.encodedQuery | Encoded query string in standard Glide format. See [Encoded query strings](https://www.servicenow.com/docs/access?context=c_EncodedQueryStrings&version=xanadu&pubname=xanadu-platform-user-interface&ft:locale=en-US). Data type: String. |
| \<Object\>.domainName | Domain name associated with this dataset. See [Domain separation and Predictive Intelligence](https://www.servicenow.com/docs/access?context=domain-separation-predictive-intelligence&version=xanadu&pubname=xanadu-intelligent-experiences&ft:locale=en-US). Data type: String. |
| \<Object\>.encoder | Encoder object assigned to this solution. See [Encoder - Encoder(Object config)](https://servicenow-prod.fluidtopics.net/lD2dU3P5hPYTlVdnWNZofg#Encoder-Encoder_O "Creates an encoder."). Data type: Object. |
| \<Object\>.inputFieldNames | List of input field names as strings. The model uses these fields used to make predictions. Data type: String. |
| \<Object\>.isActive | Flag that indicates whether this version is active. Valid values: * true: Version is active. * false: Version is not active. {#RegressionVersion-getProperties__ul_i5m_lp1_dmb} Data type: String |
| \<Object\>.label | Identifies the prediction task. { "label": "my first prediction" } Data type: String. |
| \<Object\>.name | System-assigned name. Data type: String. |
| \<Object\>.predictedFieldName | Identifies a field to be trained for predictability. Data type: String. |
| \<Object\>.predictedInterval | Range of values specifying the prediction confidence level. Data type: Array |
| \<Object\>.processingLanguage | Processing language in two-letter ISO 639-1 language code format. Data type: String. |
| \<Object\>.scope | Object scope. Currently the only valid value is `global`. Data type: String |
| \<Object\>.stopwords | Optional. Preset list of strings that the system automatically generates based on the language property setting. For details, see [Create a custom stopwords list](https://www.servicenow.com/docs/access?context=create-custom-stopwords-list&version=xanadu&pubname=xanadu-intelligent-experiences&ft:locale=en-US). Data type: Array. |
| \<Object\>.versionNumber | Version number of the RegressionSolution object. |
[Table 2. Returns]

{#RegressionVersion-getProperties__table_e2m_zwz_4lb}  
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) {#ariaid-title3}

Gets training completion status.
{#RegressionVersion-getStatus_B__table_xfh_vbw_plb__entry__3}

| 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. {#RegressionVersion-getStatus_B__ul_n33_ckw_plb} Default: False |
[Table 3. Parameters]

{#RegressionVersion-getStatus_B__table_xfh_vbw_plb} {#RegressionVersion-getStatus_B__table_yfh_vbw_plb__entry__2}

| Type | Description |
|-|-|
| Object | JavaScript object containing training status information for a [RegressionSolution](https://servicenow-prod.fluidtopics.net/3hYy9ifcFaLlyL23bPPuBg#RegressionSolutionAPI "The RegressionSolution API is a scriptable object used in Predictive Intelligence stores.") object. { "state": "String", "percentComplete": "Number as a String", "hasJobEnded": "Boolean value as a String", "details": {Object} } |
| \<Object\>.state | Training completion state. If the training job reaches a terminal state, the job does not leave that state. If the state is terminal, the hasJobEnded property is set to `true`. Possible values: * fetching_files_for_training * preparing_data * retry * 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 {#RegressionVersion-getStatus_B__ul_a5q_gh4_vlb} Data type: String |
| \<Object\>.hasJobEnded | Flag that indicates whether training is complete. Valid values: * true: Training is complete. * false: Training is incomplete. {#RegressionVersion-getStatus_B__ul_icy_zjx_rlb} Data type: Boolean value as a String |
| \<Object\>.percentComplete | Training percent complete. If the completion percentage is less than 100, the job might be in a terminal state. For example, if training times out. Data type: Number as a String Range: 0 thru 100 |
| \<Object\>.details | Object containing a list of additional training details. Data type: Object |
[Table 4. Returns]

{#RegressionVersion-getStatus_B__table_yfh_vbw_plb}  
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);
    }

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() {#ariaid-title4}

Gets the version number of a solution object.
{#RegressionVersion-getVersionNumber__table_jsz_sbw_plb__entry__3}

| Name | Type | Description |
|-|-|-|
| None |   |   |
[Table 5. Parameters]

{#RegressionVersion-getVersionNumber__table_jsz_sbw_plb} {#RegressionVersion-getVersionNumber__table_ksz_sbw_plb__entry__2}

| Type | Description |
|-|-|
| String | Version number. |
[Table 6. Returns]

{#RegressionVersion-getVersionNumber__table_ksz_sbw_plb}  
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) {#ariaid-title5}

Gets the input data for a prediction.
{#RegressionVersion-predict_O_O__table_wwz_pbw_plb__entry__3}

| Name | Type | Description |
|-|-|-|
| input | Object | [GlideRecord](https://servicenow-prod.fluidtopics.net/nRmUiaC7a08cr2N5iZGqoQ#c_GlideRecordAPI "The GlideRecord API is used for database operations.") or array of JSON objects containing field names and values as key-value pairs. |
| options | Object | Optional values for filtering prediction results. { "apply_threshold": Boolean, "top_n": Number } |
| options.apply_threshold | Boolean | Flag that indicates whether to check the threshold value for the solution and apply it to the result set. Valid values: * true: Return results in which confidence is greater than threshold. * false: Return all results. {#RegressionVersion-predict_O_O__ul_f4d_xyx_slb} Default: True |
| options.top_n | Number | If provided, returns the top results, up to the specified number of predictions. |
[Table 7. Parameters]

{#RegressionVersion-predict_O_O__table_wwz_pbw_plb} {#RegressionVersion-predict_O_O__table_xwz_pbw_plb__entry__2}

| Type | Description |
|-|-|
| Object | JSON object containing the prediction results sorted by sys_id or record_number. { <identifier>: [Array] } |
| \<Object\>.\<identifier\> | List of objects with details for each prediction result. Data type: Array of Objects <identifier>: [ { "confidence": Number, "predictedSysId": "String", "predictedValue": "String", "threshold": Number } ] |
| \<Object\>.\<identifier\>.\<object\>.confidence | Value of the confidence associated with the prediction. For example, 53.84. Data type: Number |
| \<Object\>.\<identifier\>.\<object\>.predictedSysId | The sys_id of the predicted value. Results can be from any table on which information is being predicted. Data type: String |
| \<Object\>.\<identifier\>.\<object\>.predictedValue | Value representing the prediction result. Data type: String |
| \<Object\>.\<identifier\>.\<object\>.threshold | Value of the configured threshold associated with the prediction. Data type: Number |
[Table 8. Returns]

{#RegressionVersion-predict_O_O__table_xwz_pbw_plb}  
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": ""
        }
      ]
    }

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": ""
        }
      ]
    }


