ClusteringSolution – Global
Die ClusteringSolution API ist ein skriptfähiges Objekt, das in verwendet wird Predictive Intelligence Speichert.
Dies API erfordert Predictive Intelligence Plugin (com.glide.platform_ml) und wird in bereitgestellt sn_ml Namespace.
- Erstellen Sie einen Datensatz mit Datendefinition 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.
Nutzungsrichtlinien finden Sie unter Mit ML-APIs .
ClusteringSolution – ClusteringSolution (Objektkonfiguration)
Erstellt eine Clusterlösung.
| Name | Typ | Beschreibung |
|---|---|---|
| Konfiguration | Objekt | JavaScript-Objekt, das Konfigurationseigenschaften von enthält Lösung. |
| Config.algorithmConfig | Objekt | Erforderlich. 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.distanceMetrik | Zeichenfolge | Nur DBSCAN-Algorithmus. Entfernungsmetrik zum Scannen nach ähnlichen Datenobjekten. Gültige Werte: levenshteinDistance |
| Config.algorithmConfig.epsilon | Nummer | Nur DBSCAN-Algorithmus. Dezimalwert zwischen 0 und 1, der die Größe des Suchradius des Arbeitsbereichs darstellt. |
| Config.algorithmConfig.minimumNeighbours | Nummer | 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 | Nummer | Mindestanzahl von Datenbeispielen in einem Arbeitsbereich, die erforderlich sind, 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 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 Cluster-Lösungsschulungen verwendet. Wenn externe Spalten angegeben werden, werden diese Spalten nur für das Clusterkonzept und nicht für das Training der Clustering-Lösung verwendet. Cluster-Konzeptfelder werden in der Tabelle „Clustering-Definitionen“ [ml_capability_definition_clustering] aufgeführt. Standard: Eingabetextspalten generieren das Clusterkonzept |
| Config.datensatz | Objekt | Datendefinition Objektname. |
| Config.domainName | Zeichenfolge | Optional. Domänenname, der diesem Datensatz zugeordnet ist. Siehe Domänentrennung und Predictive Intelligence. Standard: Aktuelle Domäne, z. B. |
| 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, die für Vorhersagen verwendet werden. |
| Config.label | Zeichenfolge | Gibt die Vorhersageaufgabe an. |
| Config.maxTimeWindowForUpdate | Nummer | 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 vorherigen 15 Minuten erstellt wurden. Standardmäßig scannt das System alle Datensätze. |
| Config.minRecordsPerCluster | Nummer | Optional. Mindestanzahl von Datensätzen, die in einem Cluster zugelassen werden sollen. Der Wert muss größer oder gleich 2 sein. Standard: 2 |
| Config.minZeilenanzahl | Zeichenfolge | Optional. Mindestanzahl von Datensätzen, die im Datensatz für das Training erforderlich sind. Standard: 10000 |
| config.processingLanguage | Zeichenfolge | Sprache wird im zweistelligen ISO 639-1-Sprachcodeformat verarbeitet. |
| Config.stopwords | 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 zum erneuten Trainieren des Modells.
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 zu 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'
});
var mySolution = new sn_ml.ClusteringSolution({
'label': "clustering solution",
'dataset' : myData,
'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 mySolution = new sn_ml.ClusteringSolution({
'label': 'clustering_test',
'dataset': myIncidentData,
'inputFieldNames': ['short_description'],
'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 ein vorhandener Schulungsauftrag abgebrochen wird.
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 ein aktiver abgerufen wird 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, und drucken Sie den Namen des Objekts aus.
// 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. Eigenschaftsergebnisse 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>.DatasetProperties | 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>.DatasetProperties.Feldnamen | Liste der Feldnamen aus der angegebenen Tabelle als Zeichenfolgen. Beispiel: „Feldnamen“: ["short_description", "Priorität"] . 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>.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>.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, die für Vorhersagen verwendet werden. Datentyp: Zeichenfolge. |
| <Object>.Bezeichnung | Gibt die Vorhersageaufgabe an.
Datentyp: Zeichenfolge. |
| <Object>.MinRecordsPerCluster | Mindestanzahl von Datensätzen, die in einem Cluster zugelassen werden sollen. Datentyp: Zahl. |
| <Object>.Name | Vom System zugewiesener Name. Datentyp: Zeichenfolge. |
| <Object>.PredictedFieldName | Gibt ein Feld an, das auf Vorhersehbarkeit 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 zum erneuten Trainieren des Modells. 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 |
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",
"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, für das 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 von ClusteringSolution() Zu aktivierende Objektversion. Durch Aktivieren dieser Version wird jede andere Version deaktiviert. |
| Typ | Beschreibung |
|---|---|
| Keine |
Das folgende Beispiel zeigt, wie aktiviert wird 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'
});
// Create a solution
var mySolution = new sn_ml.ClusteringSolution({
'label': "my solution definition",
'dataset' : myData,
'predictedFieldName' : 'assignment_group',
'inputFieldNames':['short_description']
});
// Add the solution to the store to later be able to retrieve it.
var my_unique_name = sn_ml.ClusteringSolutionStore.add(mySolution);
// Train the solution - this is a long running job
var myClusterVersion = mySolution.submitTrainingJob();