Compartilhar via


KMeansTrainer Classe

Definição

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 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

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.

Aplica-se a

Confira também