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(Options).

Vstupní a výstupní sloupce

Vstupními funkcemi musí být 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álenosti daného datového bodu ke všem centroidům shluků.
PredictedLabel klíč typ Nejbližší index clusteru predikovaný modelem.

Charakteristiky trenéra

Úloha strojového učení Klastrování
Vyžaduje se normalizace? Ano
Vyžaduje se ukládání do mezipaměti? Ano
Požadovaný NuGet kromě Microsoft.ML None
Exportovatelné do ONNX Ano

Podrobnosti trénovacího algoritmu

K-means je oblíbený algoritmus clusteringu. Pomocí K-means jsou data seskupené do zadaného počtu shluků, aby se minimalizoval součet čtvercový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 můžete použít jednu ze tří možností:

  • Náhodná inicializace. To může vést k potenciálně špatným aproximacím optimálního clusteringu.
  • Metoda K-means++. Jedná se o vylepšený inicializační algoritmus , který zde představil Ding 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. Tuto metodu zde zavedl Bahmani et al., a používá paralelní metodu, která výrazně 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žnosti při vytváření trenér 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$ s centroidem 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ím vektoru $[d_{0}, \tečky, d_{K-1}]$, kde $K$ je počet shluků.

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

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

Pole

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

Váhový sloupec, který trenér očekává. Může být null, což označuje, že hmotnost není použita pro trénování.

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

Vlastnosti

Name Description
Info

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

Metody

Name Description
Fit(IDataView)

Vlaky a vrací .ITransformer

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

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

Připojte kontrolní bod ukládání do mezipaměti do řetězu odhadce. Tím zajistíte, aby podřízené estimátory byly natrénovány proti datům uloženým 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>)

Vzhledem k estimátoru vraťte objekt obtékání, 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í typ objekt, spíše 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ěz odhadců prostřednictvím IEstimator<TTransformer> místa, kde odhadovač, EstimatorChain<TLastTransformer> pro který chceme získat transformátor, je 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 zavolání fit.

Platí pro

Viz také