ClassificationSolutionVersion : globale
L’API ClassificationSolutionVersion est un objet pouvant contenir des scripts utilisé dans les Intelligence prédictive magasins.
Ce L’API nécessite le module d’extension Intelligence prédictive (com.glide.platform_ml) et est fournie dans l’espace de noms sn_ml .
Cette API est utilisée pour travailler avec les versions de solutions basées sur les objets d’API ClassificationSolution dans le magasin ClassificationSolution.
Le système crée une version de solution chaque fois que vous formez une définition de solution. La plupart des versions sont créées au cours de la formation planifiée sur la solution.
ClassificationSolutionVersion : getPredictionPerformance(options de l’objet)
Calcule la précision et la couverture de la solution.
Pour utiliser cette méthode, vous devez d’abord créer des paramètres à l’aide de la méthode setPredictionSettings().
| Nom | Type | Description |
|---|---|---|
| options | Objet | Sélectionne une mesure à récupérer dans un intervalle de dates. Pour plus d’informations, consultez Configuration des mesures cibles. |
| options.fromDate | Chaîne | Facultatif. Date de début à partir de laquelle récupérer les mesures au format date/heure système. |
| options.metricName | Chaîne | Nom de la mesure. Valeurs valides :
|
| options.àDate | Chaîne | Facultatif. Date de fin à partir de laquelle récupérer les mesures. Formnt : format de date et d’heure du système. |
| Type | Description |
|---|---|
| Objet | Objet JavaScript analysable contenant les résultats de la mesure d’entrée. |
| Object.metricName | Nom de la mesure sélectionnée comme entrée. Type de données : chaîne |
| Object.metricValue (en anglais seulement) | Valeur de la mesure sélectionnée. Type de données : chaîne |
| Objet.numberOfRecordsConsidered | Nombre d’enregistrements de la table Résultats de prédiction [ml_predictor_results] pris en compte pour les calculs. Type de données : chaîne |
L’exemple suivant montre comment obtenir une valeur de précision à partir de la version active d’une solution.
// Get precision value
var mlSolution = sn_ml.ClassificationSolutionStore.get('ml_incident_categorization');
gs.print(JSON.stringify(JSON.parse(mlSolution.getActiveVersion().getPredictionPerformance({"metricName": "precision"})), null, 2));
Sortie :
{
"metricName": "precision",
"metricValue": "70.10",
"numberOfPredictionsConsidered": "10"
}
ClassificationSolutionVersion : getPredictionSettings()
Obtient la précision estimée, la couverture estimée, les valeurs de rappel estimées de la table Solutions ML [ml_solution] et les enregistrements de la table de confiance de classe [ml_class].
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Objet | Renvoie les paramètres de prédiction pour chaque classe. Les données incluent des valeurs de précision, de couverture, de rappel et de distribution de toutes les classes incluses dans le modèle formé à partir de la table ML Solutions [ml_solution]. Pour plus d’informations, consultez Composants de modèles prédictifs. |
| <Object>.<nom de classe> | Données statistiques de formation de la table Confiance de classe [ml_class]. Pour plus d’informations, consultez Configuration des mesures cibles. Type de données : objet |
| <Object>.<nom de classe>.precision | Mesure de précision estimée de la solution pour cette classe. Type de données : chaîne (valeur numérique) |
| <Object>.<nom de classe>.coverage | Mesure de couverture de solution estimée pour cette classe. Type de données : chaîne (valeur numérique) |
| <Object>.<nom de classe>.recall | Mesure de rappel de solution estimée pour cette classe. Type de données : chaîne (valeur numérique) |
L’exemple suivant montre comment obtenir les paramètres de prédiction d’une version de solution active.
var mlSolution = sn_ml.ClassificationSolutionStore.get('ml_incident_categorization');
gs.print(JSON.stringify(JSON.parse(mlSolution.getActiveVersion().getPredictionSettings()), null, 2));
Sortie :
{
"solutionSettings": {
"precision": "61.69",
"coverage": "66.75",
"recall": "57.54"
},
"classSettings": {
"Approvals": {
"precision": "100",
"coverage": "0",
"recall": "0"
},
"Authentication": {
"precision": "38.71",
"coverage": "98.44",
"recall": "56.25"
},
"Automation": {
"precision": "100",
"coverage": "0",
"recall": "0"
}, ...
ClassificationSolutionVersion : getProperties()
Obtient les propriétés de l’objet de solution et le numéro de version.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Objet | Contenu du jeu de données et détails de la version de ClassificationSolution . Les résultats varient selon la configuration des propriétés de l’objet. |
| <Object>.algorithmConfig | Méthode de codage de la solution. Type de données : objet |
| <Object>.algorithmConfig.algorithm | Nom de l’algorithme de codage pour la formation de cette solution. Valeurs possibles :
Type de données : chaîne |
| <Object>.algorithmConfig.targetClassRecall | Paramètre de rappel de classe pour orienter l’entraînement d’une solution afin de biaiser une classe spécifique. La valeur de rappel est un nombre compris entre 0 et 100 qui représente un pourcentage. Type de données : chaîne |
| <Object>.datasetProperties (en anglais seulement) | Répertorie les propriétés de l’objet DatasetDefinition() associé à la solution. Type de données : objet |
| <Object>.datasetProperties.tableName | Nom de la table pour l’ensemble de données. Par exemple, « tableName » : « Incident ». Type de données : chaîne |
| <Object>.datasetProperties.fieldNames | Liste des noms de champs de la table spécifiée en tant que chaînes. Par exemple, « fieldNames » : ["short_description », « priority"]. Type de données : tableau |
| <Object>.datasetProperties.fieldNames.fieldDetails | Liste des objets JavaScript qui spécifient les propriétés du champ. Type de données : tableau d’objets
|
| <Object>.datasetProperties.fieldNames.fieldDetails.<object>. nom | Nom du champ définissant le type d’informations auquel limiter cet ensemble de données. Type de données : chaîne |
| <Object>.datasetProperties.fieldDetails.<object>. type | Type de champ d’apprentissage machine. Type de données : chaîne |
| <Object>.datasetProperties.fieldDetails.encodedQuery | Chaîne de requête codée au format Glide standard. Reportez-vous à la section Chaînes de requêtes codées. Type de données : chaîne |
| <Object>.domainName | Nom du domaine associé à cet ensemble de données. Voir Séparation de domaine et Intelligence prédictive. Type de données : chaîne |
| <Object>.codeur | Objet encodeur affecté à cette solution. Reportez-vous à Encodeur - Encodeur (configuration d’objet). Type de données : objet |
| <Object>.groupByFieldName | Nom de champ par lequel le système regroupe les enregistrements pour créer des solutions de classification. Type de données : chaîne |
| <Object>.inputFieldNames | Liste des noms des champs d’entrée sous forme de chaînes. Le modèle utilise ces champs pour effectuer des prédictions. Type de données : chaîne |
| <Object>.isActive | Marqueur indiquant si cette version est active. Valeurs valides :
Type de données : chaîne |
| <Object>.étiquette | Identifie la tâche de prédiction. Type de données : chaîne |
| <Object>.nom | Nom affecté par le système. Type de données : chaîne |
| <Object>.predictedFieldName | Identifie un champ à former pour des raisons de prévisibilité. Type de données : chaîne |
| <Object>.processingLanguage | Traitement du langage au format de code de langue ISO 639-1 à deux lettres. Type de données : chaîne |
| <Object>.portée | Périmètre de l’objet. Actuellement, la seule valeur valide est global.Type de données : chaîne |
| <Object>.mots vides | Facultatif. Liste prédéfinie de chaînes que le système génère automatiquement en fonction du language paramètre de propriété. Pour plus d’informations, reportez-vous à la section Créer une liste de mots vides personnalisés. Type de données : tableau |
| <Object>.trainingFrequency | Fréquence de reformation du modèle. Valeurs possibles :
Type de données : chaîne |
| <Object>.numérodedeversion | Numéro de version du Objet ClassificationSolution. Type de données : chaîne |
L’exemple suivant récupère les propriétés de la version d’objet active dans le magasin.
// Get properties
var mlSolution = sn_ml.ClassificationSolutionStore.get('ml_incident_categorization');
gs.print(JSON.stringify(JSON.parse(mlSolution.getActiveVersion().getProperties()), null, 2));
Sortie :
*** Script: {
"datasetProperties": {
"encodedQuery": "activeANYTHING^EQ",
"fieldNames": [
"short_description",
"category"
],
"tableName": "incident"
},
"domainName": "global",
"inputFieldNames": [
"short_description"
],
"isActive": "true",
"label": "Incident Categorization_Trainer",
"name": "ml_incident_categorization",
"predictedFieldName": "category",
"processingLanguage": "en",
"stopwords": [
"Default English Stopwords"
],
"versionNumber": "1"
}
ClassificationSolutionVersion : getStatus(Boolean includeDetails)
Obtient l’état d’achèvement de la formation.
| Nom | Type | Description |
|---|---|---|
| includeDetails (en anglais seulement) | Booléen | Marqueur indiquant s’il faut renvoyer l’état details. Valeurs valides :
Valeur par défaut : false |
| Type | Description |
|---|---|
| Objet | Objet JavaScript contenant des informations sur l’état de la formation pour un objet ClassificationSolution . |
| <Object>.État | État d’achèvement de la formation. Si la tâche de formation atteint un état terminal, la tâche ne quitte pas cet état. Si l’état est final, la hasJobEnded propriété est définie sur true.Valeurs possibles :
Type de données : chaîne |
| <Object>.hasJobEnded | Marqueur indiquant si la formation est terminée. Valeurs valides :
Type de données : valeur booléenne sous forme de chaîne |
| <Object>.percentComplete | Pourcentage de formation terminée. Si le pourcentage d’achèvement est inférieur à 100, la tâche peut être dans un état terminal. Par exemple, si la formation expire. Type de données : Nombre sous forme de chaîne Plage : 0 à 100 |
| <Object>.Détails | Objet contenant une liste de détails de formation supplémentaires. Type de données : objet |
L’exemple suivant montre un résultat correct une formation terminée.
// Get status
var mlSolution = sn_ml.ClassificationSolutionStore.get('ml_incident_categorization');
gs.print(JSON.stringify(JSON.parse(mlSolution.getActiveVersion().getStatus(true), null, 2)));
Sortie :
{
"state":"solution_complete",
"percentComplete":"100",
"hasJobEnded":"true",
"details":{"stepLabel":"Solution Complete"} // This information is only returned if getStatus(true);
}
L’exemple suivant montre un résultat d’échec une fois la formation terminée.
// Get status
var solutionName = 'ml_x_snc_global_global_classification_solution';
var mlSolution = sn_ml.ClassificationSolutionStore.get(solutionName);
var trainingStatus = mlSolution.getLatestVersion().getStatus();
gs.print(JSON.stringify(JSON.parse(trainingStatus), null, 2));
Sortie :
{
"state":"solution_error",
"percentComplete":"100",
"hasJobEnded":"true"
}
ClassificationSolutionVersion : getTrainingStatistics()
Obtient toutes les statistiques de formation pour une solution donnée.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Objet | Objet JavaScript avec des statistiques pour chaque classe incluse dans la formation et des valeurs pour chaque classe qui a été exclue de la formation. Pour plus d’informations, consultez Composants de modèles prédictifs. |
| <Object>.includedClasses | Objet contenant les valeurs de précision, de couverture, de rappel et de distribution de chaque classe dans le modèle formé. Type de données : objet
|
| <Object>.includedClasses.<nom de classe>.distribution | Valeur de la distribution de probabilité de résultat pour cette classe. Type de données : chaîne |
| <Object>.includedClasses.<nom de classe>.statistics | Liste des objets fournissant des données statistiques de formation. Pour plus d’informations, consultez Configuration des mesures cibles. Type de données : tableau d’objets
|
| <Object>.classesincluses.<nom de classe>.statistiques.couverture | Mesure de couverture de solution estimée pour cette classe. Type de données : chaîne (valeur numérique) |
| <Object>.includedClasses.<nom de classe>.statistics.precision | Mesure de précision estimée de la solution pour cette classe. Type de données : chaîne (valeur numérique) |
| <Object>.includedClasses.<nom de classe>.statistiques.rappel | Mesure de rappel de solution estimée pour cette classe. Type de données : chaîne (valeur numérique) |
| <Object>.includedClasses.<nom de classe>.statistics.selected | Marqueur indiquant si cette classe contient des enregistrements inclus dans la formation à la solution. Valeurs valides :
Type de données : chaîne (valeur booléenne) Valeur par défaut : false |
| <Object>.excludedClasses | Répartition et nombre de lignes de toutes les classes exclues de la formation. Type de données : objet |
| <Object>.excludedClasses.<nom de classe>.distribution | Valeur de la distribution de probabilité de résultat pour cette classe. Type de données : chaîne |
| <Object>.excludedClasses.<nom de classe>.rowCount | Nombre de lignes exclues de la formation. Type de données : chaîne (valeur numérique) |
L’exemple suivant montre comment obtenir des statistiques de formation à partir de la solution active.
// Get training stats
var mlSolution = sn_ml.ClassificationSolutionStore.get('ml_incident_categorization');
gs.print(JSON.stringify(JSON.parse(mlSolution.getActiveVersion().getTrainingStatistics()), null, 2));
Sortie :
{
"includedClasses": {
"Approvals": {
"distribution": "0.43",
"statistics": [
{
"precision": "100",
"coverage": "0",
"recall": "0",
"selected": "true"
}
]
},
"Authentication": {
"distribution": "4.3",
"statistics": [
{
"precision": "39.33",
"coverage": "95.31",
"recall": "54.69",
"selected": "false"
},
{
"precision": "100",
"coverage": "0",
"recall": "0",
"selected": "false"
},
...
}
...
"excludedClasses": {
"ACE": {
"distribution": "0.11",
"rowCount": "9"
},
"AHA": {
"distribution": "0.01",
"rowCount": "1"
},
...
}
ClassificationSolutionVersion : getVersionNumber()
Obtient le numéro de version de un objet de solution.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | Numéro de version. |
L’exemple suivant montre comment obtenir un numéro de version.
// Get version number
var mlSolution = sn_ml.ClassificationSolutionStore.get('ml_incident_categorization');
gs.print("Version number: "+JSON.stringify(JSON.parse(mlSolution.getActiveVersion().getVersionNumber()), null, 2));
Sortie :
Version number: 1
ClassificationSolutionVersion : prédire (entrée de l’objet, options de l’objet)
Obtient les données d’entrée pour une prédiction.
| Nom | Type | Description |
|---|---|---|
| entrée | Objet | GlideRecord (en anglais seulement) ou tableau d’objets JSON contenant des noms de champs et des valeurs sous forme de paires clé-valeur. |
| options | Objet | Valeurs facultatives pour filtrer les résultats de prédiction. |
| options.apply_threshold | Booléen | Marqueur indiquant s’il faut vérifier la valeur de seuil de la solution et l’appliquer à l’ensemble de résultats. Valeurs valides :
Valeur par défaut : vrai |
| options.top_n | Numéro | Si elle est fournie, renvoie les meilleurs résultats, jusqu’au nombre spécifié de prédictions. |
| Type | Description |
|---|---|
| Objet | Objet JSON contenant les résultats de prédiction triés par sys_id ou par record_number. |
| <Object>.<identifier> | Liste d’objets avec les détails de chaque résultat de prédiction. Type de données : tableau d’objets
|
| <Object>.<identifiant>.<object>. confiance | Valeur de confiance associée à la prédiction. Par exemple, 53.84. Type de données : nombre |
| <Object>.<identifiant>.<object>. predictedSysId | sys_id de la valeur prévue. Les résultats peuvent provenir de n’importe quelle table sur laquelle des informations sont prévues. Type de données : chaîne |
| <Object>.<identifiant>.<object>. valeur prédictée | Valeur représentant le résultat de prédiction. Type de données : chaîne |
| <Object>.<identifiant>.<object>. seuil | Valeur du seuil configuré associé à la prédiction. Type de données : nombre |
L’exemple suivant montre comment afficher les résultats de prédiction pour une méthode predict() qui prend un GlideRecord par sys_id pour l’entrée et inclut des paramètres facultatifs pour se limiter aux trois premiers résultats et exclure la valeur de seuil.
var mlSolution = sn_ml.ClassificationSolutionStore.get('ml_incident_categorization');
// single GlideRecord input
var input = new GlideRecord("incident");
input.get("<sys_id>");
// configure optional parameters
var options = {};
options.top_n = 3;
options.apply_threshold = false;
var results = mlSolution.getVersion(1).predict(input, options);
// pretty print JSON results
gs.print(JSON.stringify(JSON.parse(results), null, 2));
Sortie :
{
"<sys_id/gr>": [
{
"confidence": 62.10782320780268,
"threshold": 20.36,
"predictedValue": "Clone Issues",
"predictedSysId": ""
},
{
"confidence": 6.945237375770391,
"threshold": 16.63,
"predictedValue": "Instance Administration",
"predictedSysId": ""
},
{
"confidence": 5.321061076300759,
"threshold": 23.7,
"predictedValue": "Administration",
"predictedSysId": ""
}
]
}
L’exemple suivant montre comment afficher les résultats de prédiction pour une méthode predict() qui prend un tableau de noms de champs comme paires clé-valeur pour l’entrée et inclut des paramètres facultatifs pour se limiter aux trois premiers résultats et exclure la valeur de seuil.
var mlSolution = sn_ml.ClassificationSolutionStore.get('ml_incident_categorization');
// key-value pairs input
var input = [{"short_description":"my email is not working"}, {short_description:"need help with password"}];
// configure optional parameters
var options = {};
options.top_n = 3;
options.apply_threshold = false;
var results = mlSolution.predict(input, options);
// pretty print JSON results
gs.print(JSON.stringify(JSON.parse(results), null, 2));
Sortie :
{
"1": [
{
"confidence": 37.5023032262591,
"threshold": 10.72,
"predictedValue": "Authentication",
"predictedSysId": ""
},
{
"confidence": 24.439964862166583,
"threshold": 23.7,
"predictedValue": "Administration",
"predictedSysId": ""
},
{
"confidence": 11.736320486031047,
"threshold": 100,
"predictedValue": "Security",
"predictedSysId": ""
}
],
"2": [
{
"confidence": 99,
"threshold": 17.77,
"predictedValue": "Email",
"predictedSysId": ""
},
{
"confidence": 3.182137005157543,
"threshold": 10.72,
"predictedValue": "Authentication",
"predictedSysId": ""
},
{
"confidence": 2.8773826570713514,
"threshold": -1,
"predictedValue": "Email (I/f)",
"predictedSysId": ""
}
]
}
ClassificationSolutionVersion : setPredictionSettings(options de l’objet)
Définit les valeurs de précision, de couverture ou de rappel au niveau de la solution ou de la classe.
| Nom | Type | Description |
|---|---|---|
| options | Objet | Valeurs de configuration des mesures. Pour plus d’informations sur ces fonctionnalités, reportez-vous à la section Configuration des mesures cibles. |
| options.metricName | Chaîne | Nom de la mesure à définir. Valeurs valides :
|
| options.metricValue | Chaîne | Valeur numérique à affecter à la mesure. |
| options.className | Chaîne | Facultatif. Nom de la classe à laquelle limiter les résultats. Utilisez la méthode getTrainingStatistics() pour récupérer une liste complète des classes d’une solution. |
| Type | Description |
|---|---|
| Aucun |
L’exemple suivant montre comment définir une mesure de précision sur 89,5 pour une classe nommée Clone Issues.
var mlSolution = sn_ml.ClassificationSolutionStore.get('ml_x_snc_global_global_classification');
var input = {"metricName" : "precision", "metricValue" : "89.5", "className" : "Clone Issues"};
mlSolution.getActiveVersion().setTrainingStatistics(input);