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 columnas siguientes:

Nombre de columna de salida Tipo de columna Description
Score vector de Single Distancias del punto de datos dado a los centroides de todos los clústeres.
PredictedLabel llave tipo Índice del clúster más cercano previsto por el modelo.

Características del entrenador

Tarea de aprendizaje automático Clustering
¿Se requiere normalización? Yes
¿Se requiere el almacenamiento en caché? Yes
NuGet necesario además de Microsoft.ML Ninguno
Exportable a ONNX Yes

Detalles del algoritmo de entrenamiento

K-means es un algoritmo popular de agrupación en clústeres. 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 Yinyang K-means. Para elegir los centros de clúster iniciales, se puede usar una de las tres opciones:

  • Inicialización aleatoria. Esto puede provocar 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.
  • The K-means|| method. Este método fue introducido 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$ en el 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 de $c$-th en la columna Score 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++ vea: K-meansK-means++

Consulte la sección Ver también para obtener vínculos a ejemplos de uso.

Campos

Nombre Description
FeatureColumn

Columna de características que el instructor espera.

(Heredado de TrainerEstimatorBase<TTransformer,TModel>)
LabelColumn

Columna de etiqueta que el entrenador espera. Puede ser null, lo 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

Nombre Description
Info

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

Métodos

Nombre Description
Fit(IDataView)

Entrena y devuelve un ITransformer.

(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

Nombre Description
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 nivel inferior se entrenarán con los 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) que se llame. A menudo, es importante que un estimador devuelva información sobre lo que se ha ajustado, por lo que el Fit(IDataView) método devuelve un objeto específicamente tipado, 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 está enterrado 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