MLPredictor – Global (veraltet)
Die MLPredictor- API stellt Dienstprogrammmethoden für Vorhersagen von Predictive Intelligence bereit.
Die MLPredictor- API erfordert das Plugin Predictive Intelligence (com.glide.platform_ml) und wird im sn_ml- Namespace bereitgestellt.
Diese Klasse enthält alle Methoden, um Vorhersage-Ergebnisse aus Eingabedaten abzurufen.
MLPredictor – applyPrediction(GlideRecord now_GR, Array solution)
Legt vorhergesagte Werte aus einem Array von angegebenen Lösungen für einen angegebenen Datensatz fest.
| Name | Typ | Beschreibung |
|---|---|---|
| now_GR | GlideRecord | Der Datensatz, auf den das Array der vorhergesagten Lösungen angewendet werden soll. |
| Lösungen | Array | Angegebene Lösungsobjekte, die dem GlideRecord zugeordnet sind. |
| Typ | Beschreibung |
|---|---|
| void |
Das folgende Beispiel zeigt die Verwendung der applyPredition()-Methode in einer Business Rule.
(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, Object solution)
Wendet einen vorhergesagten Wert aus einer angegebenen Klassifizierungslösung auf den angegebenen GlideRecord an.
Rufen Sie für jede Lösung im GlideRecord diese Methode auf, um die Ergebnisse vorherzusagen und den Feldwert für den Incident auf diese Ergebnisse festzulegen.
| Name | Typ | Beschreibung |
|---|---|---|
| now_GR | GlideRecord | GlideRecord-Objekt, das Werte enthält, für die eine Vorhersage ausgeführt und die Ergebnisse angewendet werden sollen. |
| Lösung | Objekt | Auszuführendes Klassifizierungslösungsobjekt. |
| Typ | Beschreibung |
|---|---|
| Boolean | „Wahr“ bei erfolgreicher Vorhersage, andernfalls Fehler. |
Um diese Vorlage zu verwenden, kopieren Sie die Incident-basierte Vorhersage (Vorlage) Business Rule, machen Sie den neuen Datensatz „aktiv“ und befolgen Sie die kommentierten Anweisungen, um die solutionNames-Variable zu initialisieren.
(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)
Ruft das Lösungsobjekt ab.
Diese Methode gibt nur dann die Lösungen zurück, wenn die ml_solution-Definition und -Lösung aktiv sind.
| Name | Typ | Beschreibung |
|---|---|---|
| solutionName | Zeichenfolge | Name des ml_solution-Datensatzes. |
| Typ | Beschreibung |
|---|---|
| Objekt | Lösungsobjekt für den angegebenen solutionName, wenn die ml_solution-Definition und -Lösung aktiv sind, andernfalls NULL. |
Dieses Beispiel nimmt einen hartcodierten Wert und übergibt ihn an ein angegebenes Modell für maschinelles Lernen. Sie können die Ergebnis- und Konfidenzvariablen verwenden, um Werte oder andere Geschäftslogik festzulegen.
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)
Ausgabe:
DxC_ML:
******* Finished Prediction********* *** Script: Predicted value: Software *** Script:
Confidence: 80.78079080096245
MLPredictor – findActiveSolutionsForRecord(GlideRecord now_GR)
Ruft aktive Lösungen für eine Tabelle in einem angegebenen GlideRecord ab.
| Name | Typ | Beschreibung |
|---|---|---|
| now_GR | GlideRecord | GlideRecord, aus dem aktive Lösungsobjekte gesammelt werden sollen. |
| Typ | Beschreibung |
|---|---|
| Array | Array von aktiven Lösungsobjekten, die der Tabelle zugeordnet sind, für die der angegebene Datensatz gilt. |
Dieses Skript übergibt einen GlideRecord (wie zum Beispiel einen Incident), und verarbeitet alle Lösungen für den GlideRecord und gibt die Werte für jede zurück.
/* 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())
});
Ausgabe (Zuweisungsgruppen-Vorhersage):
DxC_ML: ******* Finished Prediction*********
*** Script: Predicted value: Software *** Script: Confidence:
99.74530683715315
Ausgabe (Kategorie-Vorhersage):
DxC_ML:
******* Finished Prediction********* *** Script: Predicted value: Software *** Script:
Confidence: 98.7172805135524
MLPredictor – getPredictedValue(Object solution, Object outcome)
Ruft den vorhergesagten Wert für eine angegebene Lösung basierend auf dem angegebenen Vorhersageergebnis ab.
| Name | Typ | Beschreibung |
|---|---|---|
| Lösung | Objekt | Lösung, aus der der vorhergesagte Wert abgerufen werden soll. |
| outcome | Objekt | Ergebnisse der Vorhersageergebnisse für die angegebene Lösung (var result = solution.predict(now_GR)). |
| Typ | Beschreibung |
|---|---|
| Zeichenfolge | Vorhergesagter Wert für die angegebene Lösung basierend auf dem angegebenen Ergebnis der Vorhersage. |
| NULL | Gibt NULL zurück, wenn die Vorhersagekonfidenz die Schwellenwerte nicht erfüllt. |
MLPredictor – getPredictions(GlideRecord now_GR, Object solution, Object options)
Ruft Vorhersagen für eine angegebene Lösung ab.
| Name | Typ | Beschreibung |
|---|---|---|
| now_GR | GlideRecord | GlideRecord, der vorhergesagt werden soll. |
| Lösung | Objekt | Lösungsobjekt, das ausgeführt werden soll. |
| Optionen | Objekt | Optionales JSON-Objektschlüsselwertpaar mit den folgenden Eigenschaften:
|
| Typ | Beschreibung |
|---|---|
| Array | Array vorhergesagter Ergebnisobjekte |
Das folgende Beispiel ruft eine angegebene Lösung auf und führt darauf Vorhersagen aus.
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)
Gibt an, ob ein Lösungsobjekt ein Klassifizierungstyp ist.
| Name | Typ | Beschreibung |
|---|---|---|
| Lösung | Objekt | Name der ML-Lösung. |
| Typ | Beschreibung |
|---|---|
| Boolean | Gibt „true“ zurück, wenn die Eingabelösung ein Klassifizierungstyp ist, andernfalls „false“. |
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)
Gibt an, ob ein Lösungsobjekt ein Ähnlichkeitstyp ist.
| Name | Typ | Beschreibung |
|---|---|---|
| Lösung | Objekt | Name der ML-Lösung; Beispiel: ml_incident_categorization. |
| Typ | Beschreibung |
|---|---|
| Boolean | Gibt „true“ zurück, wenn die Eingabelösung ein Ähnlichkeitstyp ist, andernfalls „false“. |
MLPredictor – MLPredictor()
Instanziiert ein neues MLPredictor-Objekt.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
Im folgenden Beispiel wird veranschaulicht, wie ein MLPredictor-Objekt in einer Business Rule verwendet wird, um die endgültigen Werte nach einer Vorhersage aufzuzeichnen.
function executeRule(current, previous /*null when async*/) {
var predictor = new MLPredictor();
predictor.recordFinalValuesInPredictionResults(current, "On close");
}(current, previous);
MLPredictor – outcome.confidence()
Ruft die Zuverlässigkeit des vorhergesagten Werts ab.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Zeichenfolge | Die geschätzte Genauigkeit der Vorhersage in Prozent. Zum Beispiel, 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()
Ruft den vorhergesagten Wert aus dem MLPredictor-Ergebnisobjekt ab.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Zeichenfolge | Vorhergesagter Wert aus dem Outcome-Objekt. |
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()
Ruft die sys_id des vorhergesagten Werts ab.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Zeichenfolge | sys_id des vorhergesagten Werts. |
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, String reason)
Legt die endgültigen Vorhersageergebniswerte mit einem optional angegebenen Grund auf einen angegebenen GlideRecord fest.
| Name | Typ | Beschreibung |
|---|---|---|
| now_GR | GlideRecord | GlideRecord, für den die endgültigen Vorhersageergebniswerte festgelegt werden sollen. |
| Grund | Zeichenfolge | Optional. Grund für die Anwendung der Ergebnisse. |
| Typ | Beschreibung |
|---|---|
| void |
Im folgenden Beispiel wird die recordFinalValuesInPredictionResults()-Methode aufgerufen, wenn der Incident geschlossen ist.
(function executeRule(current, previous /*null when async*/) {
var predictor = new MLPredictor();
predictor.recordFinalValuesInPredictionResults(current, "On close");
})(current, previous);
MLPredictor – solution.getCapability()
Ruft die Fähigkeitsinformationen einer trainierten Lösung ab.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Zeichenfolge | Definitions-ID und Version der trainierten Lösung, ansonsten Fehlermeldung |
MLPredictor – solution.getName()
Ruft den Namen der für die Vorhersage verwendeten Lösung ab.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Zeichenfolge | Der Name der Lösung, die für Vorhersagen verwendet werden soll; zum Beispiel ml_incident_categorization |
MLPredictor – solution.getPredictedField()
Ruft den vorhergesagten Wert einer Lösung ab.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Zeichenfolge | Wert des vorhergesagten Ausgabefelds einer Lösung |
/* 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)
Ruft den Lösungsschwellenwert ab.
Der Schwellenwert stellt einen Prozentsatz dar, der die minimale Vorhersagegenauigkeit widerspiegelt.
| Name | Typ | Beschreibung |
|---|---|---|
| className | Zeichenfolge | Ein angegebener kategorialer Wert des Lösungsausgabefelds |
| Typ | Beschreibung |
|---|---|
| Nummer | Wert des Schwellenwerts, dargestellt als Prozentsatz zwischen 0 und 100. |
MLPredictor – solution.getVersion()
Ruft die Version der aktiven Lösung ab.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Zeichenfolge | Version der aktiven Lösung |
MLPredictor – solution.isActive()
Bestimmt, ob die angegebene Lösung aktiv ist.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Boolean | „True“, wenn die Lösung aktiv ist, andernfalls „false“ |
MLPredictor – solution.predict(GlideRecord now_GR, Object threshold)
Ruft Lösungsvorhersageergebnisse als Ergebnisobjekt ab.
| Name | Typ | Beschreibung |
|---|---|---|
| now_GR | GlideRecord | GlideRecord der Lösungseingabetabelle |
| Schwellenwert | Objekt | Schwellenwert (Lösungsebenen-Schwellenwert für Ähnlichkeit, Klassenebenen-Schwellenwert für Klassifizierung) |
| Typ | Beschreibung |
|---|---|
| Objekt | Ergebnis der Vorhersage der angegebenen Lösung (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)
Gibt eine Liste von Ergebnisobjekten bis zur erwarteten Anzahl von Vorhersagen zurück. Maximale Anzahl von 1000 Vorhersagen.
| Name | Typ | Beschreibung |
|---|---|---|
| now_GR | GlideRecord | GlideRecord der Lösung |
| topN | Objekt | Erwartete Anzahl von Vorhersagen, jede Zahl über 1000 gibt 1000 Ergebnisse zurück |
| Typ | Beschreibung |
|---|---|
| Array | Liste der Ergebnisobjekte in einem Array, einschließlich GlideRecord, Schwellenwert, System-ID und erwartete Anzahl von Vorhersagen (topN-Objekt) |
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 [];
}