Jak zvolit algoritmus ML.NET

Pro každou ML.NET úlohu si můžete vybrat z více trénovacích algoritmů. Který z možností zvolíte, závisí na problému, který se pokoušíte vyřešit, charakteristikách dat a výpočetních prostředcích a prostředcích úložiště, které máte k dispozici. Je důležité si uvědomit, že trénování modelu strojového učení je iterativní proces. Možná budete muset vyzkoušet několik algoritmů, abyste našli ten, který funguje nejlépe.

Algoritmy pracují s funkcemi. Funkce jsou číselné hodnoty vypočítané ze vstupních dat. Jsou optimálními vstupy pro algoritmy strojového učení. Nezpracovaná vstupní data transformujete na funkce pomocí jedné nebo více transformací dat. Textová data se například transformují do sady počtů slov a počtu kombinací slov. Jakmile se funkce extrahují z nezpracovaného datového typu pomocí transformací dat, označují se jako featurizované. Například featurizovaný text nebo featurizovaná data obrázků.

Trainer = Algoritmus + úkol

Algoritmus je matematika, která se spouští za účelem vytvoření modelu. Různé algoritmy vytvářejí modely s různými charakteristikami.

U ML.NET lze stejný algoritmus použít u různých úloh. Například Stochastic Dual Coordinate Ascent lze použít pro binární klasifikaci, vícetřídovou klasifikaci a regresi. Rozdíl spočívá v tom, jak se výstup algoritmu interpretuje tak, aby odpovídal úkolu.

Pro každou kombinaci algoritmů a úloh ML.NET poskytuje komponentu, která spouští trénovací algoritmus a provádí interpretaci. Tyto komponenty se nazývají trenéři. SdcaRegressionTrainer Například používá algoritmus StochasticDualCoordinatedAscent použitý na regresní úlohu.

Lineární algoritmy

Lineární algoritmy vytvářejí model, který vypočítá skóre z lineární kombinace vstupních dat a sady hmotností. Váhy jsou parametry modelu odhadované během trénování.

Lineární algoritmy fungují dobře pro funkce, které jsou lineárně oddělitelné.

Před trénováním pomocí lineárního algoritmu by měly být funkce normalizovány. Zabráníte tak tomu, aby jedna funkce měla větší vliv na výsledek než ostatní.

Obecně platí, že lineární algoritmy jsou škálovatelné, rychlé, levné pro trény a levné k predikci. Škálují se podle počtu funkcí a přibližně podle velikosti trénovací sady dat.

Lineární algoritmy umožňují více průchodů trénovacími daty. Pokud vaše datová sada zapadá do paměti, přidáním kontrolního bodu mezipaměti do kanálu ML.NET před připojením trenéra se trénování urychlí.

Průměr perceptron

Nejvhodnější pro klasifikaci textu.

Trenér Úloha ONNX Exportable
AveragedPerceptronTrainer Binární klasifikace Ano

Stochastický duální koordinovaný ascent

Ladění není potřeba pro dobrý výchozí výkon.

Trenér Úloha ONNX Exportable
SdcaLogisticRegressionBinaryTrainer Binární klasifikace Ano
SdcaNonCalibratedBinaryTrainer Binární klasifikace Ano
SdcaMaximumEntropyMulticlassTrainer Klasifikace s více třídami Ano
SdcaNonCalibratedMulticlassTrainer Klasifikace s více třídami Ano
SdcaRegressionTrainer Regrese Ano

L-BFGS

Používá se, když je velký počet funkcí. Vytváří statistiky trénování logistické regrese, ale neškálí ani AveragedPerceptronTrainer.

Trenér Úloha ONNX Exportable
LbfgsLogisticRegressionBinaryTrainer Binární klasifikace Ano
LbfgsMaximumEntropyMulticlassTrainer Klasifikace s více třídami Ano
LbfgsPoissonRegressionTrainer Regrese Ano

Symbolický stochastický gradientní sestup

Nejrychlejší a nejpřesnější trenér lineární binární klasifikace. Škáluje se dobře s počtem procesorů.

Trenér Úloha ONNX Exportable
SymbolicSgdLogisticRegressionBinaryTrainer Binární klasifikace Ano

Online gradientní sestup

Implementuje standardní stochastický gradientní sestup (bez dávky) s výběrem funkcí ztráty a možnost aktualizovat vektor hmotnosti pomocí průměru vektorů, které se v průběhu času zobrazují.

Trenér Úloha ONNX Exportable
OnlineGradientDescentTrainer Regrese Ano

Algoritmy rozhodovacího stromu

Algoritmy rozhodovacího stromu vytvářejí model, který obsahuje řadu rozhodnutí: efektivní vývojový graf prostřednictvím datových hodnot.

Aby bylo možné tento typ algoritmu použít, nemusí být funkce lineárně oddělitelné. A funkce nemusí být normalizovány, protože jednotlivé hodnoty v vektoru funkce se používají nezávisle na rozhodovacím procesu.

Algoritmy rozhodovacího stromu jsou obecně velmi přesné.

S výjimkou generalizovaných doplňkových modelů (GAM) můžou stromové modely chybět v případě, že je velký počet funkcí.

Algoritmy rozhodovacího stromu přebírají více prostředků a nedají se škálovat ani lineární. Dobře fungují u datových sad, které se dají umístit do paměti.

Posílené rozhodovací stromy jsou soubor malých stromů, kde každý strom vyhodnotí vstupní data a předá skóre na další strom, aby se vytvořilo lepší skóre, a tak dále, kde se každý strom v souboru zlepšuje na předchozím.

