Delen via


Een ML.NET-algoritme kiezen

Voor elke ML.NET taak zijn er meerdere trainingsalgoritmen waaruit u kunt kiezen. Welke u moet kiezen, is afhankelijk van het probleem dat u probeert op te lossen, de kenmerken van uw gegevens en de reken- en opslagresources die u beschikbaar hebt. Het is belangrijk te weten dat het trainen van een machine learning-model een iteratief proces is. Mogelijk moet u meerdere algoritmen proberen om de algoritmen te vinden die het beste werkt.

Algoritmen werken op functies. Functies zijn numerieke waarden die worden berekend op basis van uw invoergegevens. Ze zijn optimale invoer voor machine learning-algoritmen. U transformeert uw onbewerkte invoergegevens in functies met behulp van een of meer gegevenstransformaties. Tekstgegevens worden bijvoorbeeld omgezet in een set woordenaantallen en woordencombinaties. Zodra de functies zijn geëxtraheerd uit een onbewerkt gegevenstype met behulp van gegevenstransformaties, worden ze aangeduid als featurized. Bijvoorbeeld gemetriseerde tekst of gemetriseerde afbeeldingsgegevens.

Trainer = Algoritme + Taak

Een algoritme is de wiskunde die wordt uitgevoerd om een model te produceren. Verschillende algoritmen produceren modellen met verschillende kenmerken.

Met ML.NET kan hetzelfde algoritme worden toegepast op verschillende taken. Stochastic Dual Coördinaat Ascent kan bijvoorbeeld worden gebruikt voor binaire classificatie, classificatie van meerdere klassen en regressie. Het verschil is in hoe de uitvoer van het algoritme wordt geïnterpreteerd om overeen te komen met de taak.

Voor elke combinatie van algoritmen/taken biedt ML.NET een onderdeel waarmee het trainingsalgoritmen worden uitgevoerd en de interpretatie wordt uitgevoerd. Deze onderdelen worden trainers genoemd. Hierbij wordt bijvoorbeeld SdcaRegressionTrainer het stochasticDualCoördinaatAscent-algoritme gebruikt dat is toegepast op de regressietaak.

Lineaire algoritmen

Lineaire algoritmen produceren een model waarmee scores worden berekend op basis van een lineaire combinatie van de invoergegevens en een set gewichten. De gewichten zijn parameters van het model dat tijdens de training wordt geschat.

Lineaire algoritmen werken goed voor functies die lineair kunnen worden gescheiden.

Voordat u met een lineair algoritme traint, moeten de functies worden genormaliseerd. Hierdoor voorkomt u dat één functie meer invloed heeft op het resultaat dan andere.

In het algemeen zijn lineaire algoritmen schaalbaar, snel, goedkoop om te trainen en goedkoop om te voorspellen. Ze worden geschaald op basis van het aantal functies en ongeveer op basis van de grootte van de trainingsgegevensset.

Lineaire algoritmen maken meerdere doorvoeren over de trainingsgegevens. Als uw gegevensset in het geheugen past, voegt u een cachecontrolepunt toe aan uw ML.NET pijplijn voordat u de trainer toevoegt, zodat de training sneller kan worden uitgevoerd.

Gemiddeld perceptron

Het meest geschikt voor tekstclassificatie.

Trainer Opdracht ONNX exporteerbaar
AveragedPerceptronTrainer Binaire classificatie Ja

Stochastic dual coordinated ascent

Afstemming is niet nodig voor goede standaardprestaties.

Trainer Opdracht ONNX exporteerbaar
SdcaLogisticRegressionBinaryTrainer Binaire classificatie Ja
SdcaNonCalibratedBinaryTrainer Binaire classificatie Ja
SdcaMaximumEntropyMulticlassTrainer Classificatie met meerdere klassen Ja
SdcaNonCalibratedMulticlassTrainer Classificatie met meerdere klassen Ja
SdcaRegressionTrainer Regressie Ja

L-BFGS

