KMeansTrainer Klasse

Definition

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 null, was angibt, dass die Bezeichnung nicht für Schulungen verwendet wird.

(Geerbt von TrainerEstimatorBase<TTransformer,TModel>)
WeightColumn

Die Gewichtsspalte, die der Trainer erwartet. nullKann sein, was angibt, dass das Gewicht nicht für die Schulung verwendet wird.

(Geerbt von TrainerEstimatorBase<TTransformer,TModel>)

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.

Gilt für:

Weitere Informationen