ClusteringSolution – Global
Die ClusteringSolution- API ist ein skriptfähiges Objekt, das in Predictive Intelligence -Speichern verwendet wird.
Diese(s) Die API erfordert das Plugin Predictive Intelligence (com.glide.platform_ml) und wird im sn_ml- Namespace 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 Clustering-Lösungsobjekt zu erstellen.
- Fügen Sie das Lösungsobjekt dem Clustering-Lösungsspeicher mit der Methode ClusteringSolutionStore – add() hinzu.
- 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.
- Rufen Sie Vorhersagen mit der Methode „ ClusteringSolutionVersion – prediction() “ ab.
Richtlinien zur Verwendung finden Sie unter ML-APIsverwenden.
ClusteringSolution – ClusteringSolution(Object config)
Erstellt eine Clusterlösung.
| Name | Typ | Beschreibung |
|---|---|---|
| Konfiguration | Objekt | JavaScript-Objekt, das Konfigurationseigenschaften des enthält Lösung. |
| config.algorithmConfig | Objekt | Erforderlich, es sei denn, die Eigenschaft encoder wird festgelegt. Die Einstellungen der EigenschaftJavaScript-Objekt, das Eigenschaften der Algorithmuskonfiguration enthält. variieren je nach dem Wert, der in der Eigenschaft algorithm festgelegt ist. |
| config.algorithmConfig.algorithm | Zeichenfolge | Methode zum Codieren Ihrer Lösung. Gültige Werte:
Einige Benutzer 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.algorithmConfig.distanceMetric | Zeichenfolge | Nur DBSCAN-Algorithmus. Abstandsmetrik zum Scannen nach ähnlichen Datenobjekten. Gültige Werte: levenshteinDistance |
| config.algorithmConfig.epslon | Nummer | Nur DBSCAN-Algorithmus. Dezimalwert zwischen 0 und 1, der die Größe des Suchradius für Arbeitsbereiche angibt. |
| config.algorithmConfig.minimumNachbarn | Nummer | Nur DBSCAN-Algorithmus. Mindestanzahl von Nachbarn, die in einem Punkt erforderlich ist, 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 Datenstichproben 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. Perzentilenfeld 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 tfidf fest. Konzepttypen werden in der Tabelle „Clustering-Definitionen“ [ml_capability_definition_clustering] aufgelistet. Standard: Frequenzbasiertes Clusterkonzept |
| config.clusterConceptFieldNames | Array | Optional. Liste der Feldnamen des Clusterkonzepts. Diese Werte sind externe Spalten zum Erstellen eines Clusterkonzepts und werden nicht für das Training der Clusterlösung verwendet. Wenn externe Spalten bereitgestellt werden, werden diese Spalten nur für das Clusterkonzept und nicht für das Training der Clustering-Lösung verwendet. Clusterkonzeptfelder werden in der Tabelle „Clustering-Definitionen“ [ml_capability_definition_clustering] aufgelistet. Standard: Eingabetextspalten generieren das Clusterkonzept |
| config.dataset | Objekt | Namedes DatasetDefinition- Objekts. |
| config.domainName | 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, die Eigenschaft algorithmConfig wird auf „levenshteinDistance“ festgelegt. Trainiertes Encoder-Objekt, das dieser Lösung zugewiesen werden soll. Siehe Encoder: Encoder(Object config). |
| 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, wodurch 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 die folgenden Felder, um Vorhersagen zu treffen. |
| config.label | Zeichenfolge | Identifiziert die Vorhersageaufgabe. |
| config.maxTimeWindowForUpdate | Nummer | Optional. Anzahl der Minuten vor dem Modellaktualisierungspunkt für die Suche nach Datensätzen. Wenn der Wert beispielsweise 15 ist, sucht das System nur nach Datensätzen, die in den letzten 15 Minuten erstellt wurden. Standardmäßig werden alle Datensätze gescannt. |
| config.minDatensätzeProCluster | Nummer | Optional. Mindestanzahl von Datensätzen, die in einem Cluster zulässig ist. Der Wert muss größer oder gleich 2 sein. Standardwert: 2 |
| config.minRowCount | Zeichenfolge | Optional. Mindestanzahl von Datensätzen, die im Datensatz für das Training erforderlich sind. Standard: 10.000 |
| config.processingLanguage | Zeichenfolge | Verarbeitungssprache im aus zwei Buchstaben bestehenden ISO 639-1-Sprachcodeformat. |
| config.stoppwords | Array | Optional. Voreingestellte Liste von Zeichenfolgen, die das System basierend auf der Eigenschaftseinstellung language automatisch generiert. Weitere Informationen finden Sie unter Benutzerdefinierte Stoppwortlisten erstellen. Standard: Englische Stoppwörter |
| config.trainingHäufigkeit | 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 dem hinzufügen ClusteringLösungsspeicher. Das Beispiel zeigt auch, wie das Objekt zum Trainieren ü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 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();
ClusteringSolution – cancelTrainingJob()
Bricht einen Auftrag für ein Lösungsobjekt , das zum Trainieren übermittelt wurde.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Keine |
Das folgende Beispiel zeigt, wie ein vorhandener Trainingsauftrag abgebrochen wird.
var mySolution = sn_ml.ClusteringSolutionStore.get('ml_sn_global_global_clustering');
mySolution.cancelTrainingJob();
ClusteringSolution – getActiveVersion()
Ruft den aktiven ab ClusteringSolutionVersion-Objekt.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Objekt | Aktives ClusteringSolutionVersion- Objekt. |
Das folgende Beispiel zeigt, wie Sie eine aktive Clusterlösung Version aus dem Store 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.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 ClusteringSolution -Versionsobjekte abgerufen und die Lösungsversionsmethoden getVersionNumber() und getStatus() für sie aufgerufen werden.
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 eine ClusteringSolution(). |
Das folgende Beispiel zeigt, wie Sie die neueste 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"
}
ClusteringSolution – getName()
Ruft den Namen des Objekts ab, das für die Interaktion mit dem Speicher verwendet werden soll.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Zeichenfolge | Name des Lösungsobjekts. |
Das folgende Beispiel zeigt, wie Clusterlösung Datensatzinformationen aktualisiert und der Name des Objekts gedruckt wird.
// 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 Eigenschaften des Lösungsobjekts aban.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Objekt | Inhalt der Datensatz- und ClusteringSolution()- Objektdetails im ClusteringSolutionStore. |
| <Object>.algorithmConfig | Die Ergebnisse der EigenschaftJavaScript-Objekt, das Eigenschaften der Algorithmuskonfiguration enthält. variieren je nach dem Wert, der in der Eigenschaft algorithm festgelegt ist.
Datentyp: Objekt. |
| <Object>.algorithmConfig.algorithm | Methode zum Codieren Ihrer Lösung. Eigenschaften für dbscan:
Eigenschaften für kmeans:
Datentyp: Zeichenfolge. |
| <Object>.algorithmConfig.distanceMetric | Nur DBSCAN-Algorithmus. Abstandsmetrik zum Scannen nach ähnlichen Datenobjekten. Datentyp: Zeichenfolge. |
| <Object>.algorithmConfig.epslon | Nur DBSCAN-Algorithmus. Dezimalwert zwischen 0 und 1, der die Größe des Suchradius für Arbeitsbereiche angibt. Datentyp: Zahl. |
| <Object>.algorithmConfig.minimumNachbarn | Nur DBSCAN-Algorithmus. Mindestanzahl von Nachbarn, die in einem Punkt erforderlich ist, 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. Perzentilenfeld zum Herausfiltern von Datensätzen, die einander weniger ähnlich sind. Datentyp: Zahl. |
| <Object>.datasetEigenschaften | Listet die Eigenschaften des DatasetDefinition()- Objekts auf, das der Lösung zugeordnet ist.
Datentyp: Objekt. |
| <Object>.datasetProperties.tableName | 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 der JavaScript-Objekte, die Feldeigenschaften angeben.
Datentyp: Array. |
| <Object>.datasetProperties.fieldNames.fieldDetails.<object>.name | Name des Felds, das den Typ der Informationen definiert, auf die dieser Datensatz beschränkt werden soll. Datentyp: Zeichenfolge. |
| <Object>.datasetProperties.fieldDetails.<object>.type | ML-Feldtyp (maschinelles Lernen). Datentyp: Zeichenfolge. |
| <Object>.datasetProperties.fieldDetails.encodedQuery | Codierte Abfragezeichenfolge im Standard-Glide-Format. Weitere Informationen finden Sie unter Codierte Abfragezeichenfolgen. Datentyp: Zeichenfolge. |
| <Object>.domainName | Domänenname, der diesem Datensatz zugeordnet ist. Siehe Domänentrennung und Predictive Intelligence. Datentyp: Zeichenfolge. |
| <Object>.encoderEigenschaften | Encoder-Objekt, das dieser Lösung zugewiesen ist. Siehe Encoder: Encoder(Object config). 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 die folgenden Felder, um Vorhersagen zu treffen. Datentyp: Zeichenfolge. |
| <Object>.Bezeichnung | Identifiziert die Vorhersageaufgabe.
Datentyp: Zeichenfolge. |
| <Object>.minDatensätzeProCluster | Mindestanzahl von Datensätzen, die in einem Cluster zulässig ist. Datentyp: Zahl. |
| <Object>.name | Vom System zugewiesener Name. Datentyp: Zeichenfolge. |
| <Object>.predictedFieldName | Identifiziert ein Feld, das für die Vorhersagbarkeit trainiert werden soll. Datentyp: Zeichenfolge. |
| <Object>.processingLanguage | Verarbeitungssprache im aus zwei Buchstaben bestehenden ISO 639-1-Sprachcodeformat. Datentyp: Zeichenfolge. |
| <Object>.Bereich | Objektumfang. Derzeit ist der einzige gültige Wert global.Datentyp: Zeichenfolge |
| <Object>.Stoppwörter | Optional. Voreingestellte Liste von Zeichenfolgen, die das System basierend auf der Eigenschaftseinstellung language automatisch generiert. Weitere Informationen finden Sie unter Benutzerdefinierte Stoppwortlisten erstellen. 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 |
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"
}}ClusteringSolution – getVersion(String version)
Ruft eine Lösung ab nach angegebener Versionsnummer.
| Name | Typ | Beschreibung |
|---|---|---|
| Version | Zeichenfolge | Vorhandene Versionsnummer einer Lösung. |
| Typ | Beschreibung |
|---|---|
| Objekt | Angegebene Version des ClusteringSolution()- Objekts, für das Sie ClusteringSolutionVersion -API-Methoden aufrufen können. |
Das folgende Beispiel zeigt, wie der Trainingsstatus einer Lösung anhand der Versionsnummer abgerufen wird.
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 Version des ClusteringSolution()- Objekts. Durch die Aktivierung dieser Version werden alle anderen Versionen deaktiviert. |
| Typ | Beschreibung |
|---|---|
| Keine |
Das folgende Beispiel zeigt, wie eine Lösungsversion im Store aktiviert wird.
sn_ml.ClusteringSolution.setActiveVersion("ml_incident_categorization");
ClusteringSolution – submitTrainingJob()
Sendet einen Trainingsauftrag.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Objekt | ClusteringLösungVersion Objekt, das ClusteringLösung dem trainierten entspricht. |
Das folgende Beispiel zeigt, wie Sie einen Datensatz erstellen, auf eine Lösung anwenden, die Lösung einem Speicher 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();