KMeansTrainer Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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 |
WeightColumn |
Sloupec hmotnosti, který trenér očekává. Může být |
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. |