ClusteringSolution - Global

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 13 min. de leitura
  • A API ClusteringSolution é 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 da solução para treinamento é o seguinte:
    1. Crie um conjunto de dados usando a API DatasetDefinition.
    2. Obrigatório se estiver usando o algoritmo de cluster K-means. Crie um codificador usando a API Encoder.
    3. Use o construtor para criar um objeto de solução de clustering.
    4. Adicione o objeto de solução ao armazenamento de soluções de clustering usando o método ClusteringSolutionStore - 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 ClusteringSolutionVersion.
    6. Obtenha previsões usando o método ClusteringSolutionVersion – forecast().
    Nota:
    Esta API é executada 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 Uso de APIs de ML.

    ClusteringSolution - ClusteringSolution(configuração do objeto)

    Cria uma solução de cluster.

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    config Objeto Objeto JavaScript que contém propriedades de configuração do solução.
    {
      "algorithmConfig": {Object},
      "clusterConcept": "String",
      "clusterConceptFieldNames": [Array],
      "dataset": {Object},
      "domainName": "String",
      "encoder": {Object},
      "groupByFieldName": "String",
      "groupUnclusteredRecords": Boolean,
      "inputFieldNames": [Array],
      "label": "String",
      "maxTimeWindowForUpdate" : Number,
      "minRecordsPerCluster" : Number,
      "minRowCount": "String",
      "processingLanguage": "String",
      "stopwords": [Array],
      "trainingFrequency": "String",
      "updateFrequency": "String"
    }
    config.algoritmoConfig Objeto Obrigatório, exceto ao definir a propriedade encoder. Objeto JavaScript que contém propriedades de configuração do algoritmo. As configurações de propriedade variam de acordo com o valor definido na propriedade algorithm.
    'algorithmConfig': {
      "algorithm": "String",  
      // See algorithmConfig.algorithm setting description for property settings based on algorithm
    }
    config.algorithmConfig.algorithm Cadeia de caracteres Método para codificar sua solução.
    Valores válidos:
    • dbscan – Cluster espacial baseado em densidade de aplicações com ruído (DBSCAN). Propriedades usadas com este algoritmo:
      • distanceMetric
      • epsilon
      • minimumNeighbours
    • hdbscan – Agrupamento espacial baseado na densidade hierárquica de aplicações com ruído (HDBSCAN). Propriedades usadas com este algoritmo:
      • minimumSamples
    • kmeans – Algoritmo de clustering de K-means. Padrão. A propriedade targetCoverage é usada com este algoritmo.

    Alguns usuários preferem o DBSCAN porque ele não requer que você especifique o número de clusters nos dados antes do clustering.

    Propriedades para dbscan:
    'algorithmConfig': {
      "algorithm": "dbscan",
      "distanceMetric": "String",
      "epsilon": Number,
      "minimumNeighbours": Number
    }
    Propriedades para hdbscan:
    'algorithmConfig': {
      "algorithm": "hdbscan",
      "minimumSamples": Number
    }
    Propriedades para kmeans:
    'algorithmConfig': {
      "algorithm": "kmeans",
      "targetCoverage": Number
    }
    config.algorithmConfig.istanceMetric Cadeia de caracteres Somente algoritmo DBSCAN. Métrica de distância para verificar objetos de dados semelhantes.

    Valores válidos: levenshteinDistance

    config.algorithmConfig.eposilon Número Somente algoritmo DBSCAN. Valor decimal entre 0 e 1 que representa o tamanho do raio de pesquisa do bairro.
    config.algoritmoConfig.minimoVizinhos Número Somente algoritmo DBSCAN. Número mínimo de vizinhos necessários em um ponto para fazer parte de um cluster. Para levenshteinDistance, o valor deve ser 1 para que nenhum ponto seja excluído do conjunto de dados.
    config.algorithmConfig.minimumSamples Número Número mínimo de amostras de dados em um bairro necessário para determinar se um ponto é um ponto principal.

    Padrão: Nenhum

    config.algorithmConfig.targetCoverage Número Somente o algoritmo K-means. Campo Percentil para filtrar registros menos semelhantes entre si.
    config.clusterConcept Cadeia de caracteres Opcional. Tipo de conceito. Um conceito é um conjunto de palavras listadas em ordem decrescente de frequência. Para gerar um conceito de cluster baseado em TFIDF, defina o valor como tfidf. Os tipos de conceito são listados na tabela Definições de cluster [ml_capability_definition_clustering].

    Padrão: conceito de cluster baseado em frequência

    config.clusterConceptFieldNames Matriz Opcional. Lista de nomes de campo de conceito de cluster. Esses valores são colunas externas para criar um conceito de cluster e não são usados para treinamento de solução de cluster. Se colunas externas forem fornecidas, elas serão usadas somente para o conceito de cluster e não para o treinamento da solução de cluster. Os campos de conceito de cluster são listados na tabela Definições de cluster [ml_capability_definition_clustering].

    Padrão: colunas de texto de entrada geram o conceito de cluster

    config.conjunto de dados Objeto Nome do objetoDatasetDefinition.
    config.domainName Cadeia de caracteres Opcional. Nome de domínio associado a este conjunto de dados. Consulte Domain Separation e Inteligência preditiva.

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

    config.codificador Objeto Obrigatório, a menos que defina a propriedade algorithmConfig como "levenshteinDistance". Objeto de codificador treinado a ser atribuído a esta solução. Consulte Codificador – Codificador (configuração do objeto).
    config.groupByFieldName Cadeia de caracteres Opcional. Nome do campo pelo qual o sistema agrupa registros em um ou mais clusters.
    No exemplo de configuração a seguir, o sistema agrupa cada tipo em um cluster individual, renderizando 10 clusters.
    • groupByFieldName valor é "categoria"
    • O valor deDatasetDefinition tableName é "incidente"
    • A tabela Incidente [incident] tem 10 tipos de categoria
    config.registrosnãoclusterizados do grupo Booliano

    Sinalizador que indica se registros não clusterizados devem ser agrupados nos resultados.

    Valores válidos:
    • verdadeiro: agrupa registros não clusterizados separadamente nos resultados.
    • falso: não agrupe registros não clusterizados nos resultados. Valores não clusterizados (-1) são exibidos com o restante dos resultados.

    Padrão: falso

    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.maxTimeWindowForUpdate Número Opcional. Número de minutos que precedem o ponto de atualização do modelo para procurar registros. Por exemplo, se o valor for 15, o sistema procurará somente registros criados nos 15 minutos anteriores. Por padrão, o sistema verifica todos os registros.
    config.minRegistrosPorCluster Número Opcional. Número mínimo de registros a serem permitidos em qualquer cluster. O valor deve ser maior ou igual a 2.

    Padrão: 2

    config.minRowCount Cadeia de caracteres Opcional. Número mínimo de registros necessários no conjunto de dados para treinamento.

    Padrão: 10000

    config.processingLanguage Cadeia de caracteres Idioma de processamento no formato de código de idioma ISO 639-1 de duas letras.
    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 Criar uma lista de palavras irrelevantes personalizadas.

    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
    config.FrequênciaDeAtualização A frequência com que o modelo para a definição da solução deve ser recriado.
    Valores possíveis:
    • do_not_update
    • a cada_1_dia
    • a cada_1_hora
    • a cada_6_horas
    • a cada_12_horas
    • a cada_1_minuto
    • a cada_15_minutos
    • a cada_30_minutos
    Padrão: do_not_update

    O exemplo a seguir mostra como criar um objeto e adicioná-lo ao Armazenamento de ClusteringSolution. O exemplo também mostra como enviar o objeto para treinamento.

    try{
        var myData = new sn_ml.DatasetDefinition({
            'tableName' : 'incident',
            'fieldNames' : ['category', 'short_description', 'state', 'description'],
            'encodedQuery' : 'activeANYTHING'
        });
    
        // get a trained encoder from the store
        var myEncoder = sn_ml.EncoderStore.get('<encoder_name >');
            
        var mySolution = new sn_ml.ClusteringSolution({
            'label': "clustering solution",
            'dataset' : myData,
            'encoder' : myEncoder,
            'inputFieldNames':['short_description'],                
            'groupByFieldName' : 'category',        
            'algorithmConfig' : {
                'algorithm' : 'kmeans',
                'targetCoverage' : '90'
            }
        });
        
        // add solution
        var solutionName = sn_ml.ClusteringSolutionStore.add(mySolution);
        var solutionVersion = mySolution.submitTrainingJob();    
        var trainingStatus = solutionVersion.getStatus();
        gs.print(JSON.stringify(JSON.parse(trainingStatus), null, 2));
    ​
    } catch(ex){
        gs.print('Exception caught: '+ ex.getMessage());
    }

    Saída:

    {
      "state": "waiting_for_training",
      "percentComplete": "0",
      "hasJobEnded": "false"
    }

    O exemplo a seguir mostra como incluir o campo "descrição" como um campo de conceito de cluster.

    var myIncidentData = new sn_ml.DatasetDefinition({
        'tableName' : 'incident',
        'fieldNames' : ['category', 'short_description', 'description'],
    });
    
    var encodersolutionName = sn_ml.EncoderStore.get('<encoder_name >');
    
    var mySolution = new sn_ml.ClusteringSolution({
    	'label': 'clustering_test',
    	'dataset': myIncidentData,
    	'inputFieldNames': ['short_description'],
    	'encoder': encodersolutionName,
    	'clusterConceptFieldNames': ['description']
    });
    
    var solutionNameFromStore = sn_ml.ClusteringSolutionStore.add(mySolution);
    var myClassifier = mySolution.submitTrainingJob(); 

    ClusteringSolution - 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.ClusteringSolutionStore.get('ml_sn_global_global_clustering');
    
    mySolution.cancelTrainingJob();

    ClusteringSolution - getActiveVersion()

    Obtém o ativo Objeto ClusteringSolutionVersion.

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

    O exemplo a seguir mostra como obter uma ClusteringSolução versão ativa da loja e retornar seu status de treinamento.

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

    Saída:

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

    ClusteringSolution - getAllVersions()

    Obtém todas as versões de uma solução de cluster.

    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. Veja também ClusteringSolutionVersion.

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

    var mlSolution = sn_ml.ClusteringSolutionStore.get('ml_x_snc_global_global_clustering');
    
    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"}

    ClusteringSolution - 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 ClusteringSolutionVersion objeto correspondente à versão mais recente de a ClusteringSolution().

    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.ClusteringSolutionStore.get('ml_x_snc_global_global_clustering');
    
    gs.print(JSON.stringify(JSON.parse(mlSolution.getLatestVersion().getStatus()), null, 2));

    Saída:

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

    ClusteringSolution - getName()

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

    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 ClusteringSoluçã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('clustering'));
    
    var myCluster = new sn_ml.ClusteringSolution({
       'label': "my clustering solution",
       'dataset' : myIncidentData,
       'inputFieldNames': eligibleFields['eligibleInputFieldNames'],
       'predictedFieldName': 'category'
    });
    
    // update solution
    sn_ml.ClusteringSolutionStore.update('ml_x_snc_global_global_clustering_solution', myCluster);
    
    // print solution name
    gs.print('Solution Name: '+myCluster.getName());

    Saída:

    Solution Name: ml_x_snc_global_global_clustering_solution

    ClusteringSolution - 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údo dos detalhes do objeto Dataset e ClusteringSolution() no ClusteringSolutionStore.
    {
      "algorithmConfig": {Object},
      "datasetProperties": {Object},
      "domainName": "String",
      "encoder": {Object},
      "groupByFieldName": "String",
      "inputFieldNames": [Array],
      "label": "String",
      "minRecordsPerCluster" : Number,
      "name": "String",
      "processingLanguage": "String",
      "scope": "String",
      "stopwords": [Array],
      "trainingFrequency": "String",
      "updateFrequency": "String"
    }
    <Object>.algorithmConfig Os resultados da propriedadeObjeto JavaScript que contém propriedades de configuração do algoritmo. variam de acordo com o valor definido na propriedade algorithm.
    'algorithmConfig' : {
      "algorithm": "String",  
      // See algorithmConfig.algorithm setting description for property settings based on algorithm
    }

    Tipo de dados: objeto.

    <Object>.algoritmoConfig.algoritmo Método para codificar sua solução.
    Propriedades para dbscan:
    'algorithmConfig': {
      "algorithm": "dbscan",
      "distanceMetric": "String",
      "epsilon": Number,
      "minimumNeighbours": Number
    }
    Propriedades para kmeans:
    'algorithmConfig': {
      "algorithm": "kmeans",
      "targetCoverage": Number
    }

    Tipo de dados: Cadeia de caracteres.

    <Object>.algorithmConfig.istanceMetric Somente algoritmo DBSCAN. Métrica de distância para verificar objetos de dados semelhantes.

    Tipo de dados: Cadeia de caracteres.

    <Object>.algorithmConfig.eposilon Somente algoritmo DBSCAN. Valor decimal entre 0 e 1 que representa o tamanho do raio de pesquisa do bairro.

    Tipo de dados: número.

    <Object>.algoritmoConfig.minimumVizinhos Somente algoritmo DBSCAN. Número mínimo de vizinhos necessários em um ponto para fazer parte de um cluster. Para levenshteinDistance, o valor deve ser 1 para que nenhum ponto seja excluído do conjunto de dados.

    Tipo de dados: número.

    <Object>.algorithmConfig.targetCoverage Somente o algoritmo K-means. Campo Percentil para filtrar registros menos semelhantes entre si.

    Tipo de dados: número.

    <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.fieldNames 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>.name Nome do campo que define o tipo de informação ao qual restringir este conjunto de dados.

    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 de domínio associado a este conjunto de dados. Consulte Domain Separation e Inteligência preditiva.

    Tipo de dados: Cadeia de caracteres.

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

    Tipo de dados: objeto.

    <Object>.groupByFieldName Nome do campo pelo qual o sistema agrupa registros em um ou mais clusters.

    Tipo de dados: cadeia de caracteres

    <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>.minRecordsPerCluster Número mínimo de registros a serem permitidos em qualquer cluster.

    Tipo de dados: número.

    <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>.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 Criar uma lista de palavras irrelevantes personalizadas.

    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.

    <Object>.updateFrequency A frequência com que o modelo para a definição da solução deve ser recriado.
    Valores possíveis:
    • do_not_update
    • a cada_1_dia
    • a cada_1_hora
    • a cada_6_horas
    • a cada_12_horas
    • a cada_1_minuto
    • a cada_15_minutos
    • a cada_30_minutos
    Padrão: do_not_update

    Tipo de dados: cadeia de caracteres

    O exemplo a seguir obtém as propriedades de um objeto de solução no repositório.

    var myCluster = new sn_ml.ClusteringSolutionStore.get("ml_x_snc_global_global_clustering_solution");
    
    gs.print(JSON.stringify(JSON.parse(myCluster.getProperties()), null, 2));
    Saída:
    *** Script: {
      "algorithmConfig": {
        "algorithm": "kmeans",
        "targetCoverage": "90"
      },
      "datasetProperties": {
        "tableName": "incident",
        "fieldNames": [
          "category",
          "short_description",
          "state",
          "description"
        ],
        "encodedQuery": "activeANYTHING"
      },
      "domainName": "global",
      "encoderProperties": {
        "datasetsProperties": [
          {
            "tableName": "incident",
            "fieldNames": [
              "assignment_group",
              "short_description",
              "description"
            ],
            "encodedQuery": "activeANYTHING"
          }
        ],
        "domainName": "global",
        "label": "my encoder definition",
        "name": "ml_x_snc_global_global_my_encoder_definition",
        "processingLanguage": "en",
        "scope": "global",
        "stopwords": [
          "Default English Stopwords"
        ],
        "trainingFrequency": "run_once"
      },
      "groupByFieldName": "category",
      "inputFieldNames": [
        "short_description"
      ],
      "label": "clustering solution",
      "minRecordsPerCluster": 2,
      "name": "ml_x_snc_global_global_clustering_solution",
      "processingLanguage": "en",
      "scope": "global",
      "stopwords": [
        "Default English Stopwords"
      ],
      "trainingFrequency": "run_once",
      "updateFrequency": "do_not_update"
    }}

    ClusteringSolution - getVersion(cadeia de caracteres "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 ClusteringSolution() na qual você pode chamar métodos de API ClusteringSolutionVersion.

    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.ClusteringSolutionStore.get('ml_x_snc_global_global_clustering');
    
    gs.print(JSON.stringify(JSON.parse(mlSolution.getVersion('1').getStatus()), null, 2));

    Saída:

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

    ClusteringSolution - setActiveVersion(cadeia de caracteres 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 ClusteringSolution() 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 Store.

    sn_ml.ClusteringSolution.setActiveVersion("ml_incident_categorization");

    ClusteringSolution - submitTrainingJob()

    Envia um trabalho de treinamento.

    Nota:
    Antes de executar este método, você deve primeiro adicionar uma solução ao armazenamento usando o método ClusteringSolutionStore - add().
    Tabela 18. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 19. Retorna
    Tipo Descrição
    Objeto ClusteringSolutionVersion objeto correspondente ao que ClusteringSolution 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 uma loja 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'
    
    });
    
    // get a trained encoder from the store
    var myEncoder = sn_ml.EncoderStore.get('ml_x_snc_global_global_encoder');
    
    // Create a solution 
    var mySolution = new sn_ml.ClusteringSolution({
    
      'label': "my solution definition",
      'dataset' : myData,
      'encoder' : myEncoder,
      '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.ClusteringSolutionStore.add(mySolution);
    
    // Train the solution - this is a long running job 
    var myClusterVersion = mySolution.submitTrainingJob();