KMeansTrainer Clase

Definición

IEstimator<TTransformer> para entrenar un clúster de 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)
Herencia

Comentarios

Para crear este instructor, use KMeans o Kmeans(Options).

Columnas de entrada y salida

Los datos de columna de características de entrada deben ser Single. No se necesita ninguna columna de etiqueta. Este instructor genera las siguientes columnas:

Nombre de columna de salida Tipo de columna Descripción
Score Vector de Single Distancias del punto de datos especificado a todos los centroids de los clústeres.
PredictedLabel Tipo de clave El índice del clúster más cercano predicho por el modelo.

Características del entrenador

Tarea de Machine Learning Agrupación en clústeres
¿Se requiere normalización?
¿Se requiere el almacenamiento en caché?
NuGet necesario además de Microsoft.ML None
Exportable a ONNX

Detalles del algoritmo de entrenamiento

K-means es un algoritmo de agrupación en clústeres popular. Con K-means, los datos se agrupan en un número especificado de clústeres para minimizar la suma dentro del clúster de distancias cuadradas. Esta implementación sigue el método K-means de Yinyang. Para elegir los centros de clúster iniciales, se puede usar una de las tres opciones:

  • Inicialización aleatoria. Esto podría dar lugar a aproximaciones potencialmente incorrectas de la agrupación en clústeres óptima.
  • Método K-means++. Se trata de un algoritmo de inicialización mejorado introducido aquí por Ding et al., que garantiza encontrar una solución que sea $O(log K)$ competitiva para la solución K-means óptima.
  • Los K-means|| Método. Este método se introdujo aquí por Bahmani et al., y usa un método paralelo que reduce drásticamente el número de pases necesarios para obtener una buena inicialización.

K-means|| es el método de inicialización predeterminado. Los demás métodos se pueden especificar en las opciones al crear el instructor mediante KMeansTrainer(Options).

Función de puntuación

La columna Puntuación de salida contiene el cuadrado de la distancia $L_2$-norm (es decir, distancia euclidiana) del vector de entrada especificado $\textbf{x}\in \mathbb{R}^n$ al centroide de cada clúster. Supongamos que el centriodo del clúster de $c$-th es $\textbf{m}_c \in \mathbb{R}^n$. El valor $c$-th en la columna Puntuación sería $d_c = || \textbf{x} - \textbf{m}_c || _2^2$. La etiqueta predicha es el índice con el valor más pequeño de un vector dimensional de $K$ $[d_{0}, \dots, d_{K-1}]$, donde $K$ es el número de clústeres.

Para obtener más información sobre K-means y K-means++ consulte: K-meansK-means++

Consulte la sección Consulte también los vínculos a ejemplos de uso.

Campos

FeatureColumn

Columna de características que espera el instructor.

(Heredado de TrainerEstimatorBase<TTransformer,TModel>)
LabelColumn

Columna de etiqueta que espera el instructor. Puede ser null, que indica que la etiqueta no se usa para el entrenamiento.

(Heredado de TrainerEstimatorBase<TTransformer,TModel>)
WeightColumn

Columna de peso que espera el entrenador. Puede ser null, lo que indica que el peso no se usa para el entrenamiento.

(Heredado de TrainerEstimatorBase<TTransformer,TModel>)

Propiedades

Info

IEstimator<TTransformer> para entrenar un clúster de KMeans

Métodos

Fit(IDataView)

Entrena y devuelve un ITransformerobjeto .

(Heredado de TrainerEstimatorBase<TTransformer,TModel>)
GetOutputSchema(SchemaShape)

IEstimator<TTransformer> para entrenar un clúster de KMeans

(Heredado de TrainerEstimatorBase<TTransformer,TModel>)

Métodos de extensión

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

Anexe un "punto de control de almacenamiento en caché" a la cadena del estimador. Esto garantizará que los estimadores de bajada se entrenarán con datos almacenados en caché. Resulta útil tener un punto de control de almacenamiento en caché antes de que los instructores tomen varios pases de datos.

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

Dado un estimador, devuelva un objeto de ajuste que llamará a un delegado una vez Fit(IDataView) . A menudo, es importante que un estimador devuelva información sobre lo que cabe, por lo que el Fit(IDataView) método devuelve un objeto con tipo específico, en lugar de simplemente un general ITransformer. Sin embargo, al mismo tiempo, IEstimator<TTransformer> a menudo se forman en canalizaciones con muchos objetos, por lo que es posible que tengamos que crear una cadena de estimadores a través EstimatorChain<TLastTransformer> de donde el estimador para el que queremos obtener el transformador se enterró en algún lugar de esta cadena. En ese escenario, podemos a través de este método adjuntar un delegado al que se llamará una vez que se llame a fit.

Se aplica a

Consulte también