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).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 |
| WeightColumn |
Colonna di peso prevista dal formatore. Può essere |
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. |