RegressionSolution - Global

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 8 min. de leitura
  • A API RegressionSolution é um objeto programável usado em armazenamentos Inteligência preditiva.

    Este A API requer o plug-in Inteligência preditiva (com.glide.platform_ml) e é fornecida no namespace sn_ml.

    O fluxo de configuração para treinamento da solução é o seguinte:
    1. Crie um conjunto de dados usando a API DatasetDefinition.
    2. Opcional. Crie um codificador usando a API Encoder.
    3. Use o construtor para criar um objeto de solução de regressão.
    4. Adicione o objeto de solução ao armazenamento de soluções de regressão usando o método RegressionSolutionStore - add().
    5. Treine a solução usando o método submitTrainingJob(). Isso cria uma versão do objeto que você pode gerenciar usando a API RegressionSolutionVersion.
    6. Obtenha previsões usando o método RegressionSolutionVersion – prever().
    Nota:
    Esta API executa com privilégios totais. Para restringir o acesso do usuário, inclua um mecanismo de controle de acesso no script.

    Para obter diretrizes de uso, consulte Como usar APIs de ML.

    RegressionSolution - RegressionSolution(Configuração de objeto)

    Cria uma solução de regressão.

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    config Objeto Objeto JavaScript que contém propriedades de configuração do solução.
    {
      "algorithmConfig": {Object},
      "dataset": {Object},
      "domainName": "String",
      "encoder": {Object},
      "inputFieldNames": [Array],
      "label": "String",
      "minRowCount": "String",
      "predictedFieldName": "String",
      "predictedInterval": [Array],
      "processingLanguage": "String",
      "stopwords": [Array],
      "trainingFrequency": "String"
    }
    config.dataset Objeto Nomede DatasetDefinition.
    config.domainName Cadeia de caracteres Opcional. Nome do domínio associado a este conjunto de dados. Consulte Separação de domínios e Inteligência preditiva.

    Padrão: domínio atual, por exemplo, "global".

    config.codificador Objeto Opcional. Objeto de codificador treinado a ser atribuído a esta solução. Consulte Codificador - Codificador (configuração de objeto).
    config.inputFieldNames Matriz Lista de nomes de campos de entrada como cadeias de caracteres. O modelo usa esses campos usados para fazer previsões.
    config.rótulo Cadeia de caracteres Identifica a tarefa de previsão.
    config.minRowCount Cadeia de caracteres Opcional. Número mínimo de registros necessários no conjunto de dados para treinamento.

    Padrão: 10000

    config.predictedFieldName Cadeia de caracteres Obrigatório, a menos que esteja definindo predictedInterval. Identifica um campo a ser treinado para previsibilidade.
    config.intervaloprevisto Matriz Obrigatório, a menos que esteja definindo predictedFieldName. Define um intervalo de campos para treinar sua solução para confiança. Oferece suporte ao fornecimento de 2 campos de data não numéricos. Por exemplo, 'predictedInterval': ['sys_updated_on', 'sys_created_on'].
    config.processingLanguage Cadeia de caracteres Opcional. Idioma de processamento no formato de código de idioma ISO 639-1 de duas letras.

    Padrão: "en"

    config.palavras irrelevantes Matriz Opcional. Lista predefinida de cadeias de caracteres que o sistema gera automaticamente com base na configuração da propriedade language. Para obter detalhes, consulte Criação de uma lista de palavras irrelevantes personalizada.

    Padrão: palavras irrelevantes em inglês

    config.FrequênciaDetreinamento Cadeia de caracteres A frequência para retreinar o modelo.
    Valores possíveis:
    • a cada_30_dias
    • a cada_60_dias
    • a cada_90_dias
    • a cada_120_dias
    • a cada_180_dias
    • run_once
    Padrão: run_once

    O exemplo a seguir mostra como criar um objeto e adicioná-lo ao 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);

    O exemplo a seguir mostra como criar um objeto para treinar usando a propriedade predictedInterval.

    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()

    Cancela um trabalho para um objeto de solução que foi enviado para treinamento.

    Tabela 2. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 3. Retorna
    Tipo Descrição
    Nenhum

    O exemplo a seguir mostra como cancelar um trabalho de treinamento existente.

    var mySolution = sn_ml.RegressionSolutionStore.get('ml_sn_global_global_regression');
    
    mySolution.cancelTrainingJob();

    RegressionSolution - getActiveVersion()

    Objeto Obtém o ativo RegressionSolutionVersion.

    Tabela 4. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 5. Retorna
    Tipo Descrição
    Objeto Objeto RegressionSolutionVersion ativo.

    O exemplo a seguir mostra como obter uma SoluçãoDeRegressão versão ativa do armazenamento e retornar seu status de treinamento.

    var mlSolution = sn_ml.RegressionSolutionStore.get('ml_x_snc_global_global_regression');
    
    gs.print(JSON.stringify(JSON.parse(mlSolution.getActiveVersion().getStatus()), null, 2));

    Saída:

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

    RegressionSolution - getAllVersions()

    Obtém todas as versões de um objeto RegressionSolution.

    Tabela 6. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 7. Retorna
    Tipo Descrição
    Matriz APIVersões existentes de um objeto de solução. Consulte também RegressionSolutionVersion.

    O exemplo a seguir mostra como obter todos os objetos de versão RegressionSolution e chamar os métodos de versão de solução getVersionNumber() e getStatus() neles.

    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");
    };

    Saída:

    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()

    Obtém a versão mais recente de uma solução.

    Tabela 8. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 9. Retorna
    Tipo Descrição
    Objeto RegressionSolutionVersion objeto correspondente à versão mais recente dee RegressionSolution().

    O exemplo a seguir mostra como obter a versão mais recente de uma solução e retornar seu status de treinamento.

    var mlSolution = sn_ml.RegressionSolutionStore.get('ml_x_snc_global_global_regression');
    
    gs.print(JSON.stringify(JSON.parse(mlSolution.getLatestVersion().getStatus()), null, 2));

    Saída:

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

    RegressionSolution - getName()

    Obtém o nome do objeto a ser usado para interação com o armazenamento.

    Tabela 10. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 11. Retorna
    Tipo Descrição
    Cadeia de caracteres Nome do objeto de solução.

    O exemplo a seguir mostra como atualizar SoluçãoDeRegressão as informações do conjunto de dados e imprimir o nome do objeto.

    // 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());

    Saída:

    Solution Name: ml_x_snc_global_global_my_solution_definition_4

    RegressionSolution - getProperties()

    Obtém propriedades do objeto de solução.

    Tabela 12. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 13. Retorna
    Tipo Descrição
    Objeto Conteúdos dos detalhes do objeto Dataset e RegressionSolution() no RegressionSolutionStore.
    {
      "datasetProperties": {Object},
      "domainName": "String",
      "encoder": {Object},
      "inputFieldNames": [Array],
      "label": "String",
      "name": "String",
      "predictedFieldName": "String",
      "predictedInterval": [Array],
      "processingLanguage": "String",
      "scope": "String",
      "stopwords": [Array],
      "trainingFrequency": "String"
    }
    <Object>.datasetProperties

    Lista as propriedades do objeto DatasetDefinition() associado à solução.

    {
      "encodedQuery": "String",
      "fieldDetails": [Array],
      "fieldNames": [Array],
      "tableName": "String"
    }

    Tipo de dados: objeto.

    <Object>.datasetProperties.tableName Nome da tabela para o conjunto de dados. Por exemplo, "tableName" : "Incidente".

    Tipo de dados: cadeia de caracteres.

    <Object>.datasetProperties.fieldNomes Lista de nomes de campo da tabela especificada como cadeias de caracteres. Por exemplo, "fieldNames" : ["short_description", "priority"].

    Tipo de dados: matriz.

    <Object>.datasetProperties.fieldNames.fieldDetails Lista de objetos JavaScript que especificam propriedades de campo.
    [
      {
        "name": "String",
        "type": "String"
      }
    ]

    Tipo de dados: matriz.

    <Object>.datasetProperties.fieldNames.fieldDetails.<object>.nome Nome do campo que define o tipo de informação ao qual este conjunto de dados será restrito.

    Tipo de dados: cadeia de caracteres.

    <Object>.datasetProperties.fieldDetails.<object>.type Tipo de campo de aprendizado de máquina.

    Tipo de dados: cadeia de caracteres.

    <Object>.datasetProperties.fieldDetails.encodedQuery Cadeia de caracteres de consulta codificada no formato Glide padrão. Consulte Cadeias de caracteres de consulta codificadas.

    Tipo de dados: cadeia de caracteres.

    <Object>.domainName Nome do domínio associado a este conjunto de dados. Consulte Separação de domínios e Inteligência preditiva.

    Tipo de dados: cadeia de caracteres.

    <Object>.codificador Objeto de codificador atribuído a esta solução. Consulte Codificador - Codificador (configuração de objeto).

    Tipo de dados: objeto.

    <Object>.inputFieldNames Lista de nomes de campos de entrada como cadeias de caracteres. O modelo usa esses campos usados para fazer previsões.

    Tipo de dados: cadeia de caracteres.

    <Object>.rótulo Identifica a tarefa de previsão.
    {
      "label": "my first prediction"
    }

    Tipo de dados: cadeia de caracteres.

    <Object>.nome Nome atribuído pelo sistema.

    Tipo de dados: cadeia de caracteres.

    <Object>.predictedFieldName Identifica um campo a ser treinado para previsibilidade.

    Tipo de dados: cadeia de caracteres.

    <Object>.predictedInterval Intervalo de valores que especifica o nível de confiança da previsão.

    Tipo de dados: matriz

    <Object>.processingLanguage Idioma de processamento no formato de código de idioma ISO 639-1 de duas letras.

    Tipo de dados: cadeia de caracteres.

    <Object>.escopo Escopo do objeto. Atualmente, o único valor válido é global.

    Tipo de dados: cadeia de caracteres

    <Object>.palavras irrelevantes Opcional. Lista predefinida de cadeias de caracteres que o sistema gera automaticamente com base na configuração da propriedade language. Para obter detalhes, consulte Criação de uma lista de palavras irrelevantes personalizada.

    Tipo de dados: matriz.

    <Object>.trainingFrequency A frequência para retreinar o modelo.
    Valores possíveis:
    • a cada_30_dias
    • a cada_60_dias
    • a cada_90_dias
    • a cada_120_dias
    • a cada_180_dias
    • run_once
    Padrão: run_once

    Tipo de dados: cadeia de caracteres.

    O exemplo a seguir obtém propriedades de um objeto de solução no armazenamento.

    var mySolution = sn_ml.RegressionSolutionStore.get('ml_sn_global_global_regression_solution');
    
    gs.print(JSON.stringify(JSON.parse(mySolution.getProperties()), null, 2));
    Saída:
    *** 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)

    Obtém uma solução pelo número de versão fornecido.

    Tabela 14. Parâmetros
    Nome Tipo Descrição
    versão Cadeia de caracteres Número da versão existente de uma solução.
    Tabela 15. Retorna
    Tipo Descrição
    Objeto Versão especificada do objeto RegressionSolution() na qual você pode chamar métodos de API RegressionSolutionVersion.

    O exemplo a seguir mostra como obter o status de treinamento de uma solução por número de versão.

    var mlSolution = sn_ml.RegressionSolutionStore.get('ml_x_snc_global_global_regression');
    
    gs.print(JSON.stringify(JSON.parse(mlSolution.getVersion('1').getStatus()), null, 2));

    Saída:

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

    RegressionSolution - setActiveVersion(String version)

    Ativa uma versão especificada de uma solução na loja.

    Tabela 16. Parâmetros
    Nome Tipo Descrição
    versão Cadeia de caracteres Nome da versão do objeto RegressionSolution() a ser ativada.

    Ativar esta versão desativa qualquer outra versão.

    Tabela 17. Retorna
    Tipo Descrição
    Nenhum

    O exemplo a seguir mostra como ativar uma versão de solução na loja.

    sn_ml.RegressionSolution.setActiveVersion("ml_incident_categorization");

    RegressionSolution - submitTrainingJob()

    Envia um trabalho de treinamento.

    Nota:
    Antes de executar este método, você deve adicionar uma solução ao armazenamento usando o método RegressionSolutionStore - add().
    Tabela 18. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 19. Retorna
    Tipo Descrição
    Objeto RegressionSolutionVersion objeto correspondente ao que RegressionSolution está sendo treinado.

    O exemplo a seguir mostra como criar um conjunto de dados, aplicá-lo a uma solução, adicionar a solução a um armazenamento e enviar o trabalho de treinamento.

    // 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();