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 |