Clustering-Lösung : global
Die ClusteringSolution -API ist ein skriptfähiges Objekt, das in den Filialen Predictive Intelligence verwendet wird.
Diese(s) Die API erfordert das Plugin Predictive Intelligence (com.glide.platform_ml) und wird im Namespace sn_ml bereitgestellt.
- Erstellen Sie einen Datensatz mit der DatasetDefinition -API.
- Obligatorisch, wenn der K-Means-Clustering-Algorithmus verwendet wird. Erstellen Sie einen Encoder mit der Encoder -API.
- Verwenden Sie den Konstruktor, um ein Lösungsobjekt für Clustering zu erstellen.
- Fügen Sie das Lösungsobjekt dem Clustering-Lösungsspeicher hinzu, indem Sie die Methode ClusteringSolutionStore - add() verwenden.
- Trainieren Sie die Lösung mit der Methode „submitTrainingJob()“. Dadurch wird eine Version des Objekts erstellt, die Sie mit der ClusteringSolutionVersion -API verwalten können.
- Vorhersagen mit der Methode „ClusteringSolutionVersion –predict()“ abrufen.
Richtlinien zur Verwendung finden Sie unter ML-APIs verwenden.
ClusteringLösung: ClusteringLösung (Objektkonfiguration)
Erstellt eine Clusterlösung.
| Name | Typ | Beschreibung |
|---|---|---|
| Konfiguration | Objekt | JavaScript-Objekt mit Konfigurationseigenschaften für Lösung. |
| config.algorithmConfig | Objekt | Erforderlich, es sei denn, die Eigenschaft encoder wird festgelegt. Die Einstellungen fürJavaScript-Objekt, das Algorithmuskonfigurationseigenschaften enthält. die -Eigenschaft variieren je nach dem in der Eigenschaft algorithm festgelegten Wert. |
| config.algorithmConfig.algorithm | Zeichenfolge | Methode zur Codierung Ihrer Lösung. Gültige Werte:
Einige Anwender bevorzugen DBScan, da Sie die Anzahl der Cluster in den Daten vor dem Clustering nicht angeben müssen. Eigenschaften für dbscan:
Eigenschaften für hdbscan:
Eigenschaften für kmeans: |
| config.algorithmKonfiguration.distanzmetrik | Zeichenfolge | Nur DB-Scan-Algorithmus Abstandsmetrik für die Suche nach ähnlichen Datenobjekten. Gültige Werte: levenshteinDistance |
| config.algorithmConfig.emissions | Nummer | Nur DB-Scan-Algorithmus Dezimalwert zwischen 0 und 1, der die Größe des Arbeitsbereichs-Suchradius darstellt. |
| config.algorithmConfig.minimumNachbarn | Nummer | Nur DB-Scan-Algorithmus Mindestanzahl von Nachbarpunkten, die in einem Punkt erforderlich sind, um Teil eines Clusters zu sein. Für levenshteinDistance muss der Wert 1 sein, damit keine Punkte aus dem Datensatz ausgeschlossen werden. |
| config.algorithmConfig.minimumSamples | Nummer | Mindestanzahl von Datenmustern in einer Umgebung, die erforderlich ist, um zu bestimmen, ob ein Punkt ein Kernpunkt ist. Standard: Keine |
| config.algorithmConfig.targetCoverage | Nummer | 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 aufgelistet sind. Um ein TFIDF-basiertes Clusterkonzept zu generieren, legen Sie den Wert auf tfidffest. Die Konzepttypen sind in der Tabelle mit den Clustering-Definitionen [ml_capability_definition_clustering] aufgeführt. Standard: Frequenzbasiertes Clusterkonzept |
| config.clusterConceptFieldNames | Array | Optional. Liste der Feldnamen für Clusterkonzepte. Diese Werte sind externe Spalten zum Erstellen eines Clusterkonzepts und werden nicht für das Training der Clusterlösung verwendet. Wenn externe Spalten angegeben werden, werden diese Spalten nur für das Clusterkonzept und nicht für das Training der Clusterlösung verwendet. Clusterkonzeptfelder sind in der Tabelle „Clustering-Definitionen“ [ml_capability_definition_clustering] aufgeführt. Standard: Eingabetextspalten generieren das Clusterkonzept |
| config.dataset | Objekt | DatasetDefinition- Objektname. |
| config.domainName | Zeichenfolge | Optional. Domänenname, der diesem Datensatz zugeordnet ist. Siehe Domain Separation und Predictive Intelligence. Standard: Aktuelle Domäne, z. B. |
| config.encoder | Objekt | Erforderlich, es sei denn, die Eigenschaft algorithmConfig wird auf „levenshteinDistance“festgelegt. Trainiertes Encoder-Objekt, das dieser Lösung zugewiesen werden soll. Siehe Encoder: Encoder (Objektkonfiguration). |
| config.groupByFieldName | Zeichenfolge | Optional. Feldname, nach dem das System Datensätze in einen oder mehrere Cluster gruppiert. Im folgenden Setup-Beispiel gruppiert das System jeden Typ in einem einzelnen Cluster, sodass 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 | Nummer | Optional. Anzahl der Minuten für die Suche nach Datensätzen vor dem Modellaktualisierungspunkt. 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.minDatensätzeProCluster | Nummer | Optional. Mindestanzahl von Datensätzen, die in einem Cluster zulässig sind. Der Wert muss größer als oder gleich 2 sein. Standardwert: 2 |
| config.minRowCount | Zeichenfolge | Optional. Mindestanzahl von Datensätzen, die im Datensatz für das Training erforderlich sind. Standard: 10000 |
| config.processingLanguage | Zeichenfolge | Verarbeitungssprache im zweibuchstabigen ISO 639-1-Sprachcodeformat. |
| config.stoppwords | Array | Optional. Voreingestellte Liste von Zeichenfolgen, die das System basierend auf der Einstellung der Eigenschaft language automatisch generiert. Einzelheiten hierzu finden Sie unter Anwenderdefinierte Stoppwortliste erstellen. Standard: Englische Stoppwörter |
| config.trainingFrequency | Zeichenfolge | Die Häufigkeit, mit der das Modell neu trainiert werden soll.
Mögliche Werte:
|
| config.updateFrequency | Die Häufigkeit, mit der das Modell für die Lösungsdefinition neu erstellt werden muss.
Mögliche Werte:
|
Das folgende Beispiel zeigt, wie Sie ein Objekt erstellen und zu hinzufügen ClusteringLösungsspeicher. Das Beispiel zeigt auch, wie das Objekt zum Trainieren gesendet 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 einbezogen 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();
ClusteringLösung – cancelTrainingJob()
Storniert einen Auftrag für ein Lösungsobjekt , das zum Trainieren übermittelt wurde.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Keine |
Das folgende Beispiel zeigt, wie Sie einen vorhandenen Trainingsauftrag abbrechen.
var mySolution = sn_ml.ClusteringSolutionStore.get('ml_sn_global_global_clustering');
mySolution.cancelTrainingJob();
ClusteringLösung – getActiveVersion()
Ruft das aktive ab ClusteringSolutionVersion-Objekt.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Objekt | Aktives ClusteringSolutionVersion- Objekt. |
Das folgende Beispiel zeigt, wie Sie eine aktive ClusteringLösung Version aus dem Store abrufen und ihren Schulungsstatus zurückgeben.
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"
}
ClusteringLösung – getAllVersions()
Ruft alle Versionen von ab Eine Clustering-Lösung.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Array | Vorhandene Versionen eines Lösungsobjekts. Siehe auch ClusteringLösungsVersion -API. |
Das folgende Beispiel zeigt, wie Sie alle ClusteringSolution- Versionsobjekte abrufen und die Lösungsversionsmethoden getVersionNumber() und getStatus() dafür aufrufen.
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"}
ClusteringLösung – getLatestVersion()
Ruft die aktuelle Version von ab eine Lösung.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Objekt | ClusteringLösungVersion Objekt, das der aktuellen Version von entspricht einer ClusteringLösung(). |
Das folgende Beispiel zeigt, wie Sie die aktuelle Version einer Lösung abrufen und ihren Trainingsstatus zurückgeben.
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"
}
ClusteringLösung – 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. |
aktualisiert ClusteringLösung Datensatzinformationen
// 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 der Details des Datensatzes und des ClusteringSolution() -Objekts im ClusteringSolutionStore. |
| <Object>.Algorithmuskonfiguration | Die Ergebnisse der EigenschaftJavaScript-Objekt, das Algorithmuskonfigurationseigenschaften enthält. variieren je nach dem in der Eigenschaft algorithm festgelegten Wert.
Datentyp: Objekt. |
| <Object>.algorithmKonfiguration.algorithm | Methode zur Codierung Ihrer Lösung. Eigenschaften für dbscan:
Eigenschaften für kmeans:
Datentyp: Zeichenfolge. |
| <Object>.algorithmConfig.distanceMetric | Nur DB-Scan-Algorithmus Abstandsmetrik für die Suche nach ähnlichen Datenobjekten. Datentyp: Zeichenfolge. |
| <Object>.algorithmConfig.emissions | Nur DB-Scan-Algorithmus Dezimalwert zwischen 0 und 1, der die Größe des Arbeitsbereichs-Suchradius darstellt. Datentyp: Zahl. |
| <Object>.algorithmConfig.minimumNachbarn | Nur DB-Scan-Algorithmus Mindestanzahl von Nachbarpunkten, die in einem Punkt erforderlich sind, um Teil eines Clusters zu sein. Für levenshteinDistance muss der Wert 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>.datasetProperties | Listet die Eigenschaften des DatasetDefinition()- Objekts auf, das der Lösung zugeordnet ist.
Datentyp: Objekt. |
| <Object>.datensatzEigenschaften.tabellenname | Name der Tabelle für den Datensatz. Beispiel: „tableName“ : „Incident“. Datentyp: Zeichenfolge. |
| <Object>.datasetProperties.fieldNames | Liste der Feldnamen aus der angegebenen Tabelle als Zeichenfolgen. Beispiel: „fieldNames“ : ["short_description", "priority"]. Datentyp: Array. |
| <Object>.datasetProperties.fieldNames.fieldDetails | Liste von JavaScript-Objekten, die Feldeigenschaften angeben.
Datentyp: Array. |
| <Object>.datasetProperties.fieldNames.fieldDetails.<object>.name | Name des Felds, das die Art der Informationen definiert, auf die dieser Datensatz beschränkt werden soll Datentyp: Zeichenfolge. |
| <Object>.datasetProperties.fieldDetails.<object>.type | 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 Domain Separation und Predictive Intelligence. Datentyp: Zeichenfolge. |
| <Object>.encoderEigenschaften | Encoder-Objekt, das dieser Lösung zugewiesen ist. Siehe Encoder: Encoder (Objektkonfiguration). Datentyp: Objekt. |
| <Object>.groupByFieldName | Feldname, nach dem das System Datensätze in einen oder mehrere Cluster gruppiert. Datentyp: Zeichenfolge |
| <Object>.eingabeFeldNamen | Liste der Eingabefeldnamen als Zeichenfolgen. Das Modell verwendet diese Felder, um Vorhersagen zu treffen. Datentyp: Zeichenfolge. |
| <Object>.label | Gibt die Vorhersageaufgabe an.
Datentyp: Zeichenfolge. |
| <Object>.minDatensätzeProCluster | 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 für die Vorhersagbarkeit trainiert werden soll. Datentyp: Zeichenfolge. |
| <Object>.processingLanguage | Verarbeitungssprache im zweibuchstabigen ISO 639-1-Sprachcodeformat. Datentyp: Zeichenfolge. |
| <Object>.scope | Objektbereich. Derzeit ist globalder einzige gültige Wert.Datentyp: Zeichenfolge |
| <Object>.Stoppwörter | Optional. Voreingestellte Liste von Zeichenfolgen, die das System basierend auf der Einstellung der Eigenschaft language automatisch generiert. Einzelheiten hierzu finden Sie unter Anwenderdefinierte Stoppwortliste erstellen. Datentyp: Array. |
| <Object>.trainingFrequency | Die Häufigkeit, mit der das Modell neu trainiert werden soll. Mögliche Werte:
Datentyp: Zeichenfolge. |
| <Object>.updateFrequency | Die Häufigkeit, mit der das Modell für die Lösungsdefinition neu erstellt werden muss. Mögliche Werte:
Datentyp: Zeichenfolge |
Im folgenden Beispiel werden Eigenschaften eines -Lösungsobjekts im Store abgerufen.
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"
}}ClusteringLösung – getVersion(Zeichenfolgeversion)
Ruft eine Lösung ab anhand der angegebenen Versionsnummer.
| Name | Typ | Beschreibung |
|---|---|---|
| Version | Zeichenfolge | Vorhandene Versionsnummer einer Lösung. |
| Typ | Beschreibung |
|---|---|
| Objekt | Angegebene Version des ClusteringSolution()- Objekts, für das Sie die ClusteringSolutionVersion -API-Methoden aufrufen können. |
Das folgende Beispiel zeigt, wie Sie den Trainingsstatus einer Lösung anhand der Versionsnummer abrufen.
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(String version)
Aktiviert eine angegebene Version einer Lösung im Store.
| Name | Typ | Beschreibung |
|---|---|---|
| Version | Zeichenfolge | Name der zu aktivierenden ClusteringSolution() -Objektversion. Durch die Aktivierung dieser Version werden alle anderen Versionen deaktiviert. |
| Typ | Beschreibung |
|---|---|
| Keine |
Das folgende Beispiel zeigt, wie Sie eine Lösungsversion im Store aktivieren.
sn_ml.ClusteringSolution.setActiveVersion("ml_incident_categorization");
ClusteringLösung –submitTrainingJob()
Übermittelt einen Trainingsauftrag.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Objekt | ClusteringLösungVersions- entspricht ClusteringLösung trainierten |
Das folgende Beispiel zeigt, wie Sie einen Datensatz erstellen, auf eine Lösung anwenden, die Lösung einem Store hinzufügen und den Trainingsauftrag übermitteln.
// 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();