---
sourceDocument: Referência de API do Xanadu
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/pt-BR/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - pt-BR

ft:publication_title :

    - Referência de API do Xanadu

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# ClusteringSolution - Global

# ClusteringSolution - Global {#ariaid-title1}

* Versão de lançamento: Xanadu
* 
* Atualizado 1 de ago. de 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 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 para treinamento da solução é o seguinte:

1. Crie um conjunto de dados usando a API [DatasetDefinition](https://servicenow-prod.fluidtopics.net/o4nUJYO4X4WKz2l8yyx5lw#DatasetDefinitionAPI "A API DatasetDefinition fornece métodos para identificar um conjunto de registros, incluindo um nome de tabela, colunas e critérios de seleção de linha a serem usados como entrada para algoritmos de treinamento de ML. Os conjuntos de dados não contêm os dados reais.").
2. Obrigatório se estiver usando o algoritmo de cluster K-means. Crie um codificador usando a API [Encoder](https://servicenow-prod.fluidtopics.net/DHEI1a5CyrgJeY0rkmQ1yw#EncoderAPI "A API Encoder fornece um objeto programável usado em armazenamentos Inteligência preditiva. Este objeto converte dados de entrada em vetores de números, com base em objetivos e configurações específicas do codificador. Os codificadores podem ser usados independentemente para executar codificações ou podem ser configurados como parte de soluções para codificar colunas de texto.").
3. Use o [construtor](https://servicenow-prod.fluidtopics.net/A1xl8_fuXnhAOEvzgWy5zQ#ClusteringSol-ClusteringSolution_O "Cria uma solução de cluster.") 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()](https://servicenow-prod.fluidtopics.net/_vDQsxG0f6mYFKe_1Bi1FA#ClusteringStore-add_O "Adiciona um novo objeto de solução ao armazenamento e retorna um nome exclusivo.").
5. Treine a solução usando o método [submitTrainingJob()](https://servicenow-prod.fluidtopics.net/A1xl8_fuXnhAOEvzgWy5zQ#ClusteringSol-submitTrainingJob "Envia um trabalho de treinamento."). Isso cria uma versão do objeto que você pode gerenciar usando a API [ClusteringSolutionVersion](https://servicenow-prod.fluidtopics.net/ZKpZuv0I0Izg6~R59lekoQ#ClusteringSolutionVersionAPI "A API ClusteringSolutionVersion é um objeto programável usado em armazenamentos Inteligência preditiva.").
6. Obtenha previsões usando o método [ClusteringSolutionVersion -- prever()](https://servicenow-prod.fluidtopics.net/ZKpZuv0I0Izg6~R59lekoQ#C-predict_O_O "Obtém os dados de entrada para uma previsão.").

{#ClusteringSolutionAPI__ol_mmm_n1c_dmb}  
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](https://www.servicenow.com/docs/access?context=using-ml-apis&version=xanadu&pubname=xanadu-intelligent-experiences&ft:locale=en-US).

## ClusteringSolution - ClusteringSolution(Configuração de objeto) {#ariaid-title2}

Cria uma solução de cluster.
{#ClusteringSol-ClusteringSolution_O__table_gm2_yt5_flb__entry__3}{#ClusteringSol-ClusteringSolution_O__cluster-dbscan-distanceM-vals}{#ClusteringSol-ClusteringSolution_O__cluster-dbscan-epsilon-desc}{#ClusteringSol-ClusteringSolution_O__cluster-dbscan-minNeighbs-desc}{#ClusteringSol-ClusteringSolution_O__cluster-kmeans-targetC-desc}{#ClusteringSol-ClusteringSolution_O__solution-obj-domainN-default}{#ClusteringSol-ClusteringSolution_O__solution-cluster-minrec-desc}{#ClusteringSol-ClusteringSolution_O__solution-obj-stop-desc}

| 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.algorithmConfig | Objeto | Obrigatório, a menos que esteja definindo a propriedade encoder. Objeto JavaScript que contém propriedades de configuração do algoritmo. As configurações da 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 -- Agrupamento espacial baseado em densidade de aplicações com ruído (DBSCAN). Propriedades usadas com este algoritmo: * distanceMetric * epsilon * minimumNeighbours {#ClusteringSol-ClusteringSolution_O__ul_cfy_mkk_xlb} * hdbscan -- Agrupamento espacial baseado em densidade hierárquica de aplicações com ruído (HDBSCAN). Propriedades usadas com este algoritmo: * minimumSamples {#ClusteringSol-ClusteringSolution_O__ul_o3n_zcw_wnb} * kmeans -- Algoritmo de cluster K-means. Padrão. A propriedade targetCoverage é usada com este algoritmo. {#ClusteringSol-ClusteringSolution_O__ul_wtd_l2k_xlb} Alguns usuários preferem o DBSCAN porque ele não exige 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.DistanceMétrica | Cadeia de caracteres | Somente algoritmo DBSCAN. Métrica de distância para verificar objetos de dados semelhantes. Valores válidos: levenshteinDistance |
| config.algorithmConfig.epsilon | Número | Somente algoritmo DBSCAN. Valor decimal entre 0 e 1 que representa o tamanho do raio de pesquisa do bairro. |
| config.algoritmoConfig.mínimoVizinhos | 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árias para determinar se um ponto é um ponto central. Padrão: nenhum |
| config.algorithmConfig.targetCoverage | Número | Somente algoritmo K-means. Campo de 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 clustering \[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, essas colunas 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.dataset | Objeto | Nome do objeto[DatasetDefinition](https://servicenow-prod.fluidtopics.net/o4nUJYO4X4WKz2l8yyx5lw#DatasetDefinitionAPI "A API DatasetDefinition fornece métodos para identificar um conjunto de registros, incluindo um nome de tabela, colunas e critérios de seleção de linha a serem usados como entrada para algoritmos de treinamento de ML. Os conjuntos de dados não contêm os dados reais."). |
| 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](https://www.servicenow.com/docs/access?context=domain-separation-predictive-intelligence&version=xanadu&pubname=xanadu-intelligent-experiences&ft:locale=en-US). 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 de objeto)](https://servicenow-prod.fluidtopics.net/DHEI1a5CyrgJeY0rkmQ1yw#Encoder-Encoder_O "Cria um codificador."). |
| 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 de[DatasetDefinition](https://servicenow-prod.fluidtopics.net/o4nUJYO4X4WKz2l8yyx5lw#DatasetDefinitionAPI "A API DatasetDefinition fornece métodos para identificar um conjunto de registros, incluindo um nome de tabela, colunas e critérios de seleção de linha a serem usados como entrada para algoritmos de treinamento de ML. Os conjuntos de dados não contêm os dados reais.") tableName é `"incidente"` * A tabela Incident \[incident\] tem 10 tipos de categoria {#ClusteringSol-ClusteringSolution_O__ul_bt4_y3h_dmb} |
| config.groupUnclusteredRecords | Booliano | Sinalizador que indica se os 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. {#ClusteringSol-ClusteringSolution_O__ul_ar4_blq_wnb} 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 anteriores ao 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.minRecordsPerCluster | 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 [Criação de uma lista de palavras irrelevantes personalizada](https://www.servicenow.com/docs/access?context=create-custom-stopwords-list&version=xanadu&pubname=xanadu-intelligent-experiences&ft:locale=en-US). 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 {#ClusteringSol-ClusteringSolution_O__ul_pmw_523_plb}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: * atualizar_não_fazer * 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 {#ClusteringSol-ClusteringSolution_O__ul_kjm_2jh_3mb}Padrão: do_not_update |
[Tabela 1. Parâmetros]

{#ClusteringSol-ClusteringSolution_O__table_gm2_yt5_flb}  
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() {#ariaid-title3}

Cancela um trabalho para um objeto de solução que foi enviado para treinamento.
{#ClusteringSol-cancelTrainingJob__table_bpb_k3z_llb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| Nenhum |   |   |
[Tabela 2. Parâmetros]

{#ClusteringSol-cancelTrainingJob__table_bpb_k3z_llb} {#ClusteringSol-cancelTrainingJob__table_cpb_k3z_llb__entry__2}

| Tipo | Descrição |
|-|-|
| Nenhum |   |
[Tabela 3. Retorna]

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

Obtém o ativo Objeto ClusteringSolutionVersion.
{#ClusteringSol-getActiveVersion__table_tvl_m3z_llb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| Nenhum |   |   |
[Tabela 4. Parâmetros]

{#ClusteringSol-getActiveVersion__table_tvl_m3z_llb} {#ClusteringSol-getActiveVersion__table_uvl_m3z_llb__entry__2}

| Tipo | Descrição |
|-|-|
| Objeto | Objeto [ClusteringSolutionVersion](https://servicenow-prod.fluidtopics.net/ZKpZuv0I0Izg6~R59lekoQ#ClusteringSolutionVersionAPI "A API ClusteringSolutionVersion é um objeto programável usado em armazenamentos Inteligência preditiva.") ativo. |
[Tabela 5. Retorna]

{#ClusteringSol-getActiveVersion__table_uvl_m3z_llb}  
O exemplo a seguir mostra como obter uma ClusteringSolution versão ativa do armazenamento 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() {#ariaid-title5}

Obtém todas as versões de uma solução de clustering.
{#ClusteringSol-getAllVersions__table_tvl_m3z_llb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| Nenhum |   |   |
[Tabela 6. Parâmetros]

{#ClusteringSol-getAllVersions__table_tvl_m3z_llb} {#ClusteringSol-getAllVersions__table_uvl_m3z_llb__entry__2}

| Tipo | Descrição |
|-|-|
| Matriz | APIVersões existentes de um objeto de solução. Consulte também [ClusteringSolutionVersion](https://servicenow-prod.fluidtopics.net/ZKpZuv0I0Izg6~R59lekoQ#ClusteringSolutionVersionAPI "A API ClusteringSolutionVersion é um objeto programável usado em armazenamentos Inteligência preditiva."). |
[Tabela 7. Retorna]

{#ClusteringSol-getAllVersions__table_uvl_m3z_llb}  
O exemplo a seguir mostra como obter todos os objetos de versão ClusteringSolution e chamar os métodos de versão de 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() {#ariaid-title6}

Obtém a versão mais recente de uma solução.
{#ClusteringSol-getLatestVersion__table_tvl_m3z_llb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| Nenhum |   |   |
[Tabela 8. Parâmetros]

{#ClusteringSol-getLatestVersion__table_tvl_m3z_llb} {#ClusteringSol-getLatestVersion__table_uvl_m3z_llb__entry__2}

| Tipo | Descrição |
|-|-|
| Objeto | [ClusteringSolutionVersion](https://servicenow-prod.fluidtopics.net/ZKpZuv0I0Izg6~R59lekoQ#ClusteringSolutionVersionAPI "A API ClusteringSolutionVersion é um objeto programável usado em armazenamentos Inteligência preditiva.") objeto correspondente à versão mais recente de[e ClusteringSolution()](https://servicenow-prod.fluidtopics.net/A1xl8_fuXnhAOEvzgWy5zQ#ClusteringSol-ClusteringSolution_O "Cria uma solução de cluster."). |
[Tabela 9. Retorna]

{#ClusteringSol-getLatestVersion__table_uvl_m3z_llb}  
O exemplo a seguir mostra como obter a versão mais recente de uma solução e retornar seu status de treinamento.{#ClusteringSol-getLatestVersion__mlsol-getLatestVersion-example}

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

Obtém o nome do objeto a ser usado para interação com o armazenamento.
{#ClusteringSol-getName__table_pps_43z_llb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| Nenhum |   |   |
[Tabela 10. Parâmetros]

{#ClusteringSol-getName__table_pps_43z_llb} {#ClusteringSol-getName__table_qps_43z_llb__entry__2}

| Tipo | Descrição |
|-|-|
| Cadeia de caracteres | Nome do objeto de solução. |
[Tabela 11. Retorna]

{#ClusteringSol-getName__table_qps_43z_llb}  
O exemplo a seguir mostra como atualizar ClusteringSolution 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() {#ariaid-title8}

Obtém propriedades do objeto de solução.
{#ClusteringSol-getProperties__table_pps_43z_llb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| Nenhum |   |   |
[Tabela 12. Parâmetros]

{#ClusteringSol-getProperties__table_pps_43z_llb} {#ClusteringSol-getProperties__table_qps_43z_llb__entry__2}{#ClusteringSol-getProperties__solution-obj-group-desc}

| Tipo | Descrição |
|-|-|
| Objeto | Conteúdos dos detalhes do objeto Dataset e [ClusteringSolution()](https://servicenow-prod.fluidtopics.net/A1xl8_fuXnhAOEvzgWy5zQ#ClusteringSol-ClusteringSolution_O "Cria uma solução de cluster.") no [ClusteringSolutionStore](https://servicenow-prod.fluidtopics.net/_vDQsxG0f6mYFKe_1Bi1FA#ClusteringSolutionStoreAPI "Habilita o armazenamento e a recuperação de soluções."). { "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 | Objeto JavaScript que contém propriedades de configuração do algoritmo. Os resultados da 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 } 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.DistanceMétrica | Somente algoritmo DBSCAN. Métrica de distância para verificar objetos de dados semelhantes. Tipo de dados: cadeia de caracteres. |
| \<Object\>.algorithmConfig.epsilon | 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\>.algorithmConfig.minimumNeighbors | 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 algoritmo K-means. Campo de percentil para filtrar registros menos semelhantes entre si. Tipo de dados: número. |
| \<Object\>.datasetProperties | Lista as propriedades do objeto [DatasetDefinition()](https://servicenow-prod.fluidtopics.net/o4nUJYO4X4WKz2l8yyx5lw#DDef-DatasetDefinition_O "Cria uma instância da classe DatasetDefinition, permitindo que você defina um conjunto de dados por nome de tabela, campos e consulta.") 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](https://www.servicenow.com/docs/access?context=c_EncodedQueryStrings&version=xanadu&pubname=xanadu-platform-user-interface&ft:locale=en-US). 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](https://www.servicenow.com/docs/access?context=domain-separation-predictive-intelligence&version=xanadu&pubname=xanadu-intelligent-experiences&ft:locale=en-US). Tipo de dados: cadeia de caracteres. |
| \<Object\>.encoderProperties | Objeto de codificador atribuído a esta solução. Consulte [Codificador - Codificador (configuração de objeto)](https://servicenow-prod.fluidtopics.net/DHEI1a5CyrgJeY0rkmQ1yw#Encoder-Encoder_O "Cria um codificador."). 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 [Criação de uma lista de palavras irrelevantes personalizada](https://www.servicenow.com/docs/access?context=create-custom-stopwords-list&version=xanadu&pubname=xanadu-intelligent-experiences&ft:locale=en-US). 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 {#ClusteringSol-getProperties__ul_pmw_523_plb}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: * atualizar_não_fazer * 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 {#ClusteringSol-getProperties__ul_kjm_2jh_3mb}Padrão: do_not_update Tipo de dados: cadeia de caracteres |
[Tabela 13. Retorna]

{#ClusteringSol-getProperties__table_qps_43z_llb}  
O exemplo a seguir obtém propriedades de um objeto de solução no armazenamento.{#ClusteringSol-getProperties__mlsol-getProps-example-other2}

    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(String version) {#ariaid-title9}

Obtém uma solução pelo número de versão fornecido.
{#ClusteringSol-getVersion_S__table_pps_43z_llb__entry__3}{#ClusteringSol-getVersion_S__mlsol-gerversion-returns-other}

| Nome | Tipo | Descrição |
|-|-|-|
| versão | Cadeia de caracteres | Número da versão existente de uma solução. |
[Tabela 14. Parâmetros]

{#ClusteringSol-getVersion_S__table_pps_43z_llb} {#ClusteringSol-getVersion_S__table_qps_43z_llb__entry__2}

| Tipo | Descrição |
|-|-|
| Objeto | Versão especificada do objeto [ClusteringSolution()](https://servicenow-prod.fluidtopics.net/A1xl8_fuXnhAOEvzgWy5zQ#ClusteringSol-ClusteringSolution_O "Cria uma solução de cluster.") na qual você pode chamar métodos de API [ClusteringSolutionVersion](https://servicenow-prod.fluidtopics.net/ZKpZuv0I0Izg6~R59lekoQ#ClusteringSolutionVersionAPI "A API ClusteringSolutionVersion é um objeto programável usado em armazenamentos Inteligência preditiva."). |
[Tabela 15. Retorna]

{#ClusteringSol-getVersion_S__table_qps_43z_llb}  
O exemplo a seguir mostra como obter o status de treinamento de uma solução por número de versão.{#ClusteringSol-getVersion_S__mlsol-gerversion-example-other}

    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(String version) {#ariaid-title10}

Ativa uma versão especificada de uma solução na loja.
{#ClusteringSol-setActiveVersion_S__table_pps_43z_llb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| versão | Cadeia de caracteres | Nome da versão do objeto [ClusteringSolution()](https://servicenow-prod.fluidtopics.net/A1xl8_fuXnhAOEvzgWy5zQ#ClusteringSol-ClusteringSolution_O "Cria uma solução de cluster.") a ser ativada. Ativar esta versão desativa qualquer outra versão. |
[Tabela 16. Parâmetros]

{#ClusteringSol-setActiveVersion_S__table_pps_43z_llb} {#ClusteringSol-setActiveVersion_S__table_qps_43z_llb__entry__2}

| Tipo | Descrição |
|-|-|
| Nenhum |   |
[Tabela 17. Retorna]

{#ClusteringSol-setActiveVersion_S__table_qps_43z_llb}  
O exemplo a seguir mostra como ativar uma versão de solução na loja.{#ClusteringSol-setActiveVersion_S__mlsol-setActive-example2}

    sn_ml.ClusteringSolution.setActiveVersion("ml_incident_categorization");

## ClusteringSolution - submitTrainingJob() {#ariaid-title11}

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()](https://servicenow-prod.fluidtopics.net/_vDQsxG0f6mYFKe_1Bi1FA#ClusteringStore-add_O "Adiciona um novo objeto de solução ao armazenamento e retorna um nome exclusivo.").
{#ClusteringSol-submitTrainingJob__table_xmd_33z_llb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| Nenhum |   |   |
[Tabela 18. Parâmetros]

{#ClusteringSol-submitTrainingJob__table_xmd_33z_llb} {#ClusteringSol-submitTrainingJob__table_ymd_33z_llb__entry__2}

| Tipo | Descrição |
|-|-|
| Objeto | [ClusteringSolutionVersion](https://servicenow-prod.fluidtopics.net/ZKpZuv0I0Izg6~R59lekoQ#ClusteringSolutionVersionAPI "A API ClusteringSolutionVersion é um objeto programável usado em armazenamentos Inteligência preditiva.") objeto correspondente ao que [ClusteringSolution](https://servicenow-prod.fluidtopics.net/A1xl8_fuXnhAOEvzgWy5zQ#ClusteringSol-ClusteringSolution_O "Cria uma solução de cluster.") está sendo treinado. |
[Tabela 19. Retorna]

{#ClusteringSol-submitTrainingJob__table_ymd_33z_llb}  
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.{#ClusteringSol-submitTrainingJob__mlsol-submit-example-nonSol2}

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


