MLPredictor - Global (obsolète)
L’API MLPredictor fournit des méthodes utilitaires pour Intelligence prédictive les prédictions.
L’API MLPredictor nécessite le module d’extension Intelligence prédictive (com.glide.platform_ml) et est fournie dans l’espace de noms sn_ml .
Cette classe contient toutes les méthodes nécessaires pour obtenir des résultats de prédiction à partir des données d’entrée.
MLPredictor : MLPredictor()
Instancie un nouvel objet MLPredictor.
| Nom | Type | Description |
|---|---|---|
| Aucun |
L’exemple suivant montre comment utiliser un objet MLPredictor dans une règle métier pour enregistrer les valeurs finales après une prédiction.
function executeRule(current, previous /*null when async*/) {
var predictor = new MLPredictor();
predictor.recordFinalValuesInPredictionResults(current, "On close");
}(current, previous);
MLPredictor : applyPrediction(GlideRecord now_GR, solutions de tableau)
Définit les valeurs prévues à partir d’un tableau de solutions spécifiées à un enregistrement spécifié.
| Nom | Type | Description |
|---|---|---|
| now_GR | GlideRecord | Enregistrement auquel appliquer le tableau des solutions prévues. |
| solutions | Tableau | Objets de solution spécifiés associés au GlideRecord. |
| Type | Description |
|---|---|
| nul |
L’exemple suivant illustre l’utilisation de la méthode applyPrediction() dans une règle métier.
(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, solution d’objet)
Applique une valeur prévue d’une solution de classification spécifiée au GlideRecord spécifié.
Pour chaque solution dans GlideRecord, appelez cette méthode pour prédire les résultats et définissez la valeur de champ sur l’incident sur ces résultats.
| Nom | Type | Description |
|---|---|---|
| now_GR | GlideRecord | Objet GlideRecord contenant des valeurs sur lesquelles exécuter une prédiction et appliquer les résultats. |
| solution | Objet | Objet de solution de classification à exécuter. |
| Type | Description |
|---|---|
| Booléen | Vrai en cas de réussite de la prédiction, erreur dans le cas contraire. |
Pour utiliser ce modèle, copiez la règle métier Prédiction basée sur les incidents (modèle), activez le nouvel enregistrement et suivez les instructions commentées pour initialiser la variable 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(String solutionName)
Obtient l’objet de solution.
Cette méthode renvoie uniquement les solutions si la définition et la solution ml_solution sont actives.
| Nom | Type | Description |
|---|---|---|
| solutionName | Chaîne | Nom de l’enregistrement ml_solution. |
| Type | Description |
|---|---|
| Objet | Objet de solution pour le solutionName spécifié si la définition et la solution ml_solution sont actives, null dans les autres cas. |
Cet exemple prend une valeur codée en dur et la transmet à un modèle d’apprentissage automatique spécifié. Vous pouvez utiliser les variables de résultat et de confiance pour définir des valeurs ou d’autres logiques métier.
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)
Sortie :
DxC_ML:
******* Finished Prediction********* *** Script: Predicted value: Software *** Script:
Confidence: 80.78079080096245
MLPredictor : findActiveSolutionsForRecord(GlideRecord now_GR)
Obtient les solutions actives pour une table dans un GlideRecord spécifié.
| Nom | Type | Description |
|---|---|---|
| now_GR | GlideRecord | GlideRecord à partir duquel collecter des objets de solution actifs. |
| Type | Description |
|---|---|
| Tableau | Tableau d’objets de solution actifs associés à la table à laquelle l’enregistrement spécifié est destiné. |
Ce script transmet un GlideRecord (tel qu’un incident) et traite toutes les solutions pour le GlideRecord, en renvoyant les valeurs pour chacune.
/* 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())
});
Sortie (prédiction de groupe d’affectation) :
DxC_ML: ******* Finished Prediction*********
*** Script: Predicted value: Software *** Script: Confidence:
99.74530683715315
Sortie (prédiction de catégorie) :
DxC_ML:
******* Finished Prediction********* *** Script: Predicted value: Software *** Script:
Confidence: 98.7172805135524
MLPredictor : getPredictedValue(Object solution, Object outcome)
Obtient la valeur prévue pour une solution spécifiée en fonction du résultat de prédiction spécifié.
| Nom | Type | Description |
|---|---|---|
| solution | Objet | Solution à partir de laquelle obtenir la valeur prévue. |
| résultat | Objet | Résultats de prédiction pour la solution spécifiée (var outcome = solution.predict(now_GR)). |
| Type | Description |
|---|---|
| Chaîne | Valeur prévue pour la solution spécifiée en fonction du résultat spécifié de la prédiction. |
| Zéro | Renvoie null si la confiance de prédiction ne satisfait pas aux seuils. |
MLPredictor : getPredictions(GlideRecord now_GR, solution objet, options d’objet)
Obtient des prédictions pour une solution spécifiée.
| Nom | Type | Description |
|---|---|---|
| now_GR | GlideRecord | GlideRecord à prédire. |
| solution | Objet | Objet de solution à exécuter. |
| options | Objet | Paire de valeurs clés d’objet JSON facultative avec les propriétés suivantes :
|
| Type | Description |
|---|---|
| Tableau | Tableau des objets de résultats prévus |
L’exemple suivant appelle une solution spécifiée et exécute des prédictions sur celle-ci.
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(Object solution)
Identifie si un objet de solution est un type de classification.
| Nom | Type | Description |
|---|---|---|
| solution | Objet | Nom de la solution ML. |
| Type | Description |
|---|---|
| Booléen | Renvoie la valeur Vrai si la solution d’entrée est un type de classification et Faux dans les autres cas. |
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(Object solution)
Identifie si un objet de solution est d’un type de similarité.
| Nom | Type | Description |
|---|---|---|
| solution | Objet | Nom de la solution ML ; Par exemple, ml_incident_categorization. |
| Type | Description |
|---|---|
| Booléen | Renvoie la valeur true si la solution d’entrée est un type de similarité et false dans les autres cas. |
MLPredictor : outcome.confidence()
Obtient le score de confiance de la valeur prévue.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | Précision estimée de la prédiction, en pourcentage. Par exemple, 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 : outcome.predictedValue()
Obtient la valeur prévue à partir de l’objet de résultat MLPdictor.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | Valeur prévue à partir de l’objet Résultat. |
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 : outcome.predictedValueSysId()
Obtient le sys_id de la valeur prévue.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | La valeur prévue sys_id. |
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, motif de chaîne)
Définit les valeurs de résultat de prédiction finale sur un GlideRecord spécifié avec un motif spécifié facultatif.
| Nom | Type | Description |
|---|---|---|
| now_GR | GlideRecord | GlideRecord sur lequel définir les valeurs de résultat de prédiction finale. |
| motif | Chaîne | Facultatif. Motif de l’application des résultats. |
| Type | Description |
|---|---|
| nul |
Dans l’exemple suivant, la méthode recordFinalValuesInPredictionResults() est appelée lorsque l’incident est fermé.
(function executeRule(current, previous /*null when async*/) {
var predictor = new MLPredictor();
predictor.recordFinalValuesInPredictionResults(current, "On close");
})(current, previous);
MLPredictor : solution.getCapability()
Obtient les informations d’aptitude d’une solution formée.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | ID de définition et version de la solution formée, message d’erreur dans le cas contraire |
MLPredictor : solution.getName()
Obtient le nom de la solution utilisée pour la prédiction.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | Le nom de la solution à utiliser pour les prédictions ; Par exemple, ml_incident_categorization |
MLPredictor : solution.getPredictedField()
Obtient la valeur prévue d’une solution.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | Valeur du champ de sortie prévue d’une solution |
/* 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(String className)
Obtient le seuil de la solution.
Le seuil représente un pourcentage reflétant la précision de prédiction minimale.
| Nom | Type | Description |
|---|---|---|
| Nom de classe | Chaîne | Une valeur catégorielle spécifiée du champ de sortie de la solution |
| Type | Description |
|---|---|
| Numéro | Valeur du seuil représenté en pourcentage compris entre 0 et 100. |
MLPredictor : solution.getVersion()
Obtient la version de la solution active.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | Version de la solution active |
MLPredictor : solution.isActive()
Détermine si la solution spécifiée est active.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Booléen | Vrai si la solution est active, faux dans les autres cas |
MLPredictor : solution.predict(GlideRecord now_GR, seuil d’objet)
Obtient les résultats de prédiction de solution en tant qu’objet de résultat.
| Nom | Type | Description |
|---|---|---|
| now_GR | GlideRecord | GlideRecord de la table d’entrée de la solution |
| seuil | Objet | Valeur de seuil (seuil de similarité au niveau de la solution, seuil de niveau classe pour la classification) |
| Type | Description |
|---|---|
| Objet | Résultat de prédiction de la solution spécifiée (var outcome = 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, objet topN)
Renvoie une liste d’objets de résultat jusqu’au nombre attendu de prédictions. Nombre maximum de 1000 prédictions.
| Nom | Type | Description |
|---|---|---|
| now_GR | GlideRecord | GlideRecord de la solution |
| topN | Objet | Nombre attendu de prédictions, tout nombre supérieur à 1 000 renvoie 1 000 résultats |
| Type | Description |
|---|---|
| Tableau | Liste des objets de résultat dans un tableau incluant GlideRecord, le seuil, l’ID système et le nombre attendu de prédictions (objet Top N) |
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 [];
}