Lehký přechodový zesílený stroj

Nejrychlejší a nejpřesnější trenéry binárního klasifikačního stromu. Vysoce vyladěný.

Trenér Úloha ONNX Exportable
LightGbmBinaryTrainer Binární klasifikace Ano
LightGbmMulticlassTrainer Klasifikace s více třídami Ano
LightGbmRegressionTrainer Regrese Ano
LightGbmRankingTrainer Hodnocení No

Rychlý strom

Používá se pro featurizovaná data obrázků. Odolné vůči nevyváženým datům. Vysoce vyladěný.

Trenér Úloha ONNX Exportable
FastTreeBinaryTrainer Binární klasifikace Ano
FastTreeRegressionTrainer Regrese Ano
FastTreeTweedieTrainer Regrese Ano
FastTreeRankingTrainer Hodnocení No

Rychlá doménová struktura

Dobře funguje s hlučnými daty.

Trenér Úloha ONNX Exportable
FastForestBinaryTrainer Binární klasifikace Ano
FastForestRegressionTrainer Regrese Ano

Generalizovaný doplňkový model (GAM)

Nejvhodnější pro problémy, které dobře fungují se stromovými algoritmy, ale kde je priorita vysvětlitelnosti.

Trenér Úloha ONNX Exportable
GamBinaryTrainer Binární klasifikace No
GamRegressionTrainer Regrese No

Faktorizace matice

Faktorizace matice

Používá se k filtrování podle doporučení pro spolupráci.

Trenér Úloha ONNX Exportable
MatrixFactorizationTrainer Doporučení No

Field Aware Factorization Machine

Nejvhodnější pro řídká data zařazená do kategorií s velkými datovými sadami.

Trenér Úloha ONNX Exportable
FieldAwareFactorizationMachineTrainer Binární klasifikace No

Meta algoritmy

Tito trenéři vytvářejí vícetřídní trenéra z binárního trenéra. Použití s AveragedPerceptronTrainer, , SymbolicSgdLogisticRegressionBinaryTrainerLbfgsLogisticRegressionBinaryTrainer, LightGbmBinaryTrainer, FastTreeBinaryTrainer, , FastForestBinaryTrainer. GamBinaryTrainer.

Jedna versus vše

Tento klasifikátor s více třídami trénuje jeden binární klasifikátor pro každou třídu, který tuto třídu rozlišuje od všech ostatních tříd. Je omezena počtem tříd, které se mají zařadit do kategorií.

Trenér Úloha ONNX Exportable
OneVersusAllTrainer Klasifikace s více třídami Ano

Párová spojka

Tento klasifikátor s více třídami trénuje binární klasifikační algoritmus pro každou dvojici tříd. Je omezena počtem tříd, protože každá kombinace dvou tříd musí být trénována.

Trenér Úloha ONNX Exportable
PairwiseCouplingTrainer Klasifikace s více třídami No

K-Means

Používá se pro clustering.

Trenér Úloha ONNX Exportable
KMeansTrainer Clustering Ano

Analýza hlavních komponent

Používá se k detekci anomálií.

Trenér Úloha ONNX Exportable
RandomizedPcaTrainer Detekce anomálií No

Naivní Bayesovy klasifikátory

Tento klasifikační algoritmus s více třídami použijte, pokud jsou funkce nezávislé a trénovací datová sada je malá.

Trenér Úloha ONNX Exportable
NaiveBayesMulticlassTrainer Klasifikace s více třídami Ano

Předchozí trenér

Tento binární klasifikační algoritmus použijte ke standardnímu výkonu jiných trenérů. Aby byla efektivita, měly by být metriky ostatních trenérů lepší než předchozí trenér.

Trenér Úloha ONNX Exportable
PriorTrainer Binární klasifikace Ano

Podpůrné vektorové počítače

Metody SVM (Support Vector Machines) jsou velmi populární a dobře prozkoumávané třídy modelů učení pod dohledem, které lze použít v lineárních a nelineárních klasifikačních úkolech.

Nedávný výzkum se zaměřuje na způsoby optimalizace těchto modelů tak, aby efektivně škáloval na větší trénovací sady.

Lineární SVM

Predikuje cíl pomocí lineárního binárního klasifikačního modelu natrénovaného na základě logických dat označených popiskem. Střídá se mezi stochastickým gradientním sestupem a projekčními kroky.

Trenér Úloha ONNX Exportable
LinearSvmTrainer Binární klasifikace Ano

Místní hloubkové SVM

Předpovídá cíl pomocí nelineárního binárního klasifikačního modelu. Snižuje náklady na dobu předpovědí; náklady na predikci rostou logaritmicky s velikostí trénovací sady, nikoli lineárně, s tolerovatelnou ztrátou přesnosti klasifikace.

Trenér Úloha ONNX Exportable
LdSvmTrainer Binární klasifikace Ano

Obyčejné nejmenší čtverce

Běžné nejmenší čtverce (OLS) je jednou z nejčastěji používaných technik lineární regrese.

Běžné nejmenší čtverce odkazují na funkci ztráty, která vypočítá chybu jako součet čtverců vzdálenosti od skutečné hodnoty k předpovězené přímce a odpovídá modelu minimalizací kvadratická chyba. Tato metoda předpokládá silný lineární vztah mezi vstupy a závislými proměnnými.

Trenér Úloha ONNX Exportable
OlsTrainer Regrese Ano