MLPredictor - Global (descontinuado)
A API MLPredictor fornece métodos de utilitário para Inteligência preditiva previsões.
A API MLPredictor requer o plug-in Inteligência preditiva (com.glide.platform_ml) e é fornecida no namespace sn_ml.
Esta classe contém todos os métodos necessários para obter resultados de previsão dos dados de entrada.
MLPredictor - applyPrediction(GlideRecord now_GR, soluções de matriz)
Define valores previstos de uma matriz de soluções especificadas para um registro especificado.
| Nome | Tipo | Descrição |
|---|---|---|
| now_GR | GlideRecord | O registro no qual aplicar a matriz de soluções previstas. |
| soluções | Matriz | Objetos de solução especificados associados ao GlideRecord. |
| Tipo | Descrição |
|---|---|
| vazio |
O exemplo a seguir demonstra o uso do método applyPrediction() em uma regra de negócios.
(function executeRule(current, previous /*null when async*/) {
var mlPredictor = new MLPredictor();
//Get the list of active solutions for the glide record table
var solutions = mlPredictor.findActiveSolutionsForRecord(current);
//Run prediction and apply predicted value to the record
mlPredictor.applyPrediction(current, solution);
})(current, previous);
MLPredictor - applyPredictionForSolution(GlideRecord now_GR, Solução de objeto)
Aplica um valor previsto de uma solução de classificação especificada ao GlideRecord especificado.
Para cada solução no GlideRecord, chame este método para prever os resultados e defina o valor do campo no incidente como esses resultados.
| Nome | Tipo | Descrição |
|---|---|---|
| now_GR | GlideRecord | Objeto GlideRecord que contém valores nos quais executar uma previsão e aplicar os resultados. |
| solução | Objeto | Objeto de solução de classificação a ser executado. |
| Tipo | Descrição |
|---|---|
| Booliano | Verdadeiro em caso de sucesso na previsão, caso contrário, erro. |
Para usar este modelo, copie a regra de negócios Previsão baseada em incidente (modelo), torne o novo registro Ativo e siga as instruções comentadas para inicializar a variável solutionNames.
(function executeRule(current, previous /*null when async*/) {
var solutionNames = ["solution1", "solution2", ...];
/* For domain separation (MSP) use case */
// var solutionNames;
// if (current.sys_domain == "A")
// solutionNames = ["solution_A1", "solution_A2", ...];
// else if (current.sys_domain == "B")
// solutionNames = ["solution_B1", "solution_B2", ...];
// else
// ...
var predictor = new MLPredictor();
var info = "";
solutionNames.forEach(function(solutionName) {
var solution = predictor.findActiveSolution(solutionName);
if (!solution)
return;
/* The next line of code does the prediction and updates the current record. */
predictor.applyPredictionForSolution(current, solution);
/* If no prediction is done, do not build the prediction info message. */
if (!predictor.applyPredictionForSolution(current, solution))
return;
/* If user doesn't have 'itil' role, we don't build prediction info message. */
if (!gs.hasRole('itil'))
return;
/* Building prediction info message */
var fieldName = solution.getPredictedField();
var fieldLabel = current.getElement(fieldName).getED().getLabel();
var predictedDisplayValue = current.getDisplayValue(fieldName);
var msg = gs.getMessage("Predicted {0} for {1}.", [predictedDisplayValue, fieldLabel]);
if (info.length > 0)
info += " ";
info += msg;
});
/* Print out prediction info message on screen. */
if (info.length > 0) {
var incidentUrl = "<a href='"+current.getLink()+"'>"+current.number+":</a>";
gs.addInfoMessage(incidentUrl + " " + info);
}
})(current, previous);
MLPredictor - findActiveSolution(cadeia de caracteres solutionName)
Obtém o objeto de solução.
Este método retorna as soluções somente se a definição e a solução ml_solution estiverem ativas.
| Nome | Tipo | Descrição |
|---|---|---|
| solutionName | Cadeia de caracteres | Nome do registro ml_solution. |
| Tipo | Descrição |
|---|---|
| Objeto | Objeto de solução para o solutionName especificado se a definição e a solução de ml_solution estiverem ativas, caso contrário, será nulo. |
Este exemplo usa um valor codificado e o passa para um modelo de aprendizado de máquina especificado. Você pode usar o resultado e as variáveis de confiança para definir valores ou outra lógica de negócios.
var solutionName = 'ml_incident_assignment';
var shortDescriptionValue = "Unable to connect!"
var input = {
short_description : shortDescriptionValue
};
var MLP = new MLPredictor();
var solution = MLP.findActiveSolution(solutionName);
var predictedOutcome = solution.predictText(input);
var outcome = predictedOutcome.predictedValue();
var confidence = predictedOutcome.confidence();
gs.info("Predicted value: " + outcome)
gs.info("Confidence: " + confidence)
Saída:
DxC_ML:
******* Finished Prediction********* *** Script: Predicted value: Software *** Script:
Confidence: 80.78079080096245
MLPredictor - findActiveSolutionsForRecord(GlideRecord now_GR)
Obtém soluções ativas para uma tabela em um GlideRecord especificado.
| Nome | Tipo | Descrição |
|---|---|---|
| now_GR | GlideRecord | GlideRecord do qual os objetos de solução ativos serão coletados. |
| Tipo | Descrição |
|---|---|
| Matriz | Matriz de objetos de solução ativos associados à tabela para a qual se destina o registro especificado. |
Este script passa um GlideRecord (como um incidente) e processa todas as soluções para o GlideRecord, retornando os valores de cada um.
/* This is only to get a hard-coded GR */
var current = new GlideRecord('incident');
current.get('965c9e5347c12200e0ef563dbb9a7156');
var predictor = new MLPredictor();
var solutions = predictor.findActiveSolutionsForRecord(current);
solutions.forEach(function(solution) {
var outcome = solution.predict(current);
/* Use this to set the field to the predicted value in the GlideRecord */
var fieldName = solution.getPredictedField();
current[fieldName] = outcome.predictedValue();
current.update();
gs.info("Predicted value: " + outcome.predictedValue())
gs.info("Confidence: " + outcome.confidence())
});
Saída (previsão de grupo de atribuição):
DxC_ML: ******* Finished Prediction*********
*** Script: Predicted value: Software *** Script: Confidence:
99.74530683715315
Saída (previsão de categoria):
DxC_ML:
******* Finished Prediction********* *** Script: Predicted value: Software *** Script:
Confidence: 98.7172805135524
MLPredictor - getPredictedValue(solução de objeto, resultado de objeto)
Obtém o valor previsto para uma solução especificada com base no resultado da previsão especificado.
| Nome | Tipo | Descrição |
|---|---|---|
| solução | Objeto | Solução da qual obter o valor previsto. |
| resultado | Objeto | Resultados do resultado da previsão para a solução especificada (var result = solution.predict(now_GR)). |
| Tipo | Descrição |
|---|---|
| Cadeia de caracteres | Valor previsto para a solução especificada com base no resultado especificado da previsão. |
| Nulo | Retornará nulo se a confiança da previsão não atender aos limites. |
MLPredictor - getPredictions(GlideRecord now_GR, Solução de objeto, Opções de objeto)
Obtém previsões para uma solução especificada.
| Nome | Tipo | Descrição |
|---|---|---|
| now_GR | GlideRecord | GlideRecord a ser previsto. |
| solução | Objeto | Objeto de solução a ser executado. |
| opções | Objeto | Par de chave-valor de objeto JSON opcional com as seguintes propriedades:
|
| Tipo | Descrição |
|---|---|
| Matriz | Matriz de objetos de resultado previstos |
O exemplo a seguir chama uma solução especificada e executa previsões nela.
function printOutcomeArr(outcomeArr) {
gs.print('################## Results ##################');
for (var i=0; i<outcomeArr.length; i++) {
var outcome = outcomeArr[i];
gs.print((i+1) + ' : ' + outcome.predictedValue() + ', ' + outcome.predictedValueSysId() + ', ' + outcome.confidence());
}
}
var solutionName = 'ml_x_snc_global_prop_flip_test';
var predictor = new MLPredictor();
var solution = predictor.findActiveSolution(solutionName);
var now_GR = new GlideRecord('incident');
now_GR.get('1c741bd70b2322007518478d83673af3');
var options = {};
options.top_n = '10'; // top_n is an integer between 1 and 1000
options.apply_threshold = false; // Value can be set to true or false
printOutcomeArr(predictor.getPredictions(now_GR, solution, options));
MLPredictor - isClassificationSolution(solução de objeto)
Identifica se um objeto de solução é um tipo de classificação.
| Nome | Tipo | Descrição |
|---|---|---|
| solução | Objeto | Nome da solução de ML. |
| Tipo | Descrição |
|---|---|
| Booliano | Retorna verdadeiro se a solução de entrada for um tipo de classificação, caso contrário, retornará falso. |
var isClassificationSolution = this.isClassificationSolution(solution);
//classification solution each class has different threshold
//therefore needs to get all the results from ml engine
if (applyThreshold && isClassificationSolution) {
var maxClassificationTopN = 50;
outcomeArr = solution.predictTopN(now_GR, maxClassificationTopN);
}
else {
outcomeArr = solution.predictTopN(now_GR, topN);
}
if (outcomeArr === null) {
//instead of returning null returning empty array
return [];
}
MLPredictor - isSimilaritySolution(solução de objeto)
Identifica se um objeto de solução é um tipo de semelhança.
| Nome | Tipo | Descrição |
|---|---|---|
| solução | Objeto | Nome da solução de ML; por exemplo, ml_incident_categorization. |
| Tipo | Descrição |
|---|---|
| Booliano | Retorna verdadeiro se a solução de entrada for um tipo de semelhança, caso contrário, retornará falso. |
MLPredictor - MLPredictor()
Instancia um novo objeto MLPredictor.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
O exemplo a seguir mostra como usar um objeto MLPredictor em uma regra de negócios para registrar valores finais após uma previsão.
function executeRule(current, previous /*null when async*/) {
var predictor = new MLPredictor();
predictor.recordFinalValuesInPredictionResults(current, "On close");
}(current, previous);
MLPredictor - resultado.confiança()
Obtém a confiança do valor previsto.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Cadeia de caracteres | A precisão estimada da previsão como uma porcentagem. Por exemplo, 53.84615375762915. |
var MLP = new MLPredictor();
var solution = MLP.findActiveSolution(solutionName);
var predictedOutcome = solution.predictText(input);
var outcome = predictedOutcome.predictedValue();
var confidence = predictedOutcome.confidence();
gs.info("Predicted value: " + outcome)
gs.info("Confidence: " + confidence)
MLPredictor - result.predictedValue()
Obtém o valor previsto do objeto de resultado MLPredictor.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Cadeia de caracteres | Valor previsto do objeto de resultado. |
var MLP = new MLPredictor();
var solution = MLP.findActiveSolution(solutionName);
var predictedOutcome = solution.predictText(input);
var outcome = predictedOutcome.predictedValue();
var confidence = predictedOutcome.confidence();
gs.info("Predicted value: " + outcome)
gs.info("Confidence: " + confidence)
MLPredictor - result.predictedValueSysId()
Obtém o sys_id do valor previsto.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Cadeia de caracteres | sys_id do valor previsto. |
function printOutcomeArr(outcomeArr) {
gs.print('################## Results ##################');
for (var i=0; i<outcomeArr.length; i++) {
var outcome = outcomeArr[i];
gs.print((i+1) + ' : ' + outcome.predictedValue() + ', ' + outcome.predictedValueSysId() + ', ' + outcome.confidence());
}
MLPredictor - recordFinalValuesInPredictionResults(GlideRecord now_GR, motivo da cadeia de caracteres)
Define os valores de resultado de previsão final para um GlideRecord especificado com um motivo especificado opcionalmente.
| Nome | Tipo | Descrição |
|---|---|---|
| now_GR | GlideRecord | GlideRecord no qual definir os valores de resultado da previsão final. |
| motivo | Cadeia de caracteres | Opcional. Motivo para aplicar os resultados. |
| Tipo | Descrição |
|---|---|
| vazio |
No exemplo a seguir, o método recordFinalValuesInPredictionResults() é chamado quando o incidente é encerrado.
(function executeRule(current, previous /*null when async*/) {
var predictor = new MLPredictor();
predictor.recordFinalValuesInPredictionResults(current, "On close");
})(current, previous);
MLPredictor - solution.getCapability()
Obtém as informações de recurso de uma solução treinada.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Cadeia de caracteres | ID de definição e versão da solução treinada, caso contrário, mensagem de erro |
MLPredictor - solution.getName()
Obtém o nome da solução usada para previsão.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Cadeia de caracteres | O nome da solução a ser usada para previsões; por exemplo, ml_incident_categorization |
MLPredictor - solution.getPredictedField()
Obtém o valor previsto de uma solução.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Cadeia de caracteres | Valor do campo de saída previsto de uma solução |
/* Get a hard-coded GR */
var current = new GlideRecord('incident');
current.get('965c9e5347c12200e0ef563dbb9a7156');
var predictor = new MLPredictor();
var solutions = predictor.findActiveSolutionsForRecord(current);
solutions.forEach(function(solution) {
var outcome = solution.predict(current);
/* Use this to set the field to the predicted value in the GlideRecord */
var fieldName = solution.getPredictedField();
current[fieldName] = outcome.predictedValue();
current.update();
gs.info("Predicted value: " + outcome.predictedValue())
gs.info("Confidence: " + outcome.confidence())
});
MLPredictor - solution.getThreshold(cadeia de caracteres "className")
Obtém o limite da solução.
O limite representa uma porcentagem que reflete a precisão mínima da previsão.
| Nome | Tipo | Descrição |
|---|---|---|
| className | Cadeia de caracteres | Um valor categórico especificado do campo de saída da solução |
| Tipo | Descrição |
|---|---|
| Número | Valor do limite representado como uma porcentagem entre 0 e 100. |
MLPredictor - solution.getVersion()
Obtém a versão da solução ativa.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Cadeia de caracteres | Versão da solução ativa |
MLPredictor - solution.isActive()
Determina se a solução especificada está ativa.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Booliano | Verdadeiro se a solução estiver ativa, caso contrário, falso |
MLPredictor - solution.predict(GlideRecord now_GR, Limite do objeto)
Obtém resultados de previsão de solução como um objeto de resultado.
| Nome | Tipo | Descrição |
|---|---|---|
| now_GR | GlideRecord | GlideRecord da tabela de entrada da solução |
| limite | Objeto | Valor limite (limite de nível de solução para semelhança, limite de nível de classe para classificação) |
| Tipo | Descrição |
|---|---|
| Objeto | Resultado da previsão da solução especificada (var result = solution.predict(now_GR)) |
solutions.forEach(function(solution) {
var outcome = solution.predict(current);
/* Use this to set the field to the predicted value in the GlideRecord
var fieldName = solution.getPredictedField();
current[fieldName] = outcome.predictedValue();
current.update();
*/
gs.info("Predicted value: " + outcome.predictedValue())
gs.info("Confidence: " + outcome.confidence())
});
MLPredictor - solution.predictTopN(GlideRecord now_GR, Object topN)
Retorna uma lista de objetos de resultado até o número esperado de previsões. Número máximo de 1.000 previsões.
| Nome | Tipo | Descrição |
|---|---|---|
| now_GR | GlideRecord | GlideRecord da solução |
| topN | Objeto | Número esperado de previsões, qualquer número acima de 1000 retorna 1000 resultados |
| Tipo | Descrição |
|---|---|
| Matriz | Lista de objetos de resultado em uma matriz, incluindo GlideRecord, limite, ID do sistema e número esperado de previsões (objeto topN) |
var isClassificationSolution = this.isClassificationSolution(solution);
//classification solution each class has different threshold
//therefore needs to get all the results from ml engine
if (applyThreshold && isClassificationSolution) {
var maxClassificationTopN = 50;
outcomeArr = solution.predictTopN(now_GR, maxClassificationTopN);
}
else {
outcomeArr = solution.predictTopN(now_GR, topN);
}
if (outcomeArr === null) {
//instead of returning null returning empty array
return [];
}