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.
Für die IEstimator<TTransformer> Schulung 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 Eingabefeatures-Spaltendaten müssen Singlesein. Keine Bezeichnungsspalte erforderlich. Der Trainer gibt folgende Spalten aus:
Name der Ausgabespalte | Spaltentyp | Beschreibung |
---|---|---|
Score |
Vektor von Single | Die Entfernungen der angegebenen Daten zeigen auf alle Mittelpunkte aller Cluster. |
PredictedLabel |
Typ key | Der Index des nächsten Clusters, der durch das Modell vorhergesagt wird. |
Trainereigenschaften
ML-Aufgabe | Clustering |
Ist die Normalisierung erforderlich? | Yes |
Ist zwischenspeichern erforderlich? | Yes |
Erforderliche NuGet zusätzlich zu Microsoft.ML | Keine |
Exportierbar in ONNX | Yes |
Schulungsalgorithmusdetails
K-Mittel ist ein beliebter Clustering-Algorithmus. Mit K-Mittel wird die Daten in eine angegebene Anzahl von Clustern gruppiert, um die innerhalb der Clustersumme von quadratischen Abständen zu minimieren. Diese Implementierung folgt der Yinyang K-means-Methode. Bei der Auswahl der anfänglichen Clusterzentoiden kann eine von drei Optionen verwendet werden:
- Zufällige Initialisierung. Dies kann zu potenziell schlechten Näherungen der optimalen Clusterung führen.
- Die K-means++-Methode. Dies ist ein verbesserter Initialisierungsalgorithmus , der hier von 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-Mittellö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 übergebenen Pässe drastisch reduziert, um eine gute Initialisierung zu erhalten.
K-mittel|| ist die Standard-Initialisierungsmethode. Die anderen Methoden können beim Erstellen des Trainers mit KMeansTrainer(Options)in den Optionen angegeben werden.
Bewertungsfunktion
Die Ausgabebewertungsspalte enthält das Quadrat des Abstands $L_2$-Norm (d. h. Euclidean-Entfernung) des angegebenen Eingabevektors $\textbf{x}\in \mathbb{R}^n$ zu jedem Zentrum des Clusters. Angenommen, der Centriod des $c$-th-Clusters ist $\textbf{m}_c \in \mathbb{R}^n$. Der $c$-th-Wert in der Spalte "Score" wäre $d_c = || \textbf{x} - \textbf{m}_c || _2^2$. Die vorhergesagte Bezeichnung 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-Mittel und K-means++ finden Sie unter: K-means K-means++
Überprüfen Sie den Abschnitt "Siehe auch", um Links zu Verwendungsbeispielen zu finden.
Felder
FeatureColumn |
Die Featurespalte, die der Trainer erwartet. (Geerbt von TrainerEstimatorBase<TTransformer,TModel>) |
LabelColumn |
Die Bezeichnungsspalte, die der Trainer erwartet. Kann sein |
WeightColumn |
Die Gewichtsspalte, die der Trainer erwartet.
|
Eigenschaften
Info |
Für die IEstimator<TTransformer> Schulung eines KMeans-Clusterers |
Methoden
Fit(IDataView) |
Züge und zurückgeben eine ITransformer. (Geerbt von TrainerEstimatorBase<TTransformer,TModel>) |
GetOutputSchema(SchemaShape) |
Für die IEstimator<TTransformer> Schulung eines KMeans-Clusterers (Geerbt von TrainerEstimatorBase<TTransformer,TModel>) |
Erweiterungsmethoden
AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment) |
Fügen Sie einen "Zwischenspeicherpunkt" an die Stimatorkette an. Dadurch wird sichergestellt, dass die nachgelagerten Stimatoren gegen zwischengespeicherte Daten trainiert werden. Es ist hilfreich, einen Cache-Prüfpunkt zu haben, bevor Trainer, die mehrere Daten übergeben. |
WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>) |
Geben Sie aufgrund einer Schätzung ein Umbruchobjekt zurück, das einen Stellvertretung aufruft, sobald Fit(IDataView) er aufgerufen wird. Es ist oft wichtig, dass eine Schätzung Informationen zu dem zurückgibt, was passt, weshalb die Fit(IDataView) Methode ein spezifisches typiertes Objekt zurückgibt, anstatt nur ein allgemeines ITransformer. Gleichzeitig IEstimator<TTransformer> werden jedoch oft Pipelines mit vielen Objekten gebildet, sodass wir möglicherweise eine Kette von EstimatorChain<TLastTransformer> Schätzern erstellen müssen, über die der Schätzer, für den wir den Transformator erhalten möchten, irgendwo in dieser Kette begraben wird. Für dieses Szenario können wir über diese Methode eine Stellvertretung anfügen, die einmal aufgerufen wird, wenn die Anpassung aufgerufen wird. |