ClusteringSolution - Global
. ClusteringSolution A API é um objeto programável usado em Inteligência preditiva armazenamentos.
Este A API requer Inteligência preditiva plug-in (com.glide.platform_ml) e é fornecido em sn_ml namespace.
- Crie um conjunto de dados usando DatasetDefinition API.
- Obrigatório se estiver usando o algoritmo de cluster K-Means. Crie um codificador usando Codificador API.
- Use construtor para criar um objeto de solução de cluster.
- Adicione o objeto de solução ao armazenamento de soluções de cluster usando ClusteringSolutionStore - add() método.
- Treine a solução usando SubmitTrainingJob() método. Cria uma versão do objeto que você pode gerenciar usando ClusteringsolutionVersion API.
- Obtenha previsões usando ClusteringSolutionVersion – Predict() método.
Para obter diretrizes de uso, consulte Usando APIs DE ML .
ClusteringSolution - ClusteringSolution (configuração de objeto)
Cria uma solução de cluster.
| Nome | Tipo | Descrição |
|---|---|---|
| config | Objeto | Objeto JavaScript que contém propriedades de configuração do solução. |
| Config.algorithmConfig | Objeto | Necessário, a menos que defina encoderpropriedade. Objeto JavaScript que contém propriedades de configuração do algoritmo.As configurações de propriedade variam de acordo com o valor definido em algorithmpropriedade. |
| Config.algorithmConfig.algorithm | Cadeia de caracteres | Método para codificar sua solução. Valores válidos:
Alguns usuários preferem O DBSCAN porque ele não requer que você especifique o número de clusters nos dados antes do cluster. Propriedades para dbscan:
Propriedades para hdbscan:
Propriedades para kmeans: |
| Config.algorithmConfig.distanceMetric | Cadeia de caracteres | Algoritmo DBSCAN somente. Métrica de distância para verificar objetos de dados semelhantes. Valores válidos: levenshteinDistance |
| Config.algorithmConfig.epsilon | Número | Algoritmo DBSCAN somente. Valor decimal entre 0 e 1 que representa o tamanho do raio de pesquisa da vizinhança. |
| Config.algorithmConfig.minimumNeighbors | Número | Algoritmo DBSCAN somente. Número mínimo de vizinhos necessários em um ponto para fazer parte de um cluster. Para levenshteinDistanceo 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 | Algoritmo K-means somente. 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 cluster [ml_capability_definition_clustering]. Padrão: Conceito de cluster baseado em frequência |
| Config.clusterConceptFieldNames | Matriz | Opcional. Lista de nomes de campos 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: As colunas de texto de entrada geram o conceito de cluster |
| config.dataset | Objeto | DatasetDefinition nome do objeto. |
| Config.domainname | Cadeia de caracteres | Opcional. Nome de domínio associado a este conjunto de dados. Consulte Domain Separation e. Inteligência preditiva. Domínio atual, por exemplo, |
| config.encoder | Objeto | Necessário, a menos que defina algorithmConfigpropriedade para "LevenshteinDistance" . Objeto do codificador treinado para atribuir a esta solução. Consulte Encoder - Encoder (configuração de 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.
|
| config.groupUnclusteredRecords | Booliano | Sinalizador que indica se os registros não clusterizados devem ser agrupados nos resultados. Valores válidos:
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.label | 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.minRow Count | 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 | Linguagem de processamento no formato de código de idioma ISO 639-1 de duas letras. |
| config.stopwords | Matriz | Opcional. Lista predefinida de cadeias de caracteres que o sistema gera automaticamente com base em languageconfiguração de propriedade. Para obter detalhes, consulte Crie uma lista de palavras irrelevantes personalizada . Padrão: Palavras irrelevantes em inglês |
| Config.TrainingFrequency | Cadeia de caracteres | A frequência para treinar novamente o modelo.
Valores possíveis:
|
| Config.updateFrequency | A frequência na qual o modelo da definição da solução deve ser recriado.
Valores possíveis:
|
O exemplo a seguir mostra como criar um objeto e adicioná-lo ao Armazenamento de soluções Clustering. 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 enviado para treinamento.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| 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()
Ativa Objeto ClusteringSolutionVersion.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Objeto | Ativo ClusteringsolutionVersion objeto. |
O exemplo a seguir mostra como obter um ativo ClusteringSolution da loja e retorna 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.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Matriz | Versões existentes de um objeto de solução. Consulte também ClusteringsolutionVersion API. |
O exemplo a seguir mostra como obter tudo ClusteringSolution objetos de versão e chamam o. GetVersionNumber() e. GetStatus() métodos de versão da solução 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.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Objeto | ClusteringsolutionVersion objeto correspondente à versão mais recente de. ClusteringSolution() . |
O exemplo a seguir mostra como obter a versão mais recente de uma solução e retorna 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 o armazenamento.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Cadeia de caracteres | Nome do objeto de solução. |
O exemplo a seguir mostra como atualizar ClusteringSolution informações do conjunto de dados e imprima 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.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Objeto | Conjunto de dados e. ClusteringSolution() detalhes do objeto no ClusteringSolutitionStore . |
| <Object>.AlgorithmConfig | Objeto JavaScript que contém propriedades de configuração do algoritmo.Os resultados da propriedade variam de acordo com o valor definido em algorithmpropriedade.
Tipo de dados: Objeto. |
| <Object>.AlgorithmConfig.algorithm | Método para codificar sua solução. Propriedades para dbscan:
Propriedades para kmeans:
Tipo de dados: Cadeia de caracteres. |
| <Object>.AlgorithmConfig.distanceMetric | Algoritmo DBSCAN somente. Métrica de distância para verificar objetos de dados semelhantes. Tipo de dados: Cadeia de caracteres. |
| <Object>.AlgorithmConfig.epsilon | Algoritmo DBSCAN somente. Valor decimal entre 0 e 1 que representa o tamanho do raio de pesquisa da vizinhança. Tipo de dados: Número. |
| <Object>.AlgorithmConfig.minimumNeighbors | Algoritmo DBSCAN somente. Número mínimo de vizinhos necessários em um ponto para fazer parte de um cluster. Para levenshteinDistanceo valor deve ser 1 para que nenhum ponto seja excluído do conjunto de dados. Tipo de dados: Número. |
| <Object>.AlgorithmConfig.targetCoverage | Algoritmo K-means somente. Campo de percentil para filtrar registros menos semelhantes entre si. Tipo de dados: Número. |
| <Object>.DatasetProperties | Lista as propriedades do DatasetDefinition() objeto associado à solução.
Tipo de dados: Objeto. |
| <Object>.DatasetProperties.tablename | Nome da tabela do conjunto de dados. Por exemplo, "Tablename" : "Incidente" . Tipo de dados: Cadeia de caracteres. |
| <Object>.DatasetProperties.fieldnames | Lista de nomes de campos da tabela especificada como cadeias de caracteres. Por exemplo, "Fieldnames" : ["short_description", "prioridade"] . Tipo de dados: Matriz. |
| <Object>.DatasetProperties.fieldnames.fieldDetails | Lista de objetos JavaScript que especificam propriedades de campo.
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>.EncoderPropriedades | Objeto do codificador atribuído a esta solução. Consulte Encoder - Encoder (configuração de 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>.label | Identifica a tarefa de previsão.
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>.name | Nome atribuído pelo sistema. Tipo de dados: Cadeia de caracteres. |
| <Object>.PredictedFieldName | Identifica um campo a ser treinado para previsão. Tipo de dados: Cadeia de caracteres. |
| <Object>.ProcessingLanguage | Linguagem 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 em languageconfiguração de propriedade. Para obter detalhes, consulte Crie uma lista de palavras irrelevantes personalizada . Tipo de dados: Matriz. |
| <Object>.TrainingFrequency | A frequência para treinar novamente o modelo. Valores possíveis:
Tipo de dados: Cadeia de caracteres. |
| <Object>.UpdateFrequency | A frequência na qual o modelo da definição da solução deve ser recriado. Valores possíveis:
Datatype: Cadeia de caracteres |
O exemplo a seguir obtém propriedades de um objeto de solução na loja.
var myCluster = new sn_ml.ClusteringSolutionStore.get("ml_x_snc_global_global_clustering_solution");
gs.print(JSON.stringify(JSON.parse(myCluster.getProperties()), null, 2));
*** 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 (versão da cadeia de caracteres)
Obtém uma solução pelo número de versão fornecido.
| Nome | Tipo | Descrição |
|---|---|---|
| versão | Cadeia de caracteres | Número da versão existente de uma solução. |
| Tipo | Descrição |
|---|---|
| Objeto | Versão especificada do ClusteringSolution() objeto no qual você pode chamar ClusteringsolutionVersion Métodos de API. |
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 (versão da cadeia de caracteres)
Ativa uma versão especificada de uma solução no armazenamento.
| Nome | Tipo | Descrição |
|---|---|---|
| versão | Cadeia de caracteres | Nome do ClusteringSolution() versão do objeto a ser ativada. Ativar esta versão desativa qualquer outra versão. |
| Tipo | Descrição |
|---|---|
| Nenhum |
O exemplo a seguir mostra como ativar uma solução versão na loja.
sn_ml.ClusteringSolution.setActiveVersion("ml_incident_categorization");
ClusteringSolution - submitTrainingJob()
Envia um trabalho de treinamento.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Objeto | ClusteringsolutionVersion objeto correspondente ao ClusteringSolution sendo treinado. |
O exemplo a seguir mostra como criar um conjunto de dados e aplicá-lo uma solução, adicione a solução para uma loja e envie 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();