---
sourceDocument: Référence de l’API Xanadu
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/fr-FR/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - fr-FR

ft:publication_title :

    - Référence de l’API Xanadu

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# ClusteringSolution : global

# ClusteringSolution : global {#ariaid-title1}

* Rversion finale: Xanadu
* 
* Mis à jour 1 août 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 13 minutes de lecture

L'API ClusteringSolution est un objet pouvant contenir des scripts et pouvant être 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` .  
Le flux de configuration à la formation de la solution est le suivant :

1. Créez un jeu de données à l'aide de l'API [DatasetDefinition](https://servicenow-prod.fluidtopics.net/K6CGLMjqgee64K7U4Dl0gA#DatasetDefinitionAPI "L’API DatasetDefinition fournit des méthodes pour identifier un ensemble d’enregistrements comprenant un nom de table, des colonnes et des critères de sélection de ligne à utiliser comme entrée pour les algorithmes d’apprentissage ML. Les ensembles de données ne contiennent pas les données réelles.") .
2. Obligatoire si vous utilisez l'algorithme de clustering K-means. Créez un encodeur à l'aide de l'API [Encoder](https://servicenow-prod.fluidtopics.net/IHQ3JXNgC2Yj8ezioJC7_A#EncoderAPI "L’API Encoder fournit un objet pouvant contenir des scripts et pouvant être utilisé dans les Intelligence prédictive magasins. Cet objet convertit les données d’entrée en vecteurs de nombres, en fonction d’objectifs et de configurations spécifiques à l’encodeur. Les encodeurs peuvent être utilisés indépendamment pour exécuter des codages ou peuvent être configurés dans le cadre de solutions pour coder des colonnes de texte.") .
3. Utilisez le [constructeur](https://servicenow-prod.fluidtopics.net/wHqBPBqq2iHhZcdfJ55Glg#ClusteringSol-ClusteringSolution_O "Crée une solution de grappe.") pour créer un objet de solution de mise en grappe.
4. Ajoutez l'objet de solution au magasin de solutions de clustering à l'aide de la méthode [ClusteringSolutionStore - add().](https://servicenow-prod.fluidtopics.net/j48xxF8v_IbweQ0QjSGRjw#ClusteringStore-add_O "Ajoute un nouvel objet de solution au magasin et renvoie un nom unique.")
5. Formez la solution à l'aide de la méthode [submitTrainingJob().](https://servicenow-prod.fluidtopics.net/wHqBPBqq2iHhZcdfJ55Glg#ClusteringSol-submitTrainingJob "Soumet une tâche de formation.") Cela crée une version de l'objet que vous pouvez gérer à l'aide de l'API [ClusteringSolutionVersion](https://servicenow-prod.fluidtopics.net/tabxvhoTuHHr58KTPZnWPQ#ClusteringSolutionVersionAPI "L’API ClusteringSolutionVersion est un objet pouvant contenir des scripts et pouvant être utilisé dans les Intelligence prédictive magasins.") .
6. Obtenir des prédictions à l'aide de la méthode [ClusteringSolutionVersion -- predict().](https://servicenow-prod.fluidtopics.net/tabxvhoTuHHr58KTPZnWPQ#C-predict_O_O "Obtient les données d’entrée pour une prédiction.")

{#ClusteringSolutionAPI__ol_mmm_n1c_dmb}  
Remarque :  
Cette API s'exécute avec tous les privilèges. Pour restreindre l'accès des utilisateurs, incluez un mécanisme de contrôle d'accès dans le script.

Pour obtenir des instructions d'utilisation, consultez [Utilisation des API ML](https://www.servicenow.com/docs/access?context=using-ml-apis&version=xanadu&pubname=xanadu-intelligent-experiences&ft:locale=en-US).

## ClusteringSolution : ClusteringSolution(configuration d'objet) {#ariaid-title2}

Crée une solution de grappe.
{#ClusteringSol-ClusteringSolution_O__table_gm2_yt5_flb__entry__3}{#ClusteringSol-ClusteringSolution_O__cluster-dbscan-distanceM-vals}{#ClusteringSol-ClusteringSolution_O__cluster-dbscan-epsilon-desc}{#ClusteringSol-ClusteringSolution_O__cluster-dbscan-minNeighbs-desc}{#ClusteringSol-ClusteringSolution_O__cluster-kmeans-targetC-desc}{#ClusteringSol-ClusteringSolution_O__solution-obj-domainN-default}{#ClusteringSol-ClusteringSolution_O__solution-cluster-minrec-desc}{#ClusteringSol-ClusteringSolution_O__solution-obj-stop-desc}

| Nom | Type | Description |
|-|-|-|
| configuration | Objet | Objet JavaScript contenant les propriétés de configuration de la solution. { "algorithmConfig": {Object}, "clusterConcept": "String", "clusterConceptFieldNames": [Array], "dataset": {Object}, "domainName": "String", "encoder": {Object}, "groupByFieldName": "String", "groupUnclusteredRecords": Boolean, "inputFieldNames": [Array], "label": "String", "maxTimeWindowForUpdate" : Number, "minRecordsPerCluster" : Number, "minRowCount": "String", "processingLanguage": "String", "stopwords": [Array], "trainingFrequency": "String", "updateFrequency": "String" } |
| config.algorithmConfig | Objet | Requis sauf définition de la encoder propriété. Objet JavaScript contenant les propriétés de configuration de l'algorithme. Les paramètres de propriété varient en fonction de la valeur définie dans la algorithm propriété. 'algorithmConfig': { "algorithm": "String", // See algorithmConfig.algorithm setting description for property settings based on algorithm } |
| config.algorithmConfig.algorithm | Chaîne | Méthode d'encodage de votre solution. Valeurs valides : * dbscan -- Algorithme de clustering DBSCAN (Density-Based Spatial Clustering of Applications with Noise). Propriétés utilisées avec cet algorithme : * distanceMetric * epsilon * minimumNeighbours {#ClusteringSol-ClusteringSolution_O__ul_cfy_mkk_xlb} * hdbscan -- Algorithme de clustering HDBSCAN, Hierarchical Density Based Spatial Clustering of Applications with Noise (HDBSCAN). Propriétés utilisées avec cet algorithme : * minimumSamples {#ClusteringSol-ClusteringSolution_O__ul_o3n_zcw_wnb} * kmeans -- Algorithme de clustering K-means. Faire défaut. La targetCoverage propriété est utilisée avec cet algorithme. {#ClusteringSol-ClusteringSolution_O__ul_wtd_l2k_xlb} Certains utilisateurs préfèrent DBSCAN, car il ne vous oblige pas à spécifier le nombre de clusters dans les données avant la mise en grappe. Propriétés pour dbscan: 'algorithmConfig': { "algorithm": "dbscan", "distanceMetric": "String", "epsilon": Number, "minimumNeighbours": Number } Propriétés pour hdbscan: 'algorithmConfig': { "algorithm": "hdbscan", "minimumSamples": Number } Propriétés pour kmeans: 'algorithmConfig': { "algorithm": "kmeans", "targetCoverage": Number } |
| config.algorithmConfig.distanceMetric | Chaîne | Algorithme DBSCAN uniquement. Mesure de distance à analyser à la recherche d'objets de données similaires. Valeurs valides : levenshteinDistance |
| config.algorithmConfig.epsilon | Numéro | Algorithme DBSCAN uniquement. Valeur décimale comprise entre 0 et 1 représentant la taille du rayon de recherche du quartier. |
| config.algorithmConfig.minimumNeighbours | Numéro | Algorithme DBSCAN uniquement. Nombre minimal de voisins requis dans un point pour faire partie d'un cluster. Car levenshteinDistance la valeur doit être 1 afin qu'aucun point ne soit exclu du jeu de données. |
| config.algorithmConfig.minimumSamples | Numéro | Nombre minimal d'échantillons de données dans un voisinage requis pour déterminer si un point est un point central. Par défaut : Aucun |
| config.algorithmConfig.targetCoverage | Numéro | Algorithme K-means uniquement. Champ de centile pour filtrer les enregistrements moins similaires les uns aux autres. |
| config.clusterConcept | Chaîne | Facultatif. Type de concept. Un concept est un ensemble de mots classés par ordre décroissant de fréquence. Pour générer un concept de grappe basé sur TFIDF, définissez la valeur sur `tfidf`. Les types de concepts sont répertoriés dans la table Définitions de mise en grappe \[ml_capability_definition_clustering\]. Par défaut : concept de grappe basé sur la fréquence |
| config.clusterConceptFieldNames | Tableau | Facultatif. Liste des noms de champs de concept de grappe. Ces valeurs sont des colonnes externes pour la création d'un concept de grappe et ne sont pas utilisées pour la formation de solution de grappe. Si des colonnes externes sont fournies, elles ne sont utilisées que pour le concept de grappe et non pour la formation à la solution de mise en grappe. Les champs de concept des grappes sont répertoriés dans la table Définitions de mise en grappe \[ml_capability_definition_clustering\]. Par défaut : les colonnes de texte d'entrée génèrent le concept de grappe |
| config.dataset | Objet | [Nom de](https://servicenow-prod.fluidtopics.net/K6CGLMjqgee64K7U4Dl0gA#DatasetDefinitionAPI "L’API DatasetDefinition fournit des méthodes pour identifier un ensemble d’enregistrements comprenant un nom de table, des colonnes et des critères de sélection de ligne à utiliser comme entrée pour les algorithmes d’apprentissage ML. Les ensembles de données ne contiennent pas les données réelles.") l'objet DatasetDefinition. |
| config.domainName | Chaîne | Facultatif. Nom du domaine associé à cet ensemble de données. Voir [Séparation de domaine et Intelligence prédictive](https://www.servicenow.com/docs/access?context=domain-separation-predictive-intelligence&version=xanadu&pubname=xanadu-intelligent-experiences&ft:locale=en-US). Par défaut : domaine actuel, par exemple, `<< global` \>\>. |
| config.encoder | Objet | Obligatoire sauf si la algorithmConfig propriété est définie sur `<< levenshteinDistance >>.` Objet d'encodeur formé à affecter à cette solution. Reportez-vous à [Encodeur - Encodeur (configuration d'objet)](https://servicenow-prod.fluidtopics.net/IHQ3JXNgC2Yj8ezioJC7_A#Encoder-Encoder_O "Crée un encodeur."). |
| config.groupByFieldName | Chaîne | Facultatif. Nom de champ par lequel le système regroupe les enregistrements en une ou plusieurs grappes. Dans l'exemple de configuration suivant, le système regroupe chaque type dans une grappe individuelle, ce qui donne 10 grappes. * groupByFieldName la valeur est `<< catégorie >>` * [La valeur de DatasetDefinition](https://servicenow-prod.fluidtopics.net/K6CGLMjqgee64K7U4Dl0gA#DatasetDefinitionAPI "L’API DatasetDefinition fournit des méthodes pour identifier un ensemble d’enregistrements comprenant un nom de table, des colonnes et des critères de sélection de ligne à utiliser comme entrée pour les algorithmes d’apprentissage ML. Les ensembles de données ne contiennent pas les données réelles.") tableName est `<< incident >>` * La table Incident \[incident\] comporte 10 types de catégories {#ClusteringSol-ClusteringSolution_O__ul_bt4_y3h_dmb} |
| config.groupUnclusteredRecords | Booléen | Marqueur indiquant s'il faut regrouper des enregistrements non groupés dans les résultats. Valeurs valides : * vrai : regrouper les enregistrements non groupés séparément dans les résultats. * faux : ne pas regrouper les enregistrements non groupés dans les résultats. Les valeurs non groupées (-1) s'affichent avec le reste des résultats. {#ClusteringSol-ClusteringSolution_O__ul_ar4_blq_wnb} Valeur par défaut : false |
| config.inputFieldNames | Tableau | Liste des noms des champs d'entrée sous forme de chaînes. Le modèle utilise ces champs pour effectuer des prédictions. |
| config.label | Chaîne | Identifie la tâche de prédiction. |
| config.maxTimeWindowForUpdate | Numéro | Facultatif. Nombre de minutes précédant le point de mise à jour du modèle pour rechercher des enregistrements. Par exemple, si la valeur est 15, le système recherche uniquement les enregistrements créés au cours des 15 minutes précédentes. Par défaut, le système analyse tous les enregistrements. |
| config.minRecordsPerCluster | Numéro | Facultatif. Nombre minimum d'enregistrements à autoriser dans n'importe quelle grappe. La valeur doit être supérieure ou égale à 2. Valeur par défaut : 2 |
| config.minRowCount | Chaîne | Facultatif. Nombre minimum d'enregistrements requis dans l'ensemble de données pour la formation. Par défaut : 10 000 |
| config.processingLanguage | Chaîne | Traitement du langage au format de code de langue ISO 639-1 à deux lettres. |
| config.mots vides | Tableau | 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](https://www.servicenow.com/docs/access?context=create-custom-stopwords-list&version=xanadu&pubname=xanadu-intelligent-experiences&ft:locale=en-US). Par défaut : mots vides en anglais |
| 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 {#ClusteringSol-ClusteringSolution_O__ul_pmw_523_plb}Par défaut : run_once |
| config.updateFrequency |   | Fréquence à laquelle le modèle de la définition de la solution doit être reconstruit. Valeurs possibles : * do_not_update * every_1_day * every_1_hour * every_6_hours * every_12_hours * every_1_minute * every_15_minutes * every_30_minutes {#ClusteringSol-ClusteringSolution_O__ul_kjm_2jh_3mb}Par défaut : do_not_update |
[Tableau 1. Paramètres]

{#ClusteringSol-ClusteringSolution_O__table_gm2_yt5_flb}  
L'exemple suivant montre comment créer un objet et l'ajouter à la Magasin ClusteringSolution. L'exemple montre également comment soumettre l'objet pour la formation.

    try{
        var myData = new sn_ml.DatasetDefinition({
            'tableName' : 'incident',
            'fieldNames' : ['category', 'short_description', 'state', 'description'],
            'encodedQuery' : 'activeANYTHING'
        });

        // get a trained encoder from the store
        var myEncoder = sn_ml.EncoderStore.get('<encoder_name >');
            
        var mySolution = new sn_ml.ClusteringSolution({
            'label': "clustering solution",
            'dataset' : myData,
            'encoder' : myEncoder,
            'inputFieldNames':['short_description'],                
            'groupByFieldName' : 'category',        
            'algorithmConfig' : {
                'algorithm' : 'kmeans',
                'targetCoverage' : '90'
            }
        });
        
        // add solution
        var solutionName = sn_ml.ClusteringSolutionStore.add(mySolution);
        var solutionVersion = mySolution.submitTrainingJob();    
        var trainingStatus = solutionVersion.getStatus();
        gs.print(JSON.stringify(JSON.parse(trainingStatus), null, 2));
    ​
    } catch(ex){
        gs.print('Exception caught: '+ ex.getMessage());
    }

Sortie :

    {
      "state": "waiting_for_training",
      "percentComplete": "0",
      "hasJobEnded": "false"
    }

L'exemple suivant montre comment inclure le champ \<\< description \>\> en tant que champ de concept de grappe.

    var myIncidentData = new sn_ml.DatasetDefinition({
        'tableName' : 'incident',
        'fieldNames' : ['category', 'short_description', 'description'],
    });

    var encodersolutionName = sn_ml.EncoderStore.get('<encoder_name >');

    var mySolution = new sn_ml.ClusteringSolution({
    	'label': 'clustering_test',
    	'dataset': myIncidentData,
    	'inputFieldNames': ['short_description'],
    	'encoder': encodersolutionName,
    	'clusterConceptFieldNames': ['description']
    });

    var solutionNameFromStore = sn_ml.ClusteringSolutionStore.add(mySolution);
    var myClassifier = mySolution.submitTrainingJob(); 

## ClusteringSolution : cancelTrainingJob() {#ariaid-title3}

Annule une tâche pour Un objet de solution qui a été soumis pour une formation.
{#ClusteringSol-cancelTrainingJob__table_bpb_k3z_llb__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 2. Paramètres]

{#ClusteringSol-cancelTrainingJob__table_bpb_k3z_llb} {#ClusteringSol-cancelTrainingJob__table_cpb_k3z_llb__entry__2}

| Type | Description |
|-|-|
| Aucun |   |
[Tableau 3. Renvoie]

{#ClusteringSol-cancelTrainingJob__table_cpb_k3z_llb}  
L'exemple suivant montre comment annuler une tâche de formation existante.

    var mySolution = sn_ml.ClusteringSolutionStore.get('ml_sn_global_global_clustering');

    mySolution.cancelTrainingJob();

## ClusteringSolution : getActiveVersion() {#ariaid-title4}

Obtient l'actif Objet ClusteringSolutionVersion.
{#ClusteringSol-getActiveVersion__table_tvl_m3z_llb__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 4. Paramètres]

{#ClusteringSol-getActiveVersion__table_tvl_m3z_llb} {#ClusteringSol-getActiveVersion__table_uvl_m3z_llb__entry__2}

| Type | Description |
|-|-|
| Objet | [Objet ClusteringSolutionVersion](https://servicenow-prod.fluidtopics.net/tabxvhoTuHHr58KTPZnWPQ#ClusteringSolutionVersionAPI "L’API ClusteringSolutionVersion est un objet pouvant contenir des scripts et pouvant être utilisé dans les Intelligence prédictive magasins.") actif. |
[Tableau 5. Renvoie]

{#ClusteringSol-getActiveVersion__table_uvl_m3z_llb}  
L'exemple suivant montre comment obtenir une version active Solution de mise en grappe à partir du magasin et renvoyer son état de formation.

    var mlSolution = sn_ml.ClusteringSolutionStore.get('ml_x_snc_global_global_clustering');

    gs.print(JSON.stringify(JSON.parse(mlSolution.getActiveVersion().getStatus()), null, 2));

Sortie :

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

## ClusteringSolution : getAllVersions() {#ariaid-title5}

Obtient toutes les versions de une solution de mise en grappe.
{#ClusteringSol-getAllVersions__table_tvl_m3z_llb__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 6. Paramètres]

{#ClusteringSol-getAllVersions__table_tvl_m3z_llb} {#ClusteringSol-getAllVersions__table_uvl_m3z_llb__entry__2}

| Type | Description |
|-|-|
| Tableau | Versions existantes d'un objet de solution. Voir également [ClusteringSolutionVersion](https://servicenow-prod.fluidtopics.net/tabxvhoTuHHr58KTPZnWPQ#ClusteringSolutionVersionAPI "L’API ClusteringSolutionVersion est un objet pouvant contenir des scripts et pouvant être utilisé dans les Intelligence prédictive magasins.") API. |
[Tableau 7. Renvoie]

{#ClusteringSol-getAllVersions__table_uvl_m3z_llb}  
L'exemple suivant montre comment obtenir tous les objets de version de ClusteringSolution et y appeler les méthodes de version de solution getVersionNumber() et getStatus().

    var mlSolution = sn_ml.ClusteringSolutionStore.get('ml_x_snc_global_global_clustering');

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

## ClusteringSolution : getLatestVersion() {#ariaid-title6}

Obtient la dernière version de une solution.
{#ClusteringSol-getLatestVersion__table_tvl_m3z_llb__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 8. Paramètres]

{#ClusteringSol-getLatestVersion__table_tvl_m3z_llb} {#ClusteringSol-getLatestVersion__table_uvl_m3z_llb__entry__2}

| Type | Description |
|-|-|
| Objet | [ClusteringSolutionVersion](https://servicenow-prod.fluidtopics.net/tabxvhoTuHHr58KTPZnWPQ#ClusteringSolutionVersionAPI "L’API ClusteringSolutionVersion est un objet pouvant contenir des scripts et pouvant être utilisé dans les Intelligence prédictive magasins.") Objet correspondant à la dernière version de a [ClusteringSolution().](https://servicenow-prod.fluidtopics.net/wHqBPBqq2iHhZcdfJ55Glg#ClusteringSol-ClusteringSolution_O "Crée une solution de grappe.") |
[Tableau 9. Renvoie]

{#ClusteringSol-getLatestVersion__table_uvl_m3z_llb}  
L'exemple suivant montre comment obtenir la dernière version d'une solution et renvoyer son état de formation.{#ClusteringSol-getLatestVersion__mlsol-getLatestVersion-example}

    var mlSolution = sn_ml.ClusteringSolutionStore.get('ml_x_snc_global_global_clustering');

    gs.print(JSON.stringify(JSON.parse(mlSolution.getLatestVersion().getStatus()), null, 2));

Sortie :

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

## ClusteringSolution : getName() {#ariaid-title7}

Obtient le nom de l'objet à utiliser pour l'interaction avec le magasin.
{#ClusteringSol-getName__table_pps_43z_llb__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 10. Paramètres]

{#ClusteringSol-getName__table_pps_43z_llb} {#ClusteringSol-getName__table_qps_43z_llb__entry__2}

| Type | Description |
|-|-|
| Chaîne | Nom de l'objet de solution. |
[Tableau 11. Renvoie]

{#ClusteringSol-getName__table_qps_43z_llb}  
L'exemple suivant montre comment mettre à jour Solution de mise en grappe les informations du 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('clustering'));

    var myCluster = new sn_ml.ClusteringSolution({
       'label': "my clustering solution",
       'dataset' : myIncidentData,
       'inputFieldNames': eligibleFields['eligibleInputFieldNames'],
       'predictedFieldName': 'category'
    });

    // update solution
    sn_ml.ClusteringSolutionStore.update('ml_x_snc_global_global_clustering_solution', myCluster);

    // print solution name
    gs.print('Solution Name: '+myCluster.getName());

Sortie :

    Solution Name: ml_x_snc_global_global_clustering_solution

## ClusteringSolution : getProperties() {#ariaid-title8}

Obtient les propriétés de l'objet de solution.
{#ClusteringSol-getProperties__table_pps_43z_llb__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 12. Paramètres]

{#ClusteringSol-getProperties__table_pps_43z_llb} {#ClusteringSol-getProperties__table_qps_43z_llb__entry__2}{#ClusteringSol-getProperties__solution-obj-group-desc}

| Type | Description |
|-|-|
| Objet | Contenu des détails du jeu de données et de l'objet [ClusteringSolution()](https://servicenow-prod.fluidtopics.net/wHqBPBqq2iHhZcdfJ55Glg#ClusteringSol-ClusteringSolution_O "Crée une solution de grappe.") dans le [ClusteringSolutionStore](https://servicenow-prod.fluidtopics.net/j48xxF8v_IbweQ0QjSGRjw#ClusteringSolutionStoreAPI "Permet de stocker et de récupérer des solutions."). { "algorithmConfig": {Object}, "datasetProperties": {Object}, "domainName": "String", "encoder": {Object}, "groupByFieldName": "String", "inputFieldNames": [Array], "label": "String", "minRecordsPerCluster" : Number, "name": "String", "processingLanguage": "String", "scope": "String", "stopwords": [Array], "trainingFrequency": "String", "updateFrequency": "String" } |
| \<Object\>.algorithmConfig | Objet JavaScript contenant les propriétés de configuration de l'algorithme. Les résultats relatifs à la propriété varient en fonction de la valeur définie dans la algorithm propriété. 'algorithmConfig' : { "algorithm": "String", // See algorithmConfig.algorithm setting description for property settings based on algorithm } Type de données : Objet. |
| \<Object\>.algorithmConfig.algorithm | Méthode d'encodage de votre solution. Propriétés pour dbscan: 'algorithmConfig': { "algorithm": "dbscan", "distanceMetric": "String", "epsilon": Number, "minimumNeighbours": Number } Propriétés pour kmeans: 'algorithmConfig': { "algorithm": "kmeans", "targetCoverage": Number } Type de données : chaîne. |
| \<Object\>.algorithmConfig.distanceMetric | Algorithme DBSCAN uniquement. Mesure de distance à analyser à la recherche d'objets de données similaires. Type de données : chaîne. |
| \<Object\>.algorithmConfig.epsilon | Algorithme DBSCAN uniquement. Valeur décimale comprise entre 0 et 1 représentant la taille du rayon de recherche du quartier. Type de données : Nombre. |
| \<Object\>.algorithmConfig.minimumNeighbours | Algorithme DBSCAN uniquement. Nombre minimal de voisins requis dans un point pour faire partie d'un cluster. Car levenshteinDistance la valeur doit être 1 afin qu'aucun point ne soit exclu du jeu de données. Type de données : Nombre. |
| \<Object\>.algorithmConfig.targetCoverage | Algorithme K-means uniquement. Champ de centile pour filtrer les enregistrements moins similaires les uns aux autres. Type de données : Nombre. |
| \<Object\>.datasetProperties (en anglais seulement) | Répertorie les propriétés de l'objet [DatasetDefinition()](https://servicenow-prod.fluidtopics.net/K6CGLMjqgee64K7U4Dl0gA#DDef-DatasetDefinition_O "Crée une instance de la classe DatasetDefinition , vous permettant de définir un jeu de données par nom de table, champs et requête.") associé à la solution. { "encodedQuery": "String", "fieldDetails": [Array], "fieldNames": [Array], "tableName": "String" } 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. [ { "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 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](https://www.servicenow.com/docs/access?context=c_EncodedQueryStrings&version=xanadu&pubname=xanadu-platform-user-interface&ft:locale=en-US). 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](https://www.servicenow.com/docs/access?context=domain-separation-predictive-intelligence&version=xanadu&pubname=xanadu-intelligent-experiences&ft:locale=en-US). Type de données : chaîne. |
| \<Object\>.encoderProperties | Objet encodeur affecté à cette solution. Reportez-vous à [Encodeur - Encodeur (configuration d'objet)](https://servicenow-prod.fluidtopics.net/IHQ3JXNgC2Yj8ezioJC7_A#Encoder-Encoder_O "Crée un encodeur."). Type de données : Objet. |
| \<Object\>.groupByFieldName | Nom de champ par lequel le système regroupe les enregistrements en une ou plusieurs grappes. 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\>.étiquette | Identifie la tâche de prédiction. { "label": "my first prediction" } Type de données : chaîne. |
| \<Object\>.minRecordsPerCluster | Nombre minimum d'enregistrements à autoriser dans n'importe quelle grappe. Type de données : Nombre. |
| \<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](https://www.servicenow.com/docs/access?context=create-custom-stopwords-list&version=xanadu&pubname=xanadu-intelligent-experiences&ft:locale=en-US). 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 {#ClusteringSol-getProperties__ul_pmw_523_plb}Par défaut : run_once Type de données : chaîne. |
| \<Object\>.updateFrequency (en anglais seulement) | Fréquence à laquelle le modèle de la définition de la solution doit être reconstruit. Valeurs possibles : * do_not_update * every_1_day * every_1_hour * every_6_hours * every_12_hours * every_1_minute * every_15_minutes * every_30_minutes {#ClusteringSol-getProperties__ul_kjm_2jh_3mb}Par défaut : do_not_update Type de données : chaîne |
[Tableau 13. Renvoie]

{#ClusteringSol-getProperties__table_qps_43z_llb}  
L'exemple suivant obtient les propriétés d'un objet solutiondans le magasin.{#ClusteringSol-getProperties__mlsol-getProps-example-other2}

    var myCluster = new sn_ml.ClusteringSolutionStore.get("ml_x_snc_global_global_clustering_solution");

    gs.print(JSON.stringify(JSON.parse(myCluster.getProperties()), null, 2));

Sortie :

    *** Script: {
      "algorithmConfig": {
        "algorithm": "kmeans",
        "targetCoverage": "90"
      },
      "datasetProperties": {
        "tableName": "incident",
        "fieldNames": [
          "category",
          "short_description",
          "state",
          "description"
        ],
        "encodedQuery": "activeANYTHING"
      },
      "domainName": "global",
      "encoderProperties": {
        "datasetsProperties": [
          {
            "tableName": "incident",
            "fieldNames": [
              "assignment_group",
              "short_description",
              "description"
            ],
            "encodedQuery": "activeANYTHING"
          }
        ],
        "domainName": "global",
        "label": "my encoder definition",
        "name": "ml_x_snc_global_global_my_encoder_definition",
        "processingLanguage": "en",
        "scope": "global",
        "stopwords": [
          "Default English Stopwords"
        ],
        "trainingFrequency": "run_once"
      },
      "groupByFieldName": "category",
      "inputFieldNames": [
        "short_description"
      ],
      "label": "clustering solution",
      "minRecordsPerCluster": 2,
      "name": "ml_x_snc_global_global_clustering_solution",
      "processingLanguage": "en",
      "scope": "global",
      "stopwords": [
        "Default English Stopwords"
      ],
      "trainingFrequency": "run_once",
      "updateFrequency": "do_not_update"
    }}

## ClusteringSolution : getVersion (version de chaîne) {#ariaid-title9}

Obtient une solution par numéro de version fourni.
{#ClusteringSol-getVersion_S__table_pps_43z_llb__entry__3}{#ClusteringSol-getVersion_S__mlsol-gerversion-returns-other}

| Nom | Type | Description |
|-|-|-|
| version | Chaîne | Numéro de version existante d'une solution. |
[Tableau 14. Paramètres]

{#ClusteringSol-getVersion_S__table_pps_43z_llb} {#ClusteringSol-getVersion_S__table_qps_43z_llb__entry__2}

| Type | Description |
|-|-|
| Objet | Version spécifiée de l'objet [ClusteringSolution()](https://servicenow-prod.fluidtopics.net/wHqBPBqq2iHhZcdfJ55Glg#ClusteringSol-ClusteringSolution_O "Crée une solution de grappe.") sur lequel vous pouvez appeler les méthodes [d'API ClusteringSolutionVersion](https://servicenow-prod.fluidtopics.net/tabxvhoTuHHr58KTPZnWPQ#ClusteringSolutionVersionAPI "L’API ClusteringSolutionVersion est un objet pouvant contenir des scripts et pouvant être utilisé dans les Intelligence prédictive magasins.") . |
[Tableau 15. Renvoie]

{#ClusteringSol-getVersion_S__table_qps_43z_llb}  
L'exemple suivant montre comment obtenir l'état de formation d'une solution par numéro de version.{#ClusteringSol-getVersion_S__mlsol-gerversion-example-other}

    var mlSolution = sn_ml.ClusteringSolutionStore.get('ml_x_snc_global_global_clustering');

    gs.print(JSON.stringify(JSON.parse(mlSolution.getVersion('1').getStatus()), null, 2));

Sortie :

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

## ClusteringSolution : setActiveVersion(version de chaîne) {#ariaid-title10}

Active une version spécifiée d'une solution dans le magasin.
{#ClusteringSol-setActiveVersion_S__table_pps_43z_llb__entry__3}

| Nom | Type | Description |
|-|-|-|
| version | Chaîne | Nom de la version de l'objet [ClusteringSolution()](https://servicenow-prod.fluidtopics.net/wHqBPBqq2iHhZcdfJ55Glg#ClusteringSol-ClusteringSolution_O "Crée une solution de grappe.") à activer. L'activation de cette version désactive toutes les autres versions. |
[Tableau 16. Paramètres]

{#ClusteringSol-setActiveVersion_S__table_pps_43z_llb} {#ClusteringSol-setActiveVersion_S__table_qps_43z_llb__entry__2}

| Type | Description |
|-|-|
| Aucun |   |
[Tableau 17. Renvoie]

{#ClusteringSol-setActiveVersion_S__table_qps_43z_llb}  
L'exemple suivant montre comment activer une version de solution dans le Store.{#ClusteringSol-setActiveVersion_S__mlsol-setActive-example2}

    sn_ml.ClusteringSolution.setActiveVersion("ml_incident_categorization");

## ClusteringSolution : submitTrainingJob() {#ariaid-title11}

Soumet 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 [ClusteringSolutionStore - add(](https://servicenow-prod.fluidtopics.net/j48xxF8v_IbweQ0QjSGRjw#ClusteringStore-add_O "Ajoute un nouvel objet de solution au magasin et renvoie un nom unique.") ).
{#ClusteringSol-submitTrainingJob__table_xmd_33z_llb__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 18. Paramètres]

{#ClusteringSol-submitTrainingJob__table_xmd_33z_llb} {#ClusteringSol-submitTrainingJob__table_ymd_33z_llb__entry__2}

| Type | Description |
|-|-|
| Objet | [ClusteringSolutionVersion](https://servicenow-prod.fluidtopics.net/tabxvhoTuHHr58KTPZnWPQ#ClusteringSolutionVersionAPI "L’API ClusteringSolutionVersion est un objet pouvant contenir des scripts et pouvant être utilisé dans les Intelligence prédictive magasins.") Objet correspondant à l'objet d'entraînement [ClusteringSolution](https://servicenow-prod.fluidtopics.net/wHqBPBqq2iHhZcdfJ55Glg#ClusteringSol-ClusteringSolution_O "Crée une solution de grappe.") . |
[Tableau 19. Renvoie]

{#ClusteringSol-submitTrainingJob__table_ymd_33z_llb}  
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.{#ClusteringSol-submitTrainingJob__mlsol-submit-example-nonSol2}

    // Create a dataset 
    var myData = new sn_ml.DatasetDefinition({

      'tableName' : 'incident',
      'fieldNames' : ['assignment_group', 'short_description', 'description'],
      'encodedQuery' : 'activeANYTHING'

    });

    // get a trained encoder from the store
    var myEncoder = sn_ml.EncoderStore.get('ml_x_snc_global_global_encoder');

    // Create a solution 
    var mySolution = new sn_ml.ClusteringSolution({

      'label': "my solution definition",
      'dataset' : myData,
      'encoder' : myEncoder,
      '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.ClusteringSolutionStore.add(mySolution);

    // Train the solution - this is a long running job 
    var myClusterVersion = mySolution.submitTrainingJob();


