KMeansTrainer Classe

Definizione

Oggetto IEstimator<TTransformer> per il training di un clusterer KMeans

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)
Ereditarietà

Commenti

Per creare questo formatore, usare KMeans o Kmeans (Options).To create this trainer, use KMeans or Kmeans(Options).

Colonne di input e output

Le caratteristiche di input dei dati della colonna devono essere Single. Nessuna colonna etichetta necessaria. Questo formatore restituisce le colonne seguenti:

Nome della colonna di output Tipo di colonna Descrizione
Score vettore di Single Distanze del punto dati specificato con i centroidi di tutti i cluster.
PredictedLabel chiave tipo Indice del cluster più vicino stimato dal modello.

Caratteristiche del trainer

Attività di Machine Learning Clustering
La normalizzazione è necessaria? Yes
La memorizzazione nella cache è necessaria? Yes
NuGet necessario oltre a Microsoft.ML Nessuno
Esportabile in ONNX Yes

Dettagli algoritmo di training

K-means è un algoritmo di clustering diffuso. Con K-means, i dati vengono raggruppati in un numero specificato di cluster per ridurre al minimo la somma all'interno del cluster di distanze quadrate. Questa implementazione segue il metodo Yiconfiguration K-means. Per scegliere i centeroid cluster iniziali, è possibile usare una delle tre opzioni seguenti:

  • Inizializzazione casuale. Ciò potrebbe causare approssimazioni potenzialmente negative del clustering ottimale.
  • Metodo K-means++. Si tratta di un algoritmo di inizializzazione migliorato introdotto qui da Ding et al., che garantisce di trovare una soluzione che sia $O(log K)$ competitiva per la soluzione K-means ottimale.
  • The K-means|| Metodo. Questo metodo è stato introdotto qui da Bahmani et al., e usa un metodo parallelo che riduce drasticamente il numero di passaggi necessari per ottenere una buona inizializzazione.

K-means|| è il metodo di inizializzazione predefinito. Gli altri metodi possono essere specificati nelle opzioni quando si crea il formatore usando KMeansTrainer(Options).The other methods can be specified in the Options when creating the trainer using KMeansTrainer(Options).

Funzione di assegnazione dei punteggi

La colonna Score di output contiene il quadrato della distanza $L_2$-norm (ovvero, distanza euclidea) del vettore di input specificato $\textbf{x}\in \mathbb{R}^n$ al centro di ogni cluster. Si supponga che il centriod del cluster $c$-th sia $\textbf{m}_c \in \mathbb{R}^n$. Il valore $c$-th nella colonna Score sarà $d_c = || \textbf{x} - \textbf{m}_c ||_2^2$. L'etichetta stimata è l'indice con il valore più piccolo in un vettore dimensionale $K$ $[d_{0}, \dots, d_{K-1}]$, dove $K$ è il numero di cluster.

Per altre informazioni su K-means e K-means++ vedere: K-meansK-means++

Vedere anche la sezione Vedere anche i collegamenti agli esempi di utilizzo.

Campi

Nome Descrizione
FeatureColumn

Colonna di funzionalità prevista dal formatore.

(Ereditato da TrainerEstimatorBase<TTransformer,TModel>)
LabelColumn

Colonna etichetta prevista dal formatore. Può essere null, che indica che l'etichetta non viene usata per il training.

(Ereditato da TrainerEstimatorBase<TTransformer,TModel>)
WeightColumn

Colonna di peso prevista dal formatore. Può essere null, che indica che il peso non viene usato per il training.

(Ereditato da TrainerEstimatorBase<TTransformer,TModel>)

Proprietà

Nome Descrizione
Info

Oggetto IEstimator<TTransformer> per il training di un clusterer KMeans

Metodi

Nome Descrizione
Fit(IDataView)

Esegue il training e restituisce un oggetto ITransformer.

(Ereditato da TrainerEstimatorBase<TTransformer,TModel>)
GetOutputSchema(SchemaShape)

Oggetto IEstimator<TTransformer> per il training di un clusterer KMeans

(Ereditato da TrainerEstimatorBase<TTransformer,TModel>)

Metodi di estensione

Nome Descrizione
AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment)

Aggiungere un "checkpoint di memorizzazione nella cache" alla catena di stima. In questo modo si garantisce che gli estimatori downstream vengano sottoposti a training su dati memorizzati nella cache. È utile disporre di un checkpoint di memorizzazione nella cache prima che i formatori eseseguono più passaggi di dati.

WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>)

Dato uno strumento di stima, restituire un oggetto wrapping che chiamerà un delegato una volta Fit(IDataView) chiamato. È spesso importante che uno strumento di stima restituisca informazioni sulle dimensioni, motivo per cui il Fit(IDataView) metodo restituisce un oggetto tipizzato in modo specifico, anziché solo un oggetto generale ITransformer. Tuttavia, allo stesso tempo, IEstimator<TTransformer> vengono spesso formati in pipeline con molti oggetti, quindi potrebbe essere necessario creare una catena di estimatori tramite EstimatorChain<TLastTransformer> dove lo strumento di stima per il quale si vuole ottenere il trasformatore è sepolto in una posizione in questa catena. Per questo scenario, è possibile collegare un delegato che verrà chiamato una volta chiamato fit.

Si applica a

Vedi anche