Gebruik deze functie wanneer het aantal functies groot is. Produceert logistieke regressietrainingsstatistieken, maar schaalt niet evenals de AveragedPerceptronTrainer.

Trainer Opdracht ONNX exporteerbaar
LbfgsLogisticRegressionBinaryTrainer Binaire classificatie Ja
LbfgsMaximumEntropyMulticlassTrainer Classificatie met meerdere klassen Ja
LbfgsPoissonRegressionTrainer Regressie Ja

Symbolische stochastische gradiëntafname

Snelste en meest nauwkeurige lineaire binaire classificatie trainer. Schaalt goed met het aantal processors.

Trainer Opdracht ONNX exporteerbaar
SymbolicSgdLogisticRegressionBinaryTrainer Binaire classificatie Ja

Online gradiëntafname

Implementeert de standaard (niet-batch) stochastische gradiëntafname, met een keuze aan verliesfuncties en een optie om de gewichtsvector bij te werken met behulp van het gemiddelde van de vectoren die in de loop van de tijd worden gezien.

Trainer Opdracht ONNX exporteerbaar
OnlineGradientDescentTrainer Regressie Ja

Beslissingsstructuuralgoritmen

Beslissingsstructuuralgoritmen maken een model dat een reeks beslissingen bevat: effectief een stroomdiagram door de gegevenswaarden.

Functies hoeven niet lineair gescheiden te zijn om dit type algoritme te kunnen gebruiken. En functies hoeven niet te worden genormaliseerd, omdat de afzonderlijke waarden in de functievector onafhankelijk worden gebruikt in het beslissingsproces.

Beslissingsstructuuralgoritmen zijn over het algemeen zeer nauwkeurig.

