ClusteringSolution – Global
Die ClusteringSolution API ist ein skriptfähiges Objekt, das in verwendet wird Predictive Intelligence Speichert.
Diese(s) API erfordert Predictive Intelligence Plugin (com.glide.platform_ml) und wird in bereitgestellt sn_ml Namespace.
- Erstellen Sie einen Datensatz mit Datendefinition API.
- Obligatorisch, wenn der K-Means-Clustering-Algorithmus verwendet wird. Erstellen Sie einen Encoder mit Encoder API.
- Verwenden Sie Konstruktor Dient zum Erstellen eines Clustering-Lösungsobjekts.
- Fügen Sie das Lösungsobjekt dem Clustering-Lösungsspeicher mit hinzu ClusteringSolutionStore – add() Methode.
- Trainieren Sie die Lösung mit SubmitTrainingJob() Methode. Dadurch wird eine Version des Objekts erstellt, das Sie mit verwalten können ClusteringSolutionVersion API.
- Rufen Sie Vorhersagen mit ab ClusteringSolutionVersion – Predict() Methode.
Nutzungsrichtlinien finden Sie unter Mit ML APIs .
ClusteringSolution: ClusteringSolution (Objektkonfiguration)
Erstellt eine Clusterlösung.
| Name | Typ | Beschreibung |
|---|---|---|
| Konfiguration | Objekt | JavaScript-Objekt mit Konfigurationseigenschaften von Lösung. |
| Config.algorithmKonfig | Objekt | Erforderlich, es sei denn, Sie legen fest encoderEigenschaft. JavaScript-Objekt mit Algorithmuskonfigurationseigenschaften.Eigenschaftseinstellungen variieren je nach Wert, der in festgelegt ist algorithmEigenschaft. |
| Config.algorithmConfig.algorithmus | Zeichenfolge | Methode zum Codieren Ihrer Lösung. Gültige Werte:
Einige Anwender bevorzugen DBSCAN, da Sie vor dem Clustering nicht die Anzahl der Cluster in den Daten angeben müssen. Eigenschaften für dbscan:
Eigenschaften für hdbscan:
Eigenschaften für kmeans: |
| Config.algorithmConfig.distanceMetric | Zeichenfolge | Nur DBSCAN-Algorithmus. Entfernungsmetrik zum Scannen nach ähnlichen Datenobjekten. Gültige Werte: levenshteinDistance |
| Config.algorithmConfig.epsilon | Anzahl | Nur DBSCAN-Algorithmus. Dezimalwert zwischen 0 und 1, der die Größe des Suchradius des Arbeitsbereichs darstellt. |
| Config.algorithmConfig.minimumNeighbours | Anzahl | Nur DBSCAN-Algorithmus. Mindestanzahl von Nachbarn, die in einem Punkt erforderlich sind, um Teil eines Clusters zu sein. Für levenshteinDistanceDer Wert muss 1 sein, damit keine Punkte aus dem Datensatz ausgeschlossen werden. |
| Config.algorithmConfig.minimumSamples | Anzahl | Mindestanzahl von Datenbeispielen in einem Arbeitsbereich, die erforderlich sind, um zu bestimmen, ob ein Punkt ein Kernpunkt ist. Standard: Keine |
| Config.algorithmConfig.targetCoverage | Anzahl | Nur K-Means-Algorithmus. Perzentilfeld zum Herausfiltern von Datensätzen, die einander weniger ähnlich sind. |
| Config.clusterConcept | Zeichenfolge | Optional. Konzepttyp. Ein Konzept ist eine Reihe von Wörtern, die in absteigender Reihenfolge der Häufigkeit aufgeführt sind. Um ein TFIDF-basiertes Clusterkonzept zu generieren, legen Sie den Wert auf fest Tfidf . Konzepttypen werden in der Tabelle „Clustering-Definitionen“ [ml_Capability_Definition_Clustering] aufgeführt. Standard: Häufigkeitsbasiertes Clusterkonzept |
| Config.clusterConceptFeldnamen | Array | Optional. Liste der Feldnamen des Clusterkonzepts. Diese Werte sind externe Spalten zum Erstellen eines Clusterkonzepts und werden nicht für das Training von Clusterlösungen verwendet. Wenn externe Spalten bereitgestellt werden, werden diese Spalten nur für das Clusterkonzept und nicht für das Clustering-Lösungstraining verwendet. Cluster-Konzeptfelder werden in der Tabelle „Clustering-Definitionen“ [ml_Capability_Definition_Clustering] aufgeführt. Standard: Eingabetextspalten generieren das Clusterkonzept |
| Config.Dataset | Objekt | Datendefinition Objektname. |
| Config.Domänenname | Zeichenfolge | Optional. Domänenname, der diesem Datensatz zugeordnet ist. Siehe Domänentrennung und Predictive Intelligence. Standard: Aktuelle Domäne, z. B. |
| Config.encoder | Objekt | Erforderlich, es sei denn, Sie legen fest algorithmConfigEigenschaft bis „LevenshteinDistance“ . Trainiertes Encoderobjekt, das dieser Lösung zugewiesen werden soll. Siehe Encoder – Encoder (Objektkonfiguration). |
| config.groupByFieldName | Zeichenfolge | Optional. Feldname, nach dem das System Datensätze in einem oder mehreren Clustern gruppiert. Im folgenden Setup-Beispiel gruppiert das System jeden Typ in einem einzelnen Cluster, wobei 10 Cluster gerendert werden.
|
| config.groupUnclusteredRecords | Boolean | Kennzeichnung, die angibt, ob nicht gruppierte Datensätze in Ergebnissen gruppiert werden sollen. Gültige Werte:
Standardwert: false |
| config.inputFieldNames | Array | Liste der Eingabefeldnamen als Zeichenfolgen. Das Modell verwendet diese Felder, um Vorhersagen zu treffen. |
| Config.label | Zeichenfolge | Gibt die Vorhersageaufgabe an. |
| Config.maxTimeWindowForUpdate | Anzahl | Optional. Anzahl der Minuten vor dem Modellaktualisierungspunkt, um nach Datensätzen zu suchen. Wenn der Wert beispielsweise 15 ist, sucht das System nur nach Datensätzen, die in den letzten 15 Minuten erstellt wurden. Standardmäßig scannt das System alle Datensätze. |
| Config.minRecordsPerCluster | Anzahl | Optional. Mindestanzahl von Datensätzen, die in einem Cluster zulässig sind. Der Wert muss größer oder gleich 2 sein. Standardwert: 2 |
| Config.minRowCount | Zeichenfolge | Optional. Mindestanzahl der Datensätze, die im Datensatz für das Training erforderlich sind. Standard: 10000 |
| config.processingLanguage | Zeichenfolge | Sprache wird im zweistelligen ISO 639-1-Sprachcodeformat verarbeitet. |
| Config.Stoppwörter | Array | Optional. Voreingestellte Liste von Zeichenfolgen, die das System automatisch basierend auf generiert languageEigenschaftseinstellung. Weitere Informationen finden Sie unter Erstellen Sie eine anwenderdefinierte Stoppwortliste . Standard: Englische Stoppwörter |
| Config.trainingHäufigkeit | Zeichenfolge | Die Häufigkeit, mit der das Modell neu trainiert werden soll.
Mögliche Werte:
|
| Config.updateHäufigkeit | Die Häufigkeit, mit der das Modell für die Lösungsdefinition neu erstellt werden muss.
Mögliche Werte:
|
Das folgende Beispiel zeigt, wie ein Objekt erstellt und dem hinzugefügt wird ClusteringSolution Store. Das Beispiel zeigt auch, wie das Objekt zum Training übermittelt wird.
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());
}
Ausgabe:
{
"state": "waiting_for_training",
"percentComplete": "0",
"hasJobEnded": "false"
}
Das folgende Beispiel zeigt, wie das Feld „Beschreibung“ als Clusterkonzeptfeld eingeschlossen wird.
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()
Bricht einen Auftrag für ab Ein Lösungsobjekt Das zum Training übermittelt wurde.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Keine |
Das folgende Beispiel zeigt, wie Sie einen vorhandenen Schulungsauftrag abbrechen.
var mySolution = sn_ml.ClusteringSolutionStore.get('ml_sn_global_global_clustering');
mySolution.cancelTrainingJob();
ClusteringSolution – getActiveVersion()
Ruft die aktiven ab ClusteringSolutionVersion-Objekt.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Objekt | Aktiv ClusteringSolutionVersion Objekt. |
Das folgende Beispiel zeigt, wie Sie einen aktiven erhalten ClusteringSolution Version aus dem Store und gibt den Schulungsstatus zurück.
var mlSolution = sn_ml.ClusteringSolutionStore.get('ml_x_snc_global_global_clustering');
gs.print(JSON.stringify(JSON.parse(mlSolution.getActiveVersion().getStatus()), null, 2));
Ausgabe:
{
"state": "solution_complete",
"percentComplete": "100",
"hasJobEnded": "true"
}
ClusteringSolution – getAllVersions()
Ruft alle Versionen von ab Eine Clustering-Lösung.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Array | Vorhandene Versionen eines Lösungsobjekts. Siehe auch ClusteringSolutionVersion API. |
Das folgende Beispiel zeigt, wie alle abgerufen werden ClusteringSolution Versionsobjekte und rufen Sie auf GetVersionNumber() Und GetStatus() Lösungsversionsmethoden darauf.
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");
};
Ausgabe:
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()
Ruft die neueste Version von ab Eine Lösung.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Objekt | ClusteringSolutionVersion Objekt, das der neuesten Version von entspricht A ClusteringSolution() . |
Das folgende Beispiel zeigt, wie Sie die neueste Version von abrufen Eine Lösung und gibt ihren Schulungsstatus zurück.
var mlSolution = sn_ml.ClusteringSolutionStore.get('ml_x_snc_global_global_clustering');
gs.print(JSON.stringify(JSON.parse(mlSolution.getLatestVersion().getStatus()), null, 2));
Ausgabe:
{
"state": "solution_complete",
"percentComplete": "100",
"hasJobEnded": "true"
}
ClusteringSolution – getName()
Ruft den Namen des Objekts ab, das für die Interaktion mit dem Store verwendet werden soll.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Zeichenfolge | Name des Lösungsobjekts. |
Das folgende Beispiel zeigt, wie aktualisiert wird ClusteringSolution Datensatzinformationen erstellen und den Namen des Objekts drucken.
// 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());
Ausgabe:
Solution Name: ml_x_snc_global_global_clustering_solution
ClusteringSolution – getProperties()
Ruft Lösungsobjekteigenschaften ab.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Objekt | Inhalt des Datensatzes und ClusteringSolution() Objektdetails in ClusteringSolutionStore . |
| <Object>.AlgorithmConfig | JavaScript-Objekt mit Algorithmuskonfigurationseigenschaften.Eigenschaftenergebnisse variieren je nach Wert, der in festgelegt ist algorithmEigenschaft.
Datentyp: Objekt. |
| <Object>.AlgorithmConfig.Algorithmus | Methode zum Codieren Ihrer Lösung. Eigenschaften für dbscan:
Eigenschaften für kmeans:
Datentyp: Zeichenfolge. |
| <Object>.AlgorithmConfig.distanceMetric | Nur DBSCAN-Algorithmus. Entfernungsmetrik zum Scannen nach ähnlichen Datenobjekten. Datentyp: Zeichenfolge. |
| <Object>.AlgorithmConfig.epsilon | Nur DBSCAN-Algorithmus. Dezimalwert zwischen 0 und 1, der die Größe des Suchradius des Arbeitsbereichs darstellt. Datentyp: Zahl. |
| <Object>.AlgorithmConfig.minimumNeighbours | Nur DBSCAN-Algorithmus. Mindestanzahl von Nachbarn, die in einem Punkt erforderlich sind, um Teil eines Clusters zu sein. Für levenshteinDistanceDer Wert muss 1 sein, damit keine Punkte aus dem Datensatz ausgeschlossen werden. Datentyp: Zahl. |
| <Object>.AlgorithmConfig.targetCoverage | Nur K-Means-Algorithmus. Perzentilfeld zum Herausfiltern von Datensätzen, die einander weniger ähnlich sind. Datentyp: Zahl. |
| <Object>.DatasetEigenschaften | Listet die Eigenschaften von auf Datendefinition() Objekt, das der Lösung zugeordnet ist.
Datentyp: Objekt. |
| <Object>.DatasetProperties.tableName | Name der Tabelle für den Datensatz. Beispiel: „Tabellenname“: „Incident“ . Datentyp: Zeichenfolge. |
| <Object>.DatenbasisEigenschaften.Feldnamen | Liste der Feldnamen aus der angegebenen Tabelle als Zeichenfolgen. Beispiel: „Feldnamen“: [„short_description“, „Priorität“] . Datentyp: Array. |
| <Object>.DatenbasisEigenschaften.Feldnamen.Felddetails | Liste der JavaScript-Objekte, die Feldeigenschaften angeben.
Datentyp: Array. |
| <Object>.DatenbasisEigenschaften.Feldnamen.Felddetails. <object>.Name | Name des Felds, das den Typ der Informationen definiert, auf die dieser Datensatz beschränkt werden soll. Datentyp: Zeichenfolge. |
| <Object>.DatenbasisEigenschaften.Felddetails. <object>.Typ | Feldtyp für maschinelles Lernen. Datentyp: Zeichenfolge. |
| <Object>.DatasetProperties.fieldDetails.encodedQuery | Codierte Abfragezeichenfolge im Standard-Glide-Format. Siehe Codierte Abfragezeichenfolgen . Datentyp: Zeichenfolge. |
| <Object>.Domänenname | Domänenname, der diesem Datensatz zugeordnet ist. Siehe Domänentrennung und Predictive Intelligence. Datentyp: Zeichenfolge. |
| <Object>.EncoderEigenschaften | Encoderobjekt, das dieser Lösung zugewiesen ist. Siehe Encoder – Encoder (Objektkonfiguration). Datentyp: Objekt. |
| <Object>.GroupByFieldName | Feldname, nach dem das System Datensätze in einem oder mehreren Clustern gruppiert. Datentyp: Zeichenfolge |
| <Object>.InputFieldNames | Liste der Eingabefeldnamen als Zeichenfolgen. Das Modell verwendet diese Felder, um Vorhersagen zu treffen. Datentyp: Zeichenfolge. |
| <Object>.Bezeichnung | Gibt die Vorhersageaufgabe an.
Datentyp: Zeichenfolge. |
| <Object>.MinRecordsPerCluster | Mindestanzahl von Datensätzen, die in einem Cluster zulässig sind. Datentyp: Zahl. |
| <Object>.Name | Vom System zugewiesener Name. Datentyp: Zeichenfolge. |
| <Object>.PredictedFieldName | Gibt ein Feld an, das zur Vorhersagbarkeit trainiert werden soll. Datentyp: Zeichenfolge. |
| <Object>.ProcessingLanguage | Sprache wird im zweistelligen ISO 639-1-Sprachcodeformat verarbeitet. Datentyp: Zeichenfolge. |
| <Object>.Umfang | Objektbereich. Derzeit ist der einzige gültige Wert Global .Datentyp: Zeichenfolge |
| <Object>.Stoppwörter | Optional. Voreingestellte Liste von Zeichenfolgen, die das System automatisch basierend auf generiert languageEigenschaftseinstellung. Weitere Informationen finden Sie unter Erstellen Sie eine anwenderdefinierte Stoppwortliste . Datentyp: Array. |
| <Object>.TrainingHäufigkeit | Die Häufigkeit, mit der das Modell neu trainiert werden soll. Mögliche Werte:
Datentyp: Zeichenfolge. |
| <Object>.UpdateHäufigkeit | Die Häufigkeit, mit der das Modell für die Lösungsdefinition neu erstellt werden muss. Mögliche Werte:
Datentyp: Zeichenfolge |
Das folgende Beispiel ruft Eigenschaften von ab Ein Lösungsobjekt Im Store.
var myCluster = new sn_ml.ClusteringSolutionStore.get("ml_x_snc_global_global_clustering_solution");
gs.print(JSON.stringify(JSON.parse(myCluster.getProperties()), null, 2));
*** 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(Zeichenfolgenversion)
Ruft eine Lösung ab Nach angegebener Versionsnummer.
| Name | Typ | Beschreibung |
|---|---|---|
| Version | Zeichenfolge | Vorhandene Versionsnummer von Eine Lösung. |
| Typ | Beschreibung |
|---|---|
| Objekt | Angegebene Version von ClusteringSolution() Objekt, mit dem Sie anrufen können ClusteringSolutionVersion API-Methoden. |
Das folgende Beispiel zeigt, wie der Schulungsstatus von abgerufen wird Eine Lösung nach Versionsnummer.
var mlSolution = sn_ml.ClusteringSolutionStore.get('ml_x_snc_global_global_clustering');
gs.print(JSON.stringify(JSON.parse(mlSolution.getVersion('1').getStatus()), null, 2));
Ausgabe:
{
"state": "solution_complete",
"percentComplete": "100",
"hasJobEnded": "true"
}
ClusteringSolution – setActiveVersion(Zeichenfolgenversion)
Aktiviert eine angegebene Version einer Lösung im Store.
| Name | Typ | Beschreibung |
|---|---|---|
| Version | Zeichenfolge | Name des ClusteringSolution() Zu aktivierende Objektversion. Durch Aktivieren dieser Version wird jede andere Version deaktiviert. |
| Typ | Beschreibung |
|---|---|
| Keine |
Das folgende Beispiel zeigt, wie Sie aktivieren Eine Lösung Version im Store.
sn_ml.ClusteringSolution.setActiveVersion("ml_incident_categorization");
ClusteringSolution – submitTrainingJob()
Übermittelt einen Schulungsauftrag.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Objekt | ClusteringSolutionVersion Objekt, das dem entspricht ClusteringSolution Wird trainiert. |
Das folgende Beispiel zeigt, wie Sie einen Datensatz erstellen und auf anwenden Eine Lösung, fügen Sie die Lösung hinzu An einen Store und übermitteln Sie den Schulungsauftrag.
// 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();