Sdílet prostřednictvím


KMeansTrainer Třída

Definice

Trénování IEstimator<TTransformer> clustereru 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)
Dědičnost

Poznámky

K vytvoření tohoto trenéra použijte KMeans nebo Kmeans(Možnosti).

Vstupní a výstupní sloupce

Vstupní funkce musí obsahovat Singledata sloupce . Není potřeba žádný sloupec popisku. Tento trenér vypíše následující sloupce:

Název výstupního sloupce Typ sloupce Description
Score vektoru Single Vzdálenost daného datového bodu ke všem centroidům clusterů.
PredictedLabel typ klíče Nejbližší index clusteru předpovězený modelem

Charakteristiky trenéra

Úloha strojového učení Clustering
Vyžaduje se normalizace? Yes
Vyžaduje se ukládání do mezipaměti? Yes
Povinné nuGet kromě Microsoft.ML Žádné
Exportovatelný do ONNX Yes

Podrobnosti o trénovacím algoritmu

K-means je oblíbený algoritmus clusteringu. Pomocí K-means se data seskupují do zadaného počtu clusterů, aby se minimalizoval součet kvadratových vzdáleností v rámci clusteru. Tato implementace se řídí metodou Yinyang K-means. Pro výběr počátečních centeroidů clusteru lze použít jednu ze tří možností:

  • Náhodné inicializace To může vést k potenciálně špatným aproximací optimálního clusteringu.
  • Metoda K-means++ Jedná se o vylepšený inicializační algoritmus zavedený zde Dingem et al., který zaručuje nalezení řešení, které je $O(log K)$ konkurenceschopné pro optimální řešení K-means.
  • The K-means|| Metoda. Tato metoda byla zde představena Bahmani et al., a používá paralelní metodu, která drasticky snižuje počet průchodů potřebných k získání dobré inicializace.

K-means|| je výchozí inicializační metoda. Ostatní metody lze zadat v možnostech při vytváření trenéra pomocí KMeansTrainer(Options).

Bodovací funkce

Sloupec Skóre výstupu obsahuje čtverec vzdálenosti $L_2$norm (tj. Euclidean vzdálenost) daného vstupního vektoru $\textbf{x}\in \mathbb{R}^n$ do centroidu každého clusteru. Předpokládejme, že centriod clusteru $c$-th je $\textbf{m}_c \in \mathbb{R}^n$. Hodnota $c$-th ve sloupci Skóre by byla $d_c = || \textbf{x} – \textbf{m}_c || _2^2$. Predikovaný popisek je index s nejmenší hodnotou v $K$ dimenzionální vektor $[d_{0}, \tečky, d_{K-1}]$, kde $K$ je počet clusterů.

Další informace o K-means a K-means++ najdete v tématu: K-meansK-means K-means++

V části Viz také najdete odkazy na příklady použití.

Pole

FeatureColumn

Sloupec funkcí, který trenér očekává.

(Zděděno od TrainerEstimatorBase<TTransformer,TModel>)
LabelColumn

Sloupec popisku, který trenér očekává. Může to být null, což označuje, že popisek se nepoužívá pro trénování.

(Zděděno od TrainerEstimatorBase<TTransformer,TModel>)
WeightColumn

Sloupec hmotnosti, který trenér očekává. Může být null, což značí, že váha se nepoužívá pro trénování.

(Zděděno od TrainerEstimatorBase<TTransformer,TModel>)

Vlastnosti

Info

Trénování IEstimator<TTransformer> clustereru KMeans

Metody

Fit(IDataView)

Vlaky a vrátí ITransformerhodnotu .

(Zděděno od TrainerEstimatorBase<TTransformer,TModel>)
GetOutputSchema(SchemaShape)

Trénování IEstimator<TTransformer> clustereru KMeans

(Zděděno od TrainerEstimatorBase<TTransformer,TModel>)

Metody rozšíření

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

Připojte k řetězci odhadu kontrolní bod ukládání do mezipaměti. Tím zajistíte, aby se podřízené estimátory natrénovaly na data uložená v mezipaměti. Před průchodem více dat je užitečné mít kontrolní bod ukládání do mezipaměti.

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

Pokud získáte odhadátor, vraťte obtékání objektu, který jednou zavolá delegáta Fit(IDataView) . Často je důležité, aby estimátor vrátil informace o tom, co bylo vhodné, což je důvod, proč Fit(IDataView) metoda vrací konkrétně zadaný objekt, a ne jen obecné ITransformer. Ve stejnou dobu se však často vytvářejí do kanálů s mnoha objekty, takže možná budeme muset vytvořit řetězec odhadovačů prostřednictvím EstimatorChain<TLastTransformer> toho, kde je odhadovač, IEstimator<TTransformer> pro který chceme získat transformátor, uložen někde v tomto řetězu. Pro tento scénář můžeme prostřednictvím této metody připojit delegáta, který bude volána po volání fit.

Platí pro

Viz také