KMeansTrainer Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Schulung IEstimator<TTransformer> eines KMeans-Clusterers
public class KMeansTrainer : Microsoft.ML.Trainers.TrainerEstimatorBase<Microsoft.ML.Data.ClusteringPredictionTransformer<Microsoft.ML.Trainers.KMeansModelParameters>,Microsoft.ML.Trainers.KMeansModelParameters>
type KMeansTrainer = class
inherit TrainerEstimatorBase<ClusteringPredictionTransformer<KMeansModelParameters>, KMeansModelParameters>
Public Class KMeansTrainer
Inherits TrainerEstimatorBase(Of ClusteringPredictionTransformer(Of KMeansModelParameters), KMeansModelParameters)
- Vererbung
Hinweise
Um diesen Trainer zu erstellen, verwenden Sie KMeans oder Kmeans(Options).
Eingabe- und Ausgabespalten
Die Spaltendaten der Eingabefeatures müssen sein Single. Es ist keine Beschriftungsspalte erforderlich. Der Trainer gibt folgende Spalten aus:
| Name der Ausgabespalte | Spaltentyp | Description |
|---|---|---|
Score |
Vektor von Single | Die Abstände der angegebenen Daten weisen auf die Schwerpunkte aller Cluster hin. |
PredictedLabel |
Schlüssel-Typ | Der vom Modell vorhergesagte Index des nächstgelegenen Clusters. |
Trainermerkmale
| Machine Learning-Aufgabe | Clusterbildung |
| Ist normalisierung erforderlich? | Yes |
| Ist zwischenspeichern erforderlich? | Yes |
| Erforderliches NuGet zusätzlich zu Microsoft.ML | Nichts |
| Exportierbar in ONNX | Yes |
Details des Schulungsalgorithmus
K-means ist ein beliebter Clusteringalgorithmus. Bei K-Mittel werden die Daten in einer bestimmten Anzahl von Clustern gruppiert, um die Innerhalb des Cluster-Summen von quadratischen Abständen zu minimieren. Diese Implementierung folgt der Yinyang K-means-Methode. Für die Auswahl der anfänglichen Cluster-Centeroiden kann eine von drei Optionen verwendet werden:
- Zufällige Initialisierung. Dies kann zu potenziell schlechten Annäherungen der optimalen Clustering führen.
- Die K-means++-Methode. Dies ist ein verbesserter Initialisierungsalgorithmus , der hier durch Ding et al. eingeführt wurde und garantiert, dass eine Lösung gefunden wird, die $O(log K)$ wettbewerbsfähig für die optimale K-Mittel-Lösung ist.
- Das K-Mittel|| -Methode. Diese Methode wurde hier von Bahmani et al. eingeführt und verwendet eine parallele Methode, die die Anzahl der Läufe drastisch reduziert, die erforderlich sind, um eine gute Initialisierung zu erhalten.
K-mittel|| ist die Standardinitialisierungsmethode. Die anderen Methoden können in den Optionen angegeben werden, wenn sie den Trainer mithilfe von KMeansTrainer(Options)erstellen.
Bewertungsfunktion
Die Ausgabebewertungsspalte enthält das Quadrat des Abstands $L_2$-Norm (d. h. euklidischer Abstand) des angegebenen Eingabevektors $\textbf{x}\in \mathbb{R}^n$ zu den Schwerpunkten jedes Clusters. Gehen Sie davon aus, dass der centriod des $c$-th-Clusters $\textbf{m}_c \in \mathbb{R}^n$ ist. Der $c$-th-Wert in der Spalte "Bewertung" wäre $d_c = || \textbf{x} - \textbf{m}_c ||_2^2$. Die vorhergesagte Beschriftung ist der Index mit dem kleinsten Wert in einem $K$ dimensionalen Vektor $[d_{0}, \dots, d_{K-1}]$, wobei $K$ die Anzahl der Cluster ist.
Weitere Informationen zu K-Mitteln und K-means++ finden Sie unter: K-meansK-means++
Im Abschnitt "Siehe auch" finden Sie Links zu Verwendungsbeispielen.
Felder
| Name | Beschreibung |
|---|---|
| FeatureColumn |
Die Featurespalte, die der Trainer erwartet. (Geerbt von TrainerEstimatorBase<TTransformer,TModel>) |
| LabelColumn |
Die Bezeichnungsspalte, die der Trainer erwartet. Dies kann sein |
| WeightColumn |
Die Gewichtsspalte, die der Trainer erwartet. Dies kann sein |
Eigenschaften
| Name | Beschreibung |
|---|---|
| Info |
Schulung IEstimator<TTransformer> eines KMeans-Clusterers |
Methoden
| Name | Beschreibung |
|---|---|
| Fit(IDataView) |
Züge und Gibt einen ITransformer. (Geerbt von TrainerEstimatorBase<TTransformer,TModel>) |
| GetOutputSchema(SchemaShape) |
Schulung IEstimator<TTransformer> eines KMeans-Clusterers (Geerbt von TrainerEstimatorBase<TTransformer,TModel>) |
Erweiterungsmethoden
| Name | Beschreibung |
|---|---|
| AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment) |
Fügen Sie einen "Zwischenspeicherungsprüfpunkt" an die Schätzkette an. Dadurch wird sichergestellt, dass die nachgeschalteten Schätzer anhand zwischengespeicherter Daten trainiert werden. Es ist hilfreich, einen Zwischenspeicherprüfpunkt vor Trainern zu haben, die mehrere Datendurchläufe übernehmen. |
| WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>) |
Geben Sie bei einer Schätzung ein Wrapping-Objekt zurück, das eine Stellvertretung aufruft, sobald Fit(IDataView) sie aufgerufen wird. Es ist häufig wichtig, dass ein Schätzer Informationen zu dem, was passt, zurückgeben, weshalb die Fit(IDataView) Methode ein speziell typiertes Objekt und nicht nur ein allgemeines ITransformerObjekt zurückgibt. IEstimator<TTransformer> Gleichzeitig werden jedoch oft in Pipelines mit vielen Objekten gebildet, daher müssen wir möglicherweise eine Kette von Schätzern bauen, über EstimatorChain<TLastTransformer> die der Schätzer, für den wir den Transformator erhalten wollen, irgendwo in dieser Kette begraben wird. Für dieses Szenario können wir über diese Methode einen Delegat anfügen, der aufgerufen wird, sobald "Fit" aufgerufen wird. |