KMeansTrainer Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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? | Sì |
La memorizzazione nella cache è necessaria? | Sì |
NuGet richiesto oltre a Microsoft.ML | Nessuno |
Esportabile in ONNX | Sì |
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 |
WeightColumn |
Colonna di peso prevista dal formatore. Può essere |
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. |