ClusteringSolution - Global
. ClusteringSolution A API é um objeto programável usado em Inteligência preditivalojas.
Este A API requer Inteligência preditivaplug-in (com.glide.platform_ml) e é fornecido no sn_ml namespace.
- Crie um conjunto de dados usando DatasetDefinition API.
- Obrigatório se estiver usando o algoritmo de clustering K-Means. Crie um codificador usando Codificador API.
- Use o. construtor para criar um objeto de solução de clustering.
- Adicione o objeto de solução ao armazenamento de soluções de clustering usando ClusteringSolutionStore - add() método.
- Treine a solução usando TrainingJob() método. Isso cria uma versão do objeto que você pode gerenciar usando o. 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 as propriedades de configuração do solução. |
| Config.algorithmConfig | Objeto | Necessário, a menos que defina o. encoderpropriedade. Objeto JavaScript que contém propriedades de configuração do algoritmo.As configurações de propriedade variam de acordo com o valor definido no algorithmpropriedade. |
| AlgorithmConfig.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 de fazer o 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 de bairro. |
| 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 central. 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 |
| Nomes de campo 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 da 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. |
| Nome.domainName | Cadeia de caracteres | Opcional. Nome de domínio associado a este conjunto de dados. Consulte Separação de domínio e. Inteligência preditiva. Padrão: Domínio atual, por exemplo, |
| config.encoder | Objeto | Necessário, a menos que defina o. algorithmConfigpropriedade para "LevenshteinDistance" . Objeto do codificador treinado para atribuir a esta solução. Consulte Codificador - Codificador (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. |
| rótulo.config | Cadeia de caracteres | Identifica a tarefa de previsão. |
| Config.maxTimeWindowForUpdate | Número | Opcional. Número de minutos antes do 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. |
| 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 |
| 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 | 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 de interrupção personalizada . Padrão: Palavras irrelevantes em inglês |
| Frequência de treinamento.Config | Cadeia de caracteres | A frequência para retreinar o modelo.
Valores possíveis:
|
| Frequência.updateConfig | A frequência na qual o modelo da definição da solução deve ser reconstruído.
Valores possíveis:
|
O exemplo a seguir mostra como criar um objeto e adicioná-lo ao Armazenamento de soluções em cluster. 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.
| 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()
Obtém o ativo 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 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.
| 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 chamar 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 der Solução de Clustering() . |
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 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 | Conteúdo do conjunto de dados e. Solução de Clustering() detalhes do objeto no ClusteringSolutionStore . |
| <Object>.AlgorithmConfig | Objeto JavaScript que contém propriedades de configuração do algoritmo.Os resultados da propriedade variam de acordo com o valor definido no 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 de bairro. 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 campo 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>Nome .domainName | Nome de domínio associado a este conjunto de dados. Consulte Separação de domínio e. Inteligência preditiva. Tipo de dados: Cadeia de caracteres. |
| <Object>.EncoderProperties | Objeto do codificador atribuído a esta solução. Consulte Codificador - Codificador (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>.rótulo | 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 previsibilidade. 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. No momento, o único valor válido é global .Tipo de dados: Cadeia de caracteres |
| <Object>.stopwords | 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 de interrupção personalizada . Tipo de dados: Matriz. |
| <Object>.TrainingFrequency | A frequência para retreinar 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 reconstruído. 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 Solução de Clustering() 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 Solução de Clustering() versão do objeto a ser ativada. A ativação desta 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, aplicá-lo a. 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();