RegressionSolution - Global
The RegressionSolution 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.
- Create a dataset using the DatasetDefinition API.
- Optional. Build an encoder using the Encoder API.
- Use the constructor to create a regression solution object.
- Add the solution object to the regression solution store using the RegressionSolutionStore - add() method.
- Train the solution using the submitTrainingJob() method. This creates a version of the object that you can manage using the RegressionSolutionVersion API.
- Get predictions using the RegressionSolutionVersion – predict() method.
For usage guidelines, refer to Using ML APIs.
RegressionSolution - RegressionSolution(Object config)
Creates a regression solution.
| Name | Type | Description |
|---|---|---|
| config | Object | JavaScript object containing configuration
properties of the solution. |
| config.dataset | Object | DatasetDefinition name. |
| config.domainName | String | Optional. Domain name associated with this dataset. See Domain separation and Predictive Intelligence.
Default: Current domain, for example, |
| config.encoder | Object | Optional. Trained encoder object to assign to this solution. See Encoder - Encoder(Object config). |
| config.inputFieldNames | Array | List of input field names as strings. The model uses these fields used to make predictions. |
| config.label | String | Identifies the prediction task. |
| config.minRowCount | String | Optional. Minimum number of records required in
the dataset for training. Default: 10000 |
| config.predictedFieldName | String | Mandatory unless setting predictedInterval. Identifies a field to be trained for predictability. |
| config.predictedInterval | Array | Mandatory unless setting predictedFieldName. Sets a range
of fields to train your solution for confidence. Supports providing
2
non-numeric date fields. For example, 'predictedInterval':
['sys_updated_on', 'sys_created_on']. |
| config.processingLanguage | String | Optional. Processing language in two-letter ISO 639-1 language code format.
Default: "en" |
| config.stopwords | Array | Optional. Preset
list of strings that the system automatically generates based on the
language property setting. For details, see Create a custom stopwords
list.
Default: English Stopwords |
| config.trainingFrequency | String | The frequency to retrain the model.
Possible values:
|
The following example shows how to create an object and add it to the RegressionSolution store.
var myNewData = new sn_ml.DatasetDefinition(
{
'tableName' : 'incident',
'fieldNames' : ['category', 'short_description', 'priority'],
'fieldDetails' : [
{
'name' : 'category',
'type' : 'nominal'
},
{
'name' : 'short_description',
'type' : 'text'
}],
'encodedQuery' : 'activeANYTHING'
});
var mySimSolution = new sn_ml.SimilaritySolution({
'label': "my solution definition",
'dataset' : myNewData,
'predictedFieldName' : 'category',
'inputFieldNames': ['short_description']
});
var mySimilarityName = sn_ml.SimilaritySolutionStore.add(mySimSolution);
The following example shows how to create an object to train using the predictedInterval property.
var myIncidentData = new sn_ml.DatasetDefinition({
'tableName' : 'incident',
'fieldNames' : ['short_description', 'sys_updated_on','sys_created_on'],
'encodedQuery' : 'activeANYTHING'
});
var mySolution = new sn_ml.RegressionSolution({
'label': 'reg assinGroup',
'dataset' : myIncidentData,
'predictedInterval': ['sys_updated_on', 'sys_created_on'],
'inputFieldNames': ['short_description']
});
var my_unique_name = sn_ml.RegressionSolutionStore.add(mySolution)
RegressionSolution - cancelTrainingJob()
Cancels a job for a solution object that has been submitted for training.
| Name | Type | Description |
|---|---|---|
| None |
| Type | Description |
|---|---|
| None |
The following example shows how to cancel an existing training job.
var mySolution = sn_ml.RegressionSolutionStore.get('ml_sn_global_global_regression');
mySolution.cancelTrainingJob();
RegressionSolution - getActiveVersion()
Gets the active RegressionSolutionVersion object.
| Name | Type | Description |
|---|---|---|
| None |
| Type | Description |
|---|---|
| Object | Active RegressionSolutionVersion object. |
The following example shows how to get an active RegressionSolution version from the store and return its training status.
var mlSolution = sn_ml.RegressionSolutionStore.get('ml_x_snc_global_global_regression');
gs.print(JSON.stringify(JSON.parse(mlSolution.getActiveVersion().getStatus()), null, 2));
Output:
{
"state": "solution_complete",
"percentComplete": "100",
"hasJobEnded": "true"
}
RegressionSolution - getAllVersions()
Gets all versions of a RegressionSolution object.
| Name | Type | Description |
|---|---|---|
| None |
| Type | Description |
|---|---|
| Array | Existing versions of a solution object. See also RegressionSolutionVersion API. |
The following example shows how to get all RegressionSolution version objects and call the getVersionNumber() and getStatus() solution version methods on them.
var mlSolution = sn_ml.RegressionSolutionStore.get('ml_x_snc_global_global_regression');
var mlSolutionVersions = mlSolution.getAllVersions();
for (i = 0; i < mlSolutionVersions.length; i++) {
gs.print("Version " + mlSolutionVersions[i].getVersionNumber() + " Status: " + mlSolutionVersions[i].getStatus() +"\n");
};
Output:
Version 3 Status: {"state":"solution_complete","percentComplete":"100","hasJobEnded":"true"}
Version 2 Status: {"state":"solution_complete","percentComplete":"100","hasJobEnded":"true"}
Version 1 Status: {"state":"solution_cancelled","percentComplete":"0","hasJobEnded":"true"}
RegressionSolution - getLatestVersion()
Gets the latest version of a solution.
| Name | Type | Description |
|---|---|---|
| None |
| Type | Description |
|---|---|
| Object | RegressionSolutionVersion object corresponding to the latest version of a RegressionSolution(). |
The following example shows how to get the latest version of a solution and return its training status.
var mlSolution = sn_ml.RegressionSolutionStore.get('ml_x_snc_global_global_regression');
gs.print(JSON.stringify(JSON.parse(mlSolution.getLatestVersion().getStatus()), null, 2));
Output:
{
"state": "solution_complete",
"percentComplete": "100",
"hasJobEnded": "true"
}
RegressionSolution - getName()
Gets the name of the object to use for interaction with the store.
| Name | Type | Description |
|---|---|---|
| None |
| Type | Description |
|---|---|
| String | Name of the solution object. |
The following example shows how to update RegressionSolution dataset information and print the name of the object.
// Update solution
var myIncidentData = new sn_ml.DatasetDefinition({
'tableName' : 'incident',
'fieldNames' : ['category', 'short_description', 'priority'],
'encodedQuery' : 'activeANYTHING'
});
var eligibleFields = JSON.parse(myIncidentData.getEligibleFields('regression'));
var myRegression = new sn_ml.RegressionSolution({
'label': "my regression solution",
'dataset' : myIncidentData,
'inputFieldNames': eligibleFields['eligibleInputFieldNames'],
'predictedFieldName': 'category'
});
// update solution
sn_ml.RegressionSolutionStore.update('ml_x_snc_global_global_my_solution_definition_4', myRegression);
// print solution name
gs.print('Solution Name: '+myRegression.getName());
Output:
Solution Name: ml_x_snc_global_global_my_solution_definition_4
RegressionSolution - getProperties()
Gets solution object properties.
| Name | Type | Description |
|---|---|---|
| None |
| Type | Description |
|---|---|
| Object | Contents of the Dataset and RegressionSolution() object details in the
RegressionSolutionStore. |
| <Object>.datasetProperties | Lists the properties of the DatasetDefinition() object associated with the solution.
Data type: Object. |
| <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.
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.
Data type: String. |
| <Object>.domainName | Domain name associated with this dataset. See Domain separation and Predictive Intelligence.
Data type: String. |
| <Object>.encoder | Encoder object assigned to this
solution. See Encoder - Encoder(Object config). 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>.label | Identifies the prediction
task.
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.
Data type: Array. |
| <Object>.trainingFrequency | The frequency to retrain the model.
Possible values:
Data type: String. |
The following example gets properties of a solution object in the store.
var mySolution = sn_ml.RegressionSolutionStore.get('ml_sn_global_global_regression_solution');
gs.print(JSON.stringify(JSON.parse(mySolution.getProperties()), null, 2));
*** Script: {
"datasetProperties": {
"tableName": "cloudinfratext",
"fieldNames": [
"short_description",
"sourcedc",
"targetdc",
"dbsize",
"duration"
]
},
"domainName": "global",
"encoderProperties": {
"datasetsProperties": [],
"name": "wc_regression"
},
"inputFieldNames": [
"short_description",
"sourcedc",
"targetdc",
"dbsize"
],
"label": "Regression Test for DB Restore",
"name": "ml_x_snc_global_global_regression",
"predictedFieldName": "duration",
"processingLanguage": "en",
"scope": "global",
"stopwords": [
"Default English Stopwords"
],
"trainingFrequency": "every_30_days"
}RegressionSolution - getVersion(String version)
Gets a solution by provided version number.
| Name | Type | Description |
|---|---|---|
| version | String | Existing version number of a solution. |
| Type | Description |
|---|---|
| Object | Specified version of the RegressionSolution() object on which you can call RegressionSolutionVersion API methods. |
The following example shows how to get the training status of a solution by version number.
var mlSolution = sn_ml.RegressionSolutionStore.get('ml_x_snc_global_global_regression');
gs.print(JSON.stringify(JSON.parse(mlSolution.getVersion('1').getStatus()), null, 2));
Output:
{
"state": "solution_complete",
"percentComplete": "100",
"hasJobEnded": "true"
}
RegressionSolution - setActiveVersion(String version)
Activates a specified version of a solution in the store.
| Name | Type | Description |
|---|---|---|
| version | String | Name of the RegressionSolution() object version to activate. Activating this version deactivates any other version. |
| Type | Description |
|---|---|
| None |
The following example shows how to activate a solution version in the store.
sn_ml.RegressionSolution.setActiveVersion("ml_incident_categorization");
RegressionSolution - submitTrainingJob()
Submits a training job.
| Name | Type | Description |
|---|---|---|
| None |
| Type | Description |
|---|---|
| Object | RegressionSolutionVersion object corresponding to the RegressionSolution being trained. |
The following example shows how to create a dataset, apply it to a solution, add the solution to a store, and submit the training job.
// Create a dataset
var myData = new sn_ml.DatasetDefinition({
'tableName' : 'incident',
'fieldNames' : ['assignment_group', 'short_description', 'description'],
'encodedQuery' : 'activeANYTHING'
});
// Create a solution
var mySolution = new sn_ml.RegressionSolution({
'label': "my solution definition",
'dataset' : myData,
'predictedFieldName' : 'assignment_group',
'inputFieldNames':['short_description']
});
// Add the solution to the store to later be able to retrieve it.
var my_unique_name = sn_ml.RegressionSolutionStore.add(mySolution);
// Train the solution - this is a long running job
var myRegressionVersion = mySolution.submitTrainingJob();