ClassificationSolution : global

  • Rversion finale: Yokohama
  • Mis à jour 30 janv. 2025
  • 9 minutes de lecture
  • L’API ClassificationSolution est un objet pouvant contenir des scripts utilisé dans Intelligence prédictive les 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 .

    Le flux de la configuration à la formation de la solution est le suivant :
    1. Créez un jeu de données à l’aide de l’API DatasetDefinition .
    2. Facultatif. Construisez un encodeur à l’aide de l’API Encoder .
    3. Utilisez le constructeur pour créer un objet de solution de classification.
    4. Ajoutez l’objet de solution au magasin de solutions de classification à l’aide de la méthode ClassificationSolutionStore - add( ).
    5. Former la solution à l’aide de la méthode submitTrainingJob( ). Cela crée une version de l’objet que vous pouvez gérer à l’aide de l’API ClassificationSolutionVersion .
    6. Obtenir des prédictions à l’aide de la méthode ClassificationSolutionVersion – predict( ).
    Remarque :
    Cette API s’exécute avec des privilèges complets avant la Washington DC version du correctif 7. Après cette version, accordez l’accès à l’aide des ACL. Pour en savoir plus, consultez Query ACLs.

    Pour connaître des directives d’utilisation, reportez-vous à la section Utilisation des API ML.

    ClassificationSolution : ClassificationSolution(Object config)

    Crée une solution de classification.

    Tableau 1. Paramètres
    Nom Type Description
    configuration Objet Objet JavaScript contenant les propriétés de configuration de solution.
    {
      "algorithmConfig": {Object},
      "dataset": {Object},
      "domainName": "String",
      "encoder": {Object},
      "groupByFieldName": "String", 
      "inputFieldNames": [Array],
      "label": "String",
      "minRowCount": "String",
      "predictedFieldName": "String",
      "processingLanguage": "String",
      "stopwords": [Array],
      "trainingFrequency": "String"
    }
    config.algorithmConfig Objet Objet JavaScript contenant des propriétés de configuration d’algorithme.
    'algorithmConfig' : {
      "algorithm": "String",
      "targetClassRecall": "String"
    }
    config.algorithmConfig.algorithm Chaîne Méthode de codage de votre solution.
    Valeurs possibles :
    • xgboost: encodage XGBoost pour optimiser l’entraînement.
    • logisticRegression: Méthode utilisant le modèle de régression logistique pour les cibles catégorielles telles que nominales ou ordinales.
    config.algorithmConfig.targetClassRecall Chaîne Applique un paramètre de rappel de classe pour orienter l’entraînement d’une solution afin de biaiser une classe spécifique. Le format est « <ClassName :RecallValue> » où la valeur de rappel est un nombre compris entre 0 et 100 représentant un pourcentage. Par exemple, pour définir et appliquer ce paramètre de solution avec une précision de 90 % pour tous les enregistrements que vous formez dans la classe E-mail, la valeur est définie sur « E-mail : 90 ».
    config.ensemble de données Objet Nom DatasetDefinition .
    nom.domaine config Chaîne Facultatif. Nom de domaine associé à cet ensemble de données. Voir Séparation de domaine et Intelligence prédictive.

    Par défaut : domaine actuel, par exemple, « global ».

    config.encoder Objet Facultatif. Objet d’encodeur formé à affecter à cette solution. Reportez-vous à Encodeur : encodeur (configuration objet).
    config.groupByFieldName Chaîne Facultatif. Nom de champ par lequel le système regroupe les enregistrements pour créer des solutions de classification. Pour plus d’informations sur l’utilisation, consultez Utilisation de Grouper par pour la classification.
    config.inputFieldNames Tableau Liste des noms de champs d’entrée sous forme de chaînes. Le modèle utilise ces champs utilisés pour faire des prédictions.
    config.étiquette Chaîne Identifie la tâche de prédiction.
    config.minRowCount Chaîne Facultatif. Nombre minimum d’enregistrements requis dans l’ensemble de données pour la formation.

    Par défaut : 10000

    config.predictedFieldName Chaîne Identifie un champ à former pour la prévisibilité.
    config.processingLanguage Chaîne Facultatif. Langue de traitement au format de code de langue ISO 639-1 à deux lettres.

    Par défaut : « en »

    config.mots vides Tableau Facultatif. Liste prédéfinie de chaînes que le système génère automatiquement en fonction du paramètre de language propriété. Pour en savoir plus, consultez Créer une liste de mots vides personnalisée.

    Par défaut : anglais Mots vides

    config.trainingFrequency Chaîne Fréquence de reformation du modèle.
    Valeurs possibles :
    • every_30_days
    • every_60_days
    • every_90_days
    • every_120_days
    • every_180_days
    • run_once
    Par défaut : run_once

    L’exemple suivant montre comment créer un objet et l’ajouter au ClassificationMagasin de solutions.

    var myData = new sn_ml.DatasetDefinition(
      { 
         'tableName' : 'incident', 
         'fieldNames' : ['category', 'short_description', 'priority'],
         'fieldDetails' : [
           {
             'name' : 'category',
             'type' : 'nominal'
           },
           {
             'name' : 'short_description',
             'type' : 'text'
           }], 
         'encodedQuery' : 'activeANYTHING'
      });
    
    var mySolution = new sn_ml.ClassificationSolution({
      'label': "my solution definition",
      'dataset' : myData,
      'predictedFieldName' : 'category',
      'inputFieldNames': ['short_description']
    });
    
    var myClassificationName = sn_ml.ClassificationSolutionStore.add(mySolution);

    ClassificationSolution : cancelTrainingJob()

    Annule une tâche pour Un objet de solution qui a été soumis à la formation.

    Tableau 2. Paramètres
    Nom Type Description
    Aucun
    Tableau 3. Renvoie
    Type Description
    Néant

    L’exemple suivant montre comment annuler une tâche de formation existante.

    var mySolution = sn_ml.ClassificationSolutionStore.get('ml_sn_global_global_classification');
    
    mySolution.cancelTrainingJob();

    ClassificationSolution : getActiveVersion()

    Obtient l’actif Objet ClassificationSolutionVersion.

    Tableau 4. Paramètres
    Nom Type Description
    Aucun
    Tableau 5. Renvoie
    Type Description
    Objet Objet ClassificationSolutionVersion actif.

    L’exemple suivant montre comment obtenir une version active Solution de classification à partir du magasin et renvoyer son état de formation.

    var mlSolution = sn_ml.ClassificationSolutionStore.get('ml_x_snc_global_global_classification');
    
    gs.print(JSON.stringify(JSON.parse(mlSolution.getActiveVersion().getStatus()), null, 2));

    Sortie :

    {
      "state": "solution_complete",
      "percentComplete": "100",
      "hasJobEnded": "true"
    }

    ClassificationSolution : getAllVersions()

    Obtient toutes les versions de une solution de classification.

    Tableau 6. Paramètres
    Nom Type Description
    Aucun
    Tableau 7. Renvoie
    Type Description
    Tableau Versions existantes d’un objet de solution. Voir aussi ClassificationSolutionVersion API.

    L’exemple suivant montre comment obtenir tous les objets de version ClassificationSolution et y appeler les méthodes de version de solution getVersionNumber() et getStatus().

    var mlSolution = sn_ml.ClassificationSolutionStore.get('ml_x_snc_global_global_classification');
    
    var mlSolutionVersions = mlSolution.getAllVersions();
    
    for (i = 0; i < mlSolutionVersions.length; i++) {
    gs.print("Version " + mlSolutionVersions[i].getVersionNumber() + " Status: " + mlSolutionVersions[i].getStatus() +"\n");
    };

    Sortie :

    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"}

    ClassificationSolution : getLatestVersion()

    Obtient la dernière version de une solution.

    Tableau 8. Paramètres
    Nom Type Description
    Aucun
    Tableau 9. Renvoie
    Type Description
    Objet ClassificationSolutionVersion Objet correspondant à la dernière version de a ClassificationSolution().

    L’exemple suivant montre comment obtenir la dernière version d’une solution et renvoyer son état de formation.

    var mlSolution = sn_ml.ClassificationSolutionStore.get('ml_x_snc_global_global_classification');
    
    gs.print(JSON.stringify(JSON.parse(mlSolution.getLatestVersion().getStatus()), null, 2));

    Sortie :

    {
      "state": "solution_complete",
      "percentComplete": "100",
      "hasJobEnded": "true"
    }

    ClassificationSolution : getName()

    Obtient le nom de l’objet à utiliser pour l’interaction avec le magasin.

    Tableau 10. Paramètres
    Nom Type Description
    Aucun
    Tableau 11. Renvoie
    Type Description
    Chaîne Nom de l’objet de la solution.

    L’exemple suivant montre comment mettre à jour Solution de classification informations d’un jeu de données et imprimer le nom de l’objet.

    // Update solution
    var myIncidentData = new sn_ml.DatasetDefinition({
       'tableName' : 'incident',
       'fieldNames' : ['category', 'short_description', 'priority'],
       'encodedQuery' : 'activeANYTHING'
    });
    
    var eligibleFields = JSON.parse(myIncidentData.getEligibleFields('classification'));
    
    var myClassification = new sn_ml.ClassificationSolution({
       'label': "my classification solution",
       'dataset' : myIncidentData,
       'inputFieldNames': eligibleFields['eligibleInputFieldNames'],
       'predictedFieldName': 'category'
    });
    
    // update solution
    sn_ml.ClassificationSolutionStore.update('ml_x_snc_global_global_my_solution_definition_4', myClassification);
    
    // print solution name
    gs.print('Solution Name: '+myClassification.getName());

    Sortie :

    Solution Name: ml_x_snc_global_global_my_solution_definition_4

    ClassificationSolution : getProperties()

    Obtient les propriétés de l’objet de solution.

    Tableau 12. Paramètres
    Nom Type Description
    Aucun
    Tableau 13. Renvoie
    Type Description
    Objet Contenu du jeu de données et détails de l’objet ClassificationSolution() dans ClassificationSolutionStore.
    {
      "algorithmConfig": {
        "algorithm": "String",
        "targetClassRecall": "String"
      },
      "datasetProperties": {Object},
      "domainName": "String",
      "encoder": {Object},
      "groupByFieldName": "String", 
      "inputFieldNames": [Array],
      "label": "String",
      "name": "String",
      "predictedFieldName": "String",
      "processingLanguage": "String",
      "scope": "String",
      "stopwords": [Array],
      "trainingFrequency": "String"
    }
    <Object>.config algorithme Méthode de codage de la solution.

    Type de données : objet.

    <Object>.algorithmConfig.algorithme Nom de l’algorithme de codage pour la formation de cette solution.
    Valeurs possibles :
    • xgboost: encodage XGBoost pour optimiser l’entraînement.
    • logisticRegression: Méthode utilisant le modèle de régression logistique pour les cibles catégorielles telles que nominales ou ordinales.

    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

    Répertorie les propriétés de l’objet DatasetDefinition() associé à la solution.

    {
      "encodedQuery": "String",
      "fieldDetails": [Array],
      "fieldNames": [Array],
      "tableName": "String"
    }

    Type de données : objet.

    <Object>.datasetProperties.tableName Nom de la table de 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 sous forme de 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 des champs.
    [
      {
        "name": "String",
        "type": "String"
      }
    ]

    Type de données : tableau.

    <Object>.datasetProperties.fieldNames.fieldDetails.<object>. nom Nom du champ définissant le type d’informations auquel restreindre 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. Voir Chaînes de requête codées.

    Type de données : chaîne.

    <Object>nom .domainName Nom de 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 d’encodeur affecté à cette solution. Reportez-vous à Encodeur : encodeur (configuration 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 de champs d’entrée sous forme de chaînes. Le modèle utilise ces champs utilisés pour faire des prédictions.

    Type de données : chaîne.

    <Object>.étiquette Identifie la tâche de prédiction.
    {
      "label": "my first prediction"
    }

    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 la prévisibilité.

    Type de données : chaîne.

    <Object>.processingLanguage Langue de traitement 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 paramètre de language propriété. Pour en savoir plus, consultez Créer une liste de mots vides personnalisée.

    Type de données : tableau.

    <Object>.trainingFrequency Fréquence de reformation du modèle.
    Valeurs possibles :
    • every_30_days
    • every_60_days
    • every_90_days
    • every_120_days
    • every_180_days
    • run_once
    Par défaut : run_once

    Type de données : chaîne.

    L’exemple suivant obtient les propriétés d’un objet de solution dans le magasin.

    var mySolution = sn_ml.ClassificationSolutionStore.get('ml_sn_global_global_classification_solution');
    
    gs.print(JSON.stringify(JSON.parse(mySolution.getProperties()), null, 2));
    Sortie :
    *** Script: {
      "datasetProperties": {
        "tableName": "incident",
        "fieldNames": [
          "category",
          "short_description",
          "priority",
          "assignment_group.name"
        ],
        "fieldDetails": [
          {
            "name": "category",
            "type": "nominal"
          },
          {
            "name": "short_description",
            "type": "text"
          }
        ]
      },
      "domainName": "global",
      "inputFieldNames": [
        "short_description"
      ],
      "label": "my solution definition",
      "name": "ml_x_snc_global_global_my_solution_definition_26",
      "predictedFieldName": "category",
      "processingLanguage": "en",
      "scope": "global",
      "stopwords": [
        "Default English Stopwords"
      ],
      "trainingFrequency": "run_once"
    }

    ClassificationSolution : getVersion(version de chaîne)

    Obtient une solution Par numéro de version fourni.

    Tableau 14. Paramètres
    Nom Type Description
    version Chaîne Numéro de version existante d’une solution.
    Tableau 15. Renvoie
    Type Description
    Objet Version spécifiée de l’objet ClassificationSolution() sur lequel vous pouvez appeler les méthodes d’API ClassificationSolutionVersion .

    L’exemple suivant montre comment obtenir l’état de formation d’une solution par numéro de version.

    var mlSolution = sn_ml.ClassificationSolutionStore.get('ml_x_snc_global_global_classification');
    
    gs.print(JSON.stringify(JSON.parse(mlSolution.getVersion('1').getStatus()), null, 2));

    Sortie :

    {
      "state": "solution_complete",
      "percentComplete": "100",
      "hasJobEnded": "true"
    }

    ClassificationSolution : setActiveVersion(version de chaîne)

    Active une version spécifiée d’une solution dans le magasin.

    Tableau 16. Paramètres
    Nom Type Description
    version Chaîne Nom de la version de l’objet ClassificationSolution() à activer.

    L’activation de cette version désactive toute autre version.

    Tableau 17. Renvoie
    Type Description
    Néant

    L’exemple suivant montre comment activer une version de solution dans le magasin.

    sn_ml.ClassificationSolution.setActiveVersion("ml_incident_categorization");

    ClassificationSolution : submitTrainingJob()

    Soumettez une tâche de formation.

    Remarque :
    Avant d’exécuter cette méthode, vous devez d’abord ajouter une solution au magasin à l’aide de la méthode ClassificationSolutionStore - add( ).
    Tableau 18. Paramètres
    Nom Type Description
    Aucun
    Tableau 19. Renvoie
    Type Description
    Objet ClassificationSolutionVersion Objet correspondant au cours de ClassificationSolution formation.

    L’exemple suivant montre comment créer un jeu de données, l’appliquer à une solution, ajouter la solution à un magasin et soumettre la tâche de formation.

    // Create a dataset 
    var myData = new sn_ml.DatasetDefinition({
    
      'tableName' : 'incident',
      'fieldNames' : ['assignment_group', 'short_description', 'description'],
      'encodedQuery' : 'activeANYTHING'
    
    });
    
    // Create a solution 
    var mySolution = new sn_ml.ClassificationSolution({
    
      'label': "my solution definition",
      'dataset' : myData,
      '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.ClassificationSolutionStore.add(mySolution);
    
    // Train the solution - this is a long running job 
    var myClassifierVersion = mySolution.submitTrainingJob();