Jak zvolit ML.NET algoritmusHow to choose an ML.NET algorithm

Pro každý úkol ml.NETexistuje několik školicích algoritmů, ze kterých si můžete vybrat.For each ML.NET task, there are multiple training algorithms to choose from. Kterou si zvolíte, záleží na problému, který se snažíte vyřešit, charakteristiky vašich dat a výpočetní prostředky a prostředky úložiště, které máte k dispozici.Which one to choose depends on the problem you are trying to solve, the characteristics of your data, and the compute and storage resources you have available. Je důležité si uvědomit, že školení modelu Machine Learning je iterativní proces.It is important to note that training a machine learning model is an iterative process. Možná budete muset vyzkoušet několik algoritmů, abyste našli ten, který nejlépe vyhovuje.You might need to try multiple algorithms to find the one that works best.

Algoritmy fungují na funkcích.Algorithms operate on features. Funkce jsou číselné hodnoty vypočítané ze vstupních dat.Features are numerical values computed from your input data. Jsou to optimální vstupy pro algoritmy strojového učení.They are optimal inputs for machine learning algorithms. Nezpracované vstupní data můžete transformovat na funkce pomocí jedné nebo více transformací dat.You transform your raw input data into features using one or more data transforms. Například textová data jsou transformovaná na sadu slov počty slov a počet kombinací slov.For example, text data is transformed into a set of word counts and word combination counts. Po extrakci funkcí z nezpracovaných datových typů pomocí transformací dat se označují jako natrénuje.Once the features have been extracted from a raw data type using data transforms, they are referred to as featurized. Například natrénuje text nebo natrénuje data obrázku.For example, featurized text, or featurized image data.

Trainer = Algorithm + úlohaTrainer = Algorithm + Task

Algoritmus je matematický, který se spouští k vytvoření modelu.An algorithm is the math that executes to produce a model. Různé algoritmy vytváří modely s různými charakteristikami.Different algorithms produce models with different characteristics.

Pomocí ML.NET je možné použít stejný algoritmus pro různé úlohy.With ML.NET, the same algorithm can be applied to different tasks. Například stochastického Dual koordinované stoupání lze použít pro binární klasifikaci, více tříd a regresi.For example, Stochastic Dual Coordinated Ascent can be used for Binary Classification, Multiclass Classification, and Regression. Rozdíl je ve způsobu, jakým je výstup algoritmu interpretován tak, aby odpovídal úkolu.The difference is in how the output of the algorithm is interpreted to match the task.

Pro každou kombinaci algoritmu a úlohy ML.NET poskytuje komponentu, která spustí školicí algoritmus a provede výklad.For each algorithm/task combination, ML.NET provides a component that executes the training algorithm and does the interpretation. Tyto komponenty se nazývají školitele.These components are called trainers. SdcaRegressionTrainer například používá algoritmus StochasticDualCoordinatedAscent použitý pro regresní úlohu.For example, the SdcaRegressionTrainer uses the StochasticDualCoordinatedAscent algorithm applied to the Regression task.

Lineární algoritmyLinear algorithms

Lineární algoritmy vytvoří model, který vypočítá skóre z lineární kombinace vstupních dat a sady vah.Linear algorithms produce a model that calculates scores from a linear combination of the input data and a set of weights. Váhy jsou parametry modelu odhadované během školení.The weights are parameters of the model estimated during training.

Lineární algoritmy fungují dobře pro funkce, které jsou lineárně oddělitelné.Linear algorithms work well for features that are linearly separable.

Před školením pomocí lineárního algoritmu by měly být tyto funkce normalizovány.Before training with a linear algorithm, the features should be normalized. To brání tomu, aby jedna funkce měla větší vliv na výsledek než jiné.This prevents one feature having more influence over the result than others.

V obecných lineárních algoritmech jsou škálovatelné a rychlé a levné na vlaky až po předpověď.In general linear algorithms are scalable and fast, cheap to train, cheap to predict. Škálují se podle počtu funkcí a přibližně podle velikosti sady školicích dat.They scale by the number of features and approximately by the size of the training data set.

Lineární algoritmy umožňují více průchodů školicích dat.Linear algorithms make multiple passes over the training data. Pokud se vaše datová sada vejde do paměti, pak před připojením Trainer přidejte kontrolní bod mezipaměti do kanálu ml.NET, aby se školení spouštělo rychleji.If your dataset fits into memory, then adding a cache checkpoint to your ML.NET pipeline before appending the trainer, will make the training run faster.

