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.
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 |
| WeightColumn |
A coluna de peso que o treinador espera. Pode ser |
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. |