Met uitzondering van gegeneraliseerde additieve modellen (GAM's) kunnen structuurmodellen geen uitleg hebben wanneer het aantal functies groot is.

Beslissingsstructuuralgoritmen nemen meer resources in beslag en worden niet zo goed geschaald als lineaire algoritmen. Ze presteren goed voor gegevenssets die in het geheugen passen.

Versterkte beslissingsstructuren zijn een ensemble van kleine bomen waarbij elke boom de invoergegevens beoordeelt en de score doorgeeft aan de volgende boom om een betere score te produceren, enzovoort, waar elke boom in het ensemble de vorige verbetert.

Lichte kleurovergang boosted machine

Snelste en meest nauwkeurige van de binaire classificatiestructuurtrainers. Zeer niet in staat.

Trainer Opdracht ONNX exporteerbaar
LightGbmBinaryTrainer Binaire classificatie Ja
LightGbmMulticlassTrainer Classificatie met meerdere klassen Ja
LightGbmRegressionTrainer Regressie Ja
LightGbmRankingTrainer Rangorde Nee

Snelle boomstructuur

Gebruiken voor gemetriseerde afbeeldingsgegevens. Tolerant voor niet-gebalanceerde gegevens. Zeer niet in staat.

Trainer Opdracht ONNX exporteerbaar
FastTreeBinaryTrainer Binaire classificatie Ja
FastTreeRegressionTrainer Regressie Ja
FastTreeTweedieTrainer Regressie Ja
FastTreeRankingTrainer Rangorde Nee

Snel forest

Werkt goed met ruisgegevens.

Trainer Opdracht ONNX exporteerbaar
FastForestBinaryTrainer Binaire classificatie Ja
FastForestRegressionTrainer Regressie Ja

Gegeneraliseerde additief model (GAM)

Het meest geschikt voor problemen die goed presteren met structuuralgoritmen, maar waarbij uitleg een prioriteit is.

Trainer Opdracht ONNX exporteerbaar
GamBinaryTrainer Binaire classificatie Nee
GamRegressionTrainer Regressie Nee

Matrixfactorisatie

Matrixfactorisatie

Wordt gebruikt voor gezamenlijke filtering in aanbeveling.

Trainer Opdracht ONNX exporteerbaar
MatrixFactorizationTrainer Aanbeveling Nee

Veldbewuste factorisatiemachine

Het meest geschikt voor het parseren van categorische gegevens, met grote gegevenssets.

Trainer Opdracht ONNX exporteerbaar
FieldAwareFactorizationMachineTrainer Binaire classificatie Nee

Metaalgoritmen

Deze trainers maken een multiclass trainer van een binaire trainer. Gebruiken met AveragedPerceptronTrainer, LbfgsLogisticRegressionBinaryTrainer, SymbolicSgdLogisticRegressionBinaryTrainer, , LightGbmBinaryTrainer, FastTreeBinaryTrainer, , , FastForestBinaryTrainer. GamBinaryTrainer

Eén versus alle

Deze classificatie met meerdere klassen traint één binaire classificatie voor elke klasse, die die klasse onderscheidt van alle andere klassen. Is beperkt in schaal door het aantal klassen dat moet worden gecategoraliseerd.

Trainer Opdracht ONNX exporteerbaar
OneVersusAllTrainer Classificatie met meerdere klassen Ja

Paargewijze koppeling

Deze classificatie met meerdere klassen traint een algoritme voor binaire classificatie op elk paar klassen. Is beperkt in schaal met het aantal klassen, omdat elke combinatie van twee klassen moet worden getraind.

Trainer Opdracht ONNX exporteerbaar
PairwiseCouplingTrainer Classificatie met meerdere klassen Nee

K-Means

Wordt gebruikt voor clustering.

Trainer Opdracht ONNX exporteerbaar
KMeansTrainer Clustering Ja

Analyse van principal-onderdelen

Wordt gebruikt voor anomaliedetectie.

Trainer Opdracht ONNX exporteerbaar
RandomizedPcaTrainer Anomaliedetectie Nee

Naive Bayes

Gebruik dit classificatie-algoritme met meerdere klassen wanneer de functies onafhankelijk zijn en de trainingsgegevensset klein is.

Trainer Opdracht ONNX exporteerbaar
NaiveBayesMulticlassTrainer Classificatie met meerdere klassen Ja

Vorige trainer

Gebruik dit algoritme voor binaire classificatie om de prestaties van andere trainers te basislijnen. Om effectief te zijn, moeten de metrische gegevens van de andere trainers beter zijn dan de vorige trainer.

Trainer Opdracht ONNX exporteerbaar
PriorTrainer Binaire classificatie Ja

Ondersteuningsvectormachines

Ondersteuningsvectormachines (SVM's) zijn een zeer populaire en goed onderzochte klasse van leermodellen onder supervisie, die kan worden gebruikt in lineaire en niet-lineaire classificatietaken.

Recent onderzoek heeft zich gericht op manieren om deze modellen te optimaliseren om efficiënt te schalen naar grotere trainingssets.

Lineaire SVM

Voorspelt een doel met behulp van een lineair binair classificatiemodel dat is getraind over booleaanse gelabelde gegevens. Schakelen tussen stochastische gradiëntafnamestappen en projectiestappen.

Trainer Opdracht ONNX exporteerbaar
LinearSvmTrainer Binaire classificatie Ja

Lokale deep SVM

Voorspelt een doel met behulp van een niet-lineair binair classificatiemodel. Vermindert de kosten van de voorspellingstijd; de voorspellingskosten groeien logaritmisch met de grootte van de trainingsset, in plaats van lineair, met een acceptabel verlies in classificatienauwkeurigheid.

Trainer Opdracht ONNX exporteerbaar
LdSvmTrainer Binaire classificatie Ja

Gewone kleinste vierkantjes

Gewone kleinste kwadraten (OLS) is een van de meest gebruikte technieken in lineaire regressie.

Gewone kleinste kwadraten verwijzen naar de verliesfunctie, die een fout berekent als de som van het kwadraat van de werkelijke waarde naar de voorspelde lijn en past bij het model door de kwadratische fout te minimaliseren. Bij deze methode wordt uitgegaan van een sterke lineaire relatie tussen de invoer en de afhankelijke variabele.

Trainer Opdracht ONNX exporteerbaar
OlsTrainer Regressie Ja