Lineární školitelLinear Trainers

AlgoritmusAlgorithm VlastnostiProperties ŠkoliteléTrainers
Průměrná PerceptronAveraged perceptron Nejlepší pro klasifikaci textuBest for text classification AveragedPerceptronTrainer
Stochastického Dual koordinovaný stoupáníStochastic dual coordinated ascent Ladění není nutné pro dobrý výchozí výkon.Tuning not needed for good default performance SdcaLogisticRegressionBinaryTrainer SdcaNonCalibratedBinaryTrainer SdcaMaximumEntropyMulticlassTrainer SdcaNonCalibratedMulticlassTrainer SdcaRegressionTrainerSdcaLogisticRegressionBinaryTrainer SdcaNonCalibratedBinaryTrainer SdcaMaximumEntropyMulticlassTrainer SdcaNonCalibratedMulticlassTrainer SdcaRegressionTrainer
L-BFGSL-BFGS Použijte, pokud je počet funkcí velký.Use when number of features is large. Vytvoří logistické regresní statistiky, ale nemění škálu a také AveragedPerceptronTrainer.Produces logistic regression training statistics, but doesn't scale as well as the AveragedPerceptronTrainer LbfgsLogisticRegressionBinaryTrainer LbfgsMaximumEntropyMulticlassTrainer LbfgsPoissonRegressionTrainerLbfgsLogisticRegressionBinaryTrainer LbfgsMaximumEntropyMulticlassTrainer LbfgsPoissonRegressionTrainer
Symbol klesání na symbolický stochastickéhoSymbolic stochastic gradient descent Nejrychlejší a nejpřesnější lineární binární klasifikace Trainer.Fastest and most accurate linear binary classification trainer. Škálujte dobře pomocí počtu procesorů.Scales well with number of processors SymbolicSgdLogisticRegressionBinaryTrainer

Algoritmy rozhodovacího stromuDecision tree algorithms

Algoritmy rozhodovacího stromu vytvoří model, který obsahuje řadu rozhodnutí: efektivní tok grafu prostřednictvím hodnot dat.Decision tree algorithms create a model that contains a series of decisions: effectively a flow chart through the data values.

Pro použití tohoto typu algoritmu nemusíte lineárně dělit funkce.Features do not need to be linearly separable to use this type of algorithm. Funkce a nemusí být normalizovány, protože jednotlivé hodnoty ve vektoru funkce jsou používány nezávisle v rámci rozhodovacího procesu.And features do not need to be normalized, because the individual values in the feature vector are used independently in the decision process.

Algoritmy rozhodovacího stromu jsou všeobecně velmi přesné.Decision tree algorithms are generally very accurate.

S výjimkou Generalizických přídatných modelů (GAMs) mohou stromové modely při velkém počtu funkcí chybět vysvětlení.Except for Generalized Additive Models (GAMs), tree models can lack explainability when the number of features is large.

Algoritmy rozhodovacího stromu přijímají více prostředků a neškálují se i lineární.Decision tree algorithms take more resources and do not scale as well as linear ones do. U datových sad, které se dají umístit do paměti, se dobře plní.They do perform well on datasets that can fit into memory.

Posílené rozhodovací stromy jsou množinou malých stromů, kde každý z nich vyhodnotí vstupní data a předá skóre do dalšího stromu, aby se vytvořilo lepší skóre, a tak dále, kde se jednotlivé stromové struktury v kompletu zlepšují na předchozí.Boosted decision trees are an ensemble of small trees where each tree scores the input data and passes the score onto the next tree to produce a better score, and so on, where each tree in the ensemble improves on the previous.

Školitele rozhodovacího stromuDecision tree trainers

AlgoritmusAlgorithm VlastnostiProperties ŠkoliteléTrainers
Světlý nárůst přechodu na počítačLight gradient boosted machine Nejrychlejší a nejpřesnější v binárním stromu klasifikace.Fastest and most accurate of the binary classification tree trainers. Vysoce přizpůsobitelnéHighly tunable LightGbmBinaryTrainer LightGbmMulticlassTrainer LightGbmRegressionTrainer LightGbmRankingTrainerLightGbmBinaryTrainer LightGbmMulticlassTrainer LightGbmRegressionTrainer LightGbmRankingTrainer
Rychlý stromFast tree Používá se pro natrénuje obrazová data.Use for featurized image data. Odolná vůči nevyváženým datům.Resilient to unbalanced data. Vysoce přizpůsobitelnéHighly tunable FastTreeBinaryTrainer FastTreeRegressionTrainer FastTreeTweedieTrainer FastTreeRankingTrainerFastTreeBinaryTrainer FastTreeRegressionTrainer FastTreeTweedieTrainer FastTreeRankingTrainer
Rychlá doménová strukturaFast forest Dobře funguje s daty o hlučnostiWorks well with noisy data FastForestBinaryTrainerFastForestRegressionTrainerFastForestBinaryTrainer FastForestRegressionTrainer
Model generalizované doplňkové látky (GAM)Generalized additive model (GAM) Nejvhodnější pro problémy, které se dobře provádějí s algoritmy stromu, ale pokud je tato světlá prioritaBest for problems that perform well with tree algorithms but where explainability is a priority GamBinaryTrainerGamRegressionTrainerGamBinaryTrainer GamRegressionTrainer

Faktoring pro vytváření maticMatrix factorization

VlastnostiProperties ŠkoliteléTrainers
Nejlepší pro zhuštěná kategorií data s velkými datovými sadamiBest for sparse categorical data, with large datasets FieldAwareFactorizationMachineTrainer

Meta algoritmyMeta algorithms

Tyto školitele vytvoří Trainer s více třídami z binárního Trainer.These trainers create a multi-class trainer from a binary trainer. Použijte s AveragedPerceptronTrainer, LbfgsLogisticRegressionBinaryTrainer, SymbolicSgdLogisticRegressionBinaryTrainer, LightGbmBinaryTrainer, FastTreeBinaryTrainer, FastForestBinaryTrainer, GamBinaryTrainer.Use with AveragedPerceptronTrainer, LbfgsLogisticRegressionBinaryTrainer, SymbolicSgdLogisticRegressionBinaryTrainer, LightGbmBinaryTrainer, FastTreeBinaryTrainer, FastForestBinaryTrainer, GamBinaryTrainer.

AlgoritmusAlgorithm VlastnostiProperties ŠkoliteléTrainers
Jedna oproti všemOne versus all Tato třída třídění s více třídami navlakuje jeden binární klasifikátor pro každou třídu, který rozlišuje tuto třídu od všech ostatních tříd.This multiclass classifier trains one binary classifier for each class, which distinguishes that class from all other classes. Má omezené škálování podle počtu tříd pro kategorizaci.Is limited in scale by the number of classes to categorize OneVersusAllTrainer<BinaryClassificationTrainer >OneVersusAllTrainer<BinaryClassificationTrainer>
Párový párováníPairwise coupling Tento klasifikační klasifikátory navlakují binární klasifikační algoritmus na každou dvojici tříd.This multiclass classifier trains a binary classification algorithm on each pair of classes. Má omezené škálování podle počtu tříd, protože každá kombinace dvou tříd musí být vyškolená.Is limited in scale by the number of classes, as each combination of two classes must be trained. PairwiseCouplingTrainer<BinaryClassificationTrainer >PairwiseCouplingTrainer<BinaryClassificationTrainer>

K-znamenáK-Means

VlastnostiProperties ŠkoliteléTrainers
Použít pro clusteringuUse for clustering KMeansTrainer

Analýza hlavní komponentyPrincipal component analysis

VlastnostiProperties ŠkoliteléTrainers
Použít pro detekci anomáliíUse for anomaly detection RandomizedPcaTrainer

Naive BayesNaive Bayes

VlastnostiProperties ŠkoliteléTrainers
Použijte tuto Trainer klasifikaci s více třídami, pokud jsou funkce nezávislé a datová sada pro školení je malá.Use this multi-class classification trainer when the features are independent, and the training dataset is small. NaiveBayesMulticlassTrainer

Předchozí TrainerPrior Trainer

VlastnostiProperties ŠkoliteléTrainers
Pomocí této binární klasifikace Trainer můžete podle směrného plánu vyhodnotit výkon jiné školitele.Use this binary classification trainer to baseline the performance of other trainers. Aby bylo možné platit, metriky druhé školitele by měly být lepší než předchozí Trainer.To be effective, the metrics of the other trainers should be better than the prior trainer. PriorTrainer