KMeansTrainer Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
O IEstimator<TTransformer> para treinar um 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)
- Herança
Comentários
Para criar esse treinador, use KMeans ou Kmeans(Options).
Colunas de entrada e saída
Os dados da coluna de recursos de entrada devem ser Single. Nenhuma coluna de rótulo necessária. Este treinador gera as seguintes colunas:
Nome da Coluna de Saída | Tipo de coluna | Descrição |
---|---|---|
Score |
vetor de Single | As distâncias do ponto de dados determinado para todos os centroides de clusters. |
PredictedLabel |
tipo de chave | O índice do cluster mais próximo previsto pelo modelo. |
Características do Treinador
Ferramenta de machine learning | Clustering |
A normalização é necessária? | Sim |
O cache é necessário? | Sim |
NuGet necessário além de Microsoft.ML | Nenhum |
Exportável para ONNX | Sim |
Detalhes do algoritmo de treinamento
K-means é um algoritmo de clustering popular. Com k-means, os dados são clusterizados em um número especificado de clusters, a fim de minimizar a soma dentro do cluster de distâncias quadradas. Essa implementação segue o método K-means yinyang. Para escolher os centeroids de cluster iniciais, uma das três opções pode ser usada:
- Inicialização aleatória. Isso pode levar a aproximações potencialmente ruins do clustering ideal.
- O método K-means++. Esse é um algoritmo de inicialização aprimorado introduzido aqui por Ding et al., que garante encontrar uma solução que seja $O(log K)$ competitiva para a solução de K-means ideal.
- O K-means|| Método. Este método foi introduzido aqui por Bahmani et al., e usa um método paralelo que reduz drasticamente o número de passes necessários para obter uma boa inicialização.
K-means|| é o método de inicialização padrão. Os outros métodos podem ser especificados nas Opções ao criar o treinador usando KMeansTrainer(Options).
Função Pontuação
A coluna pontuação de saída contém o quadrado da distância $L_2$-norm (ou seja, distância euclidiana) do vetor de entrada $\textbf{x}\in \mathbb{R}^n$ para o centroide de cada cluster. Suponha que o centriod do cluster $c$-th seja $\textbf{m}_c \in \mathbb{R}^n$. O valor $c$-th na coluna Score seria $d_c = || \textbf{x} - \textbf{m}_c || _2^2$. O rótulo previsto é o índice com o menor valor em um vetor dimensional $K$ $[d_{0}, \dots, d_{K-1}]$, onde $K$ é o número de clusters.
Para obter mais informações sobre K-means e K-means++, consulte: K-meansK-means++
Verifique a seção Consulte Também para obter links para exemplos de uso.
Campos
FeatureColumn |
A coluna de recursos que o treinador espera. (Herdado de TrainerEstimatorBase<TTransformer,TModel>) |
LabelColumn |
A coluna de rótulo que o treinador espera. Pode ser |
WeightColumn |
A coluna de peso que o treinador espera. Pode ser |
Propriedades
Info |
O IEstimator<TTransformer> para treinar um clusterer KMeans |
Métodos
Fit(IDataView) |
Treina e retorna um ITransformer. (Herdado de TrainerEstimatorBase<TTransformer,TModel>) |
GetOutputSchema(SchemaShape) |
O IEstimator<TTransformer> para treinar um clusterer KMeans (Herdado de TrainerEstimatorBase<TTransformer,TModel>) |
Métodos de Extensão
AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment) |
Acrescente um "ponto de verificação de cache" à cadeia de estimativas. Isso garantirá que os estimadores downstream serão treinados em relação aos dados armazenados em cache. É útil ter um ponto de verificação de cache antes dos treinadores que fazem várias passagens de dados. |
WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>) |
Dado um estimador, retorne um objeto de encapsulamento que chamará um delegado uma vez Fit(IDataView) chamado. Geralmente, é importante que um estimador retorne informações sobre o que estava em forma, e é por isso que o Fit(IDataView) método retorna um objeto especificamente tipado, em vez de apenas um geral ITransformer. No entanto, ao mesmo tempo, IEstimator<TTransformer> muitas vezes são formados em pipelines com muitos objetos, portanto, talvez seja necessário construir uma cadeia de estimadores por meio EstimatorChain<TLastTransformer> de onde o estimador para o qual queremos que o transformador seja enterrado em algum lugar nesta cadeia. Para esse cenário, podemos por meio desse método anexar um delegado que será chamado quando fit for chamado. |