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).

Colonne di input e output

I dati delle colonne delle funzionalità di input devono essere Single. Nessuna colonna etichetta necessaria. Questo formatore restituisce le colonne seguenti:

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

Caratteristiche del formatore

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

Dettagli algoritmo di training

K-means è un algoritmo di clustering comune. 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)$ competitivo per la soluzione K-means ottimale.
  • Il 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 durante la creazione del formatore tramite KMeansTrainer(Options).

Funzione di assegnazione dei punteggi

La colonna Score di output contiene il quadrato della distanza $L_2$-norm (ad esempio, distanza euclidea) del vettore di input specificato $\textbf{x}\in \mathbb{R}^n$ al centro di ogni cluster. Si supponga che il centro del cluster $c$-th sia $\textbf{m}_c \in \mathbb{R}^n$. Il valore $c$-th nella colonna Score è $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 la sezione Vedere anche i collegamenti agli esempi di utilizzo.

Campi

FeatureColumn

Colonna di funzionalità prevista dal formatore.

(Ereditato da TrainerEstimatorBase<TTransformer,TModel>)
LabelColumn

Colonna dell'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à

Info

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

Metodi

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

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

Aggiungere un "checkpoint di memorizzazione nella cache" alla catena di stima. Ciò garantisce che gli estimatori downstream vengano sottoposti a training in base ai dati memorizzati nella cache. È utile avere un checkpoint di memorizzazione nella cache prima che i formatori eseseguono più passaggi di dati.

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

Dato un estimator, restituire un oggetto wrapping che chiamerà un delegato una volta Fit(IDataView) chiamato. È spesso importante che uno strumento di stima restituisca informazioni sull'adattamento, 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