KMeansTrainer Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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? | Sí |
¿Se requiere el almacenamiento en caché? | Sí |
NuGet necesario además de Microsoft.ML | None |
Exportable a ONNX | Sí |
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 |
WeightColumn |
Columna de peso que espera el entrenador. Puede ser |
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. |