KMeansTrainer Classe

Definição

Para IEstimator<TTransformer> 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 fornecido para todos os centroides do cluster.
PredictedLabel Tipo de chave O índice do cluster mais próximo previsto pelo modelo.

Características do Treinador

Tarefa de machine learning Agrupamento
A normalização é necessária? Yes
O cache é necessário? Yes
NuGet necessário além de Microsoft.ML None
Exportável para ONNX Yes

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 Yinyang K-means. 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++. Este é um algoritmo de inicialização aprimorado introduzido aqui por Ding et al., que garante encontrar uma solução $O(log K)$ competitiva para a solução 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 de 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 especificado $\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 $K$ dimensional $[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

Nome Description
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 null, o que indica que o rótulo não é usado para treinamento.

(Herdado de TrainerEstimatorBase<TTransformer,TModel>)
WeightColumn

A coluna de peso que o treinador espera. Pode ser null, o que indica que o peso não é usado para treinamento.

(Herdado de TrainerEstimatorBase<TTransformer,TModel>)

Propriedades

Nome Description
Info

Para IEstimator<TTransformer> treinar um clusterer KMeans

Métodos

Nome Description
Fit(IDataView)

Treina e retorna um ITransformer.

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

Para IEstimator<TTransformer> treinar um clusterer KMeans

(Herdado de TrainerEstimatorBase<TTransformer,TModel>)

Métodos de Extensão

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

Acrescente um 'ponto de verificação de cache' à cadeia do avaliador. Isso garantirá que os avaliadores 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 têm várias passagens de dados.

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

Dado um avaliador, retorne um objeto de encapsulamento que chamará um delegado uma vez Fit(IDataView) chamado. Geralmente, é importante que um avaliador 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 criar uma cadeia de avaliadores por meio EstimatorChain<TLastTransformer> de onde o avaliador para o qual queremos obter o transformador está enterrado em algum lugar nessa cadeia. Para esse cenário, podemos por meio desse método anexar um delegado que será chamado assim que o ajuste for chamado.

Aplica-se a

Confira também