Udostępnij za pośrednictwem


KMeansTrainer Klasa

Definicja

Element IEstimator<TTransformer> do trenowania klastra 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)
Dziedziczenie

Uwagi

Aby utworzyć ten trener, użyj narzędzi KMeans lub Kmeans(Options).

Kolumny wejściowe i wyjściowe

Dane kolumn funkcji wejściowych muszą mieć wartość Single. Nie jest wymagana żadna kolumna etykiety. Ten trener wyprowadza następujące kolumny:

Nazwa kolumny wyjściowej Typ kolumny Opis
Score wektor Single Odległość danego punktu danych do centroidów wszystkich klastrów.
PredictedLabel typ klucza Indeks najbliższego klastra przewidywany przez model.

Cechy trenera

Zadanie uczenia maszynowego Klastrowanie
Czy normalizacja jest wymagana? Tak
Czy buforowanie jest wymagane? Tak
Wymagane narzędzie NuGet oprócz Microsoft.ML Brak
Możliwość eksportowania do ONNX Tak

Szczegóły algorytmu trenowania

K-średnich to popularny algorytm klastrowania. W przypadku języka K-średnich dane są grupowane w określoną liczbę klastrów w celu zminimalizowania sumy w obrębie klastra odległości kwadratowych. Ta implementacja jest zgodna z metodą Yinyang K-średnich. Aby wybrać początkowe centeroidy klastra, można użyć jednej z trzech opcji:

  • Inicjowanie losowe. Może to prowadzić do potencjalnie złych przybliżeń optymalnego klastrowania.
  • Metoda K-średnich++. Jest to ulepszony algorytm inicjowania wprowadzony tutaj przez Ding et al., który gwarantuje znalezienie rozwiązania, które jest $O(log K)$ konkurencyjne dla optymalnego rozwiązania K-średnich.
  • K-średnich|| Metoda. Ta metoda została tutaj wprowadzona przez Bahmani i al., i używa metody równoległej, która drastycznie zmniejsza liczbę przebiegów potrzebnych do uzyskania dobrej inicjalizacji.

K-średnich|| to domyślna metoda inicjowania. Inne metody można określić w opcje podczas tworzenia trenera przy użyciu KMeansTrainer(Options).

Funkcja oceniania

Kolumna Score (Wynik) danych wyjściowych zawiera kwadrat odległości $L_2$-norm (tj. odległość euklidesowa) danego wektora wejściowego $\textbf{x}\in \mathbb{R}^n$ do centroidu każdego klastra. Załóżmy, że centriod klastra $c$-th to $\textbf{m}_c \in \mathbb{R}^n$. Wartość $c$-th w kolumnie Score (Wynik) to $d_c = || \textbf{x} — \textbf{m}_c || _2^2$. Przewidywana etykieta to indeks z najmniejszą wartością w wektorze wymiarowym $K$ $[d_{0}, \kropki, d_{K-1}]$, gdzie $K$ to liczba klastrów.

Aby uzyskać więcej informacji na temat języka K-średnich i języka K-średnich++, zobacz: K-średnich K-średnichjęzyka K-średnich++

Zapoznaj się z sekcją Zobacz również, aby uzyskać linki do przykładów użycia.

Pola

FeatureColumn

Kolumna funkcji, której oczekuje trener.

(Odziedziczone po TrainerEstimatorBase<TTransformer,TModel>)
LabelColumn

Kolumna etykiety oczekiwana przez trenera. Może to być null, co oznacza, że etykieta nie jest używana do trenowania.

(Odziedziczone po TrainerEstimatorBase<TTransformer,TModel>)
WeightColumn

Kolumna wagi oczekiwana przez trenera. Może to być null, co oznacza, że waga nie jest używana do trenowania.

(Odziedziczone po TrainerEstimatorBase<TTransformer,TModel>)

Właściwości

Info

Element IEstimator<TTransformer> do trenowania klastra KMeans

Metody

Fit(IDataView)

Trenuje i zwraca wartość ITransformer.

(Odziedziczone po TrainerEstimatorBase<TTransformer,TModel>)
GetOutputSchema(SchemaShape)

Element IEstimator<TTransformer> do trenowania klastra KMeans

(Odziedziczone po TrainerEstimatorBase<TTransformer,TModel>)

Metody rozszerzania

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

Dołącz "punkt kontrolny buforowania" do łańcucha narzędzia do szacowania. Zapewni to, że narzędzia do szacowania podrzędnego zostaną wytrenowane pod kątem buforowanych danych. Warto mieć punkt kontrolny buforowania, zanim trenerzy przejdą wiele danych.

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

Biorąc pod uwagę narzędzie do szacowania, zwróć obiekt opakowujący, który będzie wywoływać delegata po Fit(IDataView) wywołaniu. Często ważne jest, aby narzędzie do szacowania zwracało informacje o tym, co było odpowiednie, dlatego Fit(IDataView) metoda zwraca specjalnie wpisany obiekt, a nie tylko ogólny ITransformerelement . Jednak w tym samym czasie IEstimator<TTransformer> są często tworzone w potoki z wieloma obiektami, więc może być konieczne utworzenie łańcucha narzędzi do szacowania, za pośrednictwem EstimatorChain<TLastTransformer> którego narzędzie do szacowania, dla którego chcemy uzyskać transformator jest pochowany gdzieś w tym łańcuchu. W tym scenariuszu możemy za pomocą tej metody dołączyć delegata, który zostanie wywołany po wywołaniu dopasowania.

Dotyczy

Zobacz też