Het beste AutoML Framework kiezen

Een head-to-head vergelijking van vier automatische machine learning frameworks op 87 datasets.

Adithya Balaji en Alexander Allen

Invoering

Automatisch machinaal leren (AutoML) kan AI binnen handbereik brengen voor een veel groter publiek. Het biedt een set hulpmiddelen om data science-teams met verschillende ervaringsniveaus te helpen het data science-proces te versnellen. Daarom wordt AutoML aangekondigd als de oplossing om AI te democratiseren. Zelfs met een ervaren team kunt u AutoML gebruiken om het maximale uit beperkte bronnen te halen. Hoewel er gepatenteerde oplossingen zijn die machine learning als een service bieden, is het de moeite waard om te kijken naar de huidige open source-oplossingen die aan deze behoefte voldoen.

In ons vorige stuk hebben we het AutoML-landschap verkend en enkele pakketten gemarkeerd die mogelijk werken voor data science-teams. In dit stuk zullen we de vier genoemde "volledige pijplijn" -oplossingen verkennen: auto_ml, auto-sklearn, TPOT en H2O's AutoML-oplossing.

De sterke en zwakke punten van elk pakket worden gedetailleerd beschreven in onze volledige paper, "Benchmarking Automatic Machine Learning Frameworks". Het artikel bevat ook aanvullende informatie over de methodologie en enkele aanvullende resultaten.

Methodologie

Om een ​​nauwkeurige en eerlijke beoordeling te geven, is een selectie van 87 open datasets, 30 regressie en 57 classificatie gekozen uit OpenML, een online repository van standaard machine learning datasets die op een consistente manier zijn blootgesteld via een REST API. De opsplitsing van gegevenssets biedt een breed voorbeeld van gegevenssets in tabelvorm die kunnen worden aangetroffen bij een probleem met het leren van bedrijfsmachines. Er is veel aandacht besteed aan de keuze van datasets om besmetting van de validatiesets te voorkomen. Auto-Sklearn gebruikt bijvoorbeeld een warme start die al is getraind op een set OpenML-gegevenssets. Datasets zoals deze werden vermeden.

Elk van de vier frameworks, auto_ml, auto-sklearn, TPOT en H2O werden getest met hun voorgestelde parameters, verdeeld over 10 willekeurige seeds per dataset. F1-score (gewogen) en gemiddelde kwadraatfout werden geselecteerd als evaluatiecriteria voor respectievelijk classificatie en regressieproblemen.

Een beperking van 3 uur werd gebruikt om elke AutoML-methode te beperken tot een tijdspanne die een eerste verkennend onderzoek weerspiegelt dat door veel data science-teams is uitgevoerd. Dit resulteert in een geschatte rekentijd van 10.440 uur. Daarom hebben we besloten om de modellen te evalueren met behulp van de batchservice van AWS om de parallellisatie van deze taak af te handelen met behulp van voor C4 compute geoptimaliseerde EC2-instanties die 2 vCPU's en 4 GB geheugen per run toewijzen.

We hebben een 'best-effort'-aanpak gebruikt om ervoor te zorgen dat alle tests zijn voltooid en dat alle tests binnen de limiet van 3 uur ten minste 3 kansen hebben gehad om te slagen. In sommige gevallen resulteerden de rekenomgevingen van AWS Batch en op docker gebaseerd resourcebeheer in onvoorspelbaar gedrag. Om dit te verhelpen, hebben we een aangepaste "bare-metal" -benadering ontwikkeld om AWS Batch op EC2-exemplaren te repliceren met meer verfijnde controle over het beheer van procesgeheugens. In het bijzonder stuurde de docker-geheugenbeheerder een kill-signaal naar het benchmarkingproces als de hoeveelheid geheugen die door het proces werd gebruikt groter was dan de hoeveelheid toegewezen door Batch. Deze harde limiet kan niet worden gewijzigd zonder de instantiegrootte per run sterk te vergroten. Met dezelfde berekeningsbeperkingen hebben we de runs getest die onder deze zeer specifieke omstandigheden mislukten op onze aangepaste 'bare-metal'-implementatie.

Ook tijdens het uitvoeren van deze tests hebben we enkele bugs in de open source frameworks opgelost die in onze volledige paper worden beschreven. Na deze fixes is geen enkele dataset ronduit mislukt. Deze fouten waren meestal verborgen voor dagelijks gebruik, maar kwamen voor tijdens de testschaal die werd uitgevoerd.

resultaten

Afbeelding 1 beschrijft de diversiteit van onze gekozen datasets. U kunt zien dat classificatie doorgaans binair is en dat het aantal regressierijen relatief uniform is, terwijl het aantal rijen van de classificatie scheef ligt in de richting van gegevenssets rond 1000 rijen. Het aantal functies voor zowel regressie- als classificatiecentra ligt rond de 10 functies met een enigszins scheefgetrokken classificatie naar 100. We denken dat deze gegevensgroep een representatieve steekproef is van algemene gegevenswetenschapsproblemen die veel gegevenswetenschappers zouden tegenkomen.

Figuur 1: Ruwe datasetkarakteristieken verdeeld tussen classificatie- en regressieproblemen

Sommige frameworks hadden geen tijd meer voor specifieke zaden en frameworks. In totaal zijn 29 runcombinaties (dataset en seed) verwijderd. Deze runcombinaties werden in alle frameworks weggelaten om de vergelijkbaarheid van individuele frameworks te behouden. Dit proces resulteerde in een totaal van 132 datapunten (29 * 4) die werden weggelaten, wat in totaal ongeveer ~ 3% is (116/3480 runs).

Figuur 2: Framework head to head gemiddelde prestaties over classificatiegegevenssets

Figuur 3: Framework-head-to-head gemiddelde prestaties over regressiegegevenssets

Elk raamwerk werd geëvalueerd op zowel regressie- als classificatiegegevenssets die hierboven zijn vermeld. Hun prestaties werden berekend door de gewogen F1-score en MSE-scores voor datasets per framework te aggregeren. Elke metriek werd gestandaardiseerd op een per datasetbasis over kaders en geschaald van 0 naar 1. In het geval van MSE waren deze waarden omgekeerd, wat betekent dat hogere waarden betere resultaten vertegenwoordigen, zodat de grafieken consistent blijven tussen classificatie en regressievisualisaties. Het gemiddelde voor de 10 beoordeelde zaden vertegenwoordigt de prestaties van een framework voor een specifieke gegevensset. In figuren 2 en 3 duiden donkere tinten op grotere prestatieverschillen.

Figuur 4: Framework-prestaties voor alle classificatiegegevenssets

Afbeelding 5: Framework-prestaties voor alle regressiegegevenssets

We hebben boxplots gebruikt om de raamprestaties hier in figuur 4 en 5 aan te tonen. De inkepingen in de boxplots vertegenwoordigen het betrouwbaarheidsinterval van de media. De gemiddelden en standaarddeviaties in tabel 1 tonen de precieze verschillen.

Tabel 1: Precieze resultaten per kader

Conclusie en interpretatie

Over het algemeen presenteert elke visualisatie en interpretatie hetzelfde beeld. Auto-sklearn presteert het beste op de classificatiegegevenssets en TPOT presteert het beste op regressiegegevenssets. Het is belangrijk om op te merken, dat de kwantitatieve resultaten van dit experiment extreem grote verschillen hebben en daarom is het waarschijnlijk belangrijker om na te denken over de staat van de codebasis, voortdurende ontwikkeling, functieset en doelen van deze individuele frameworks in plaats van de standalone prestaties. We raden zowel TPOT als auto-sklearn aan vanwege deze factoren en vanwege onze interacties met elk van hun gemeenschappen gedurende de tijd dat we aan deze analyse hebben gewerkt.

Elk van de pakketten (Auto-sklearn, TPOT, H2O, Auto_ml), de volledige paper en de implementatie van de benchmarking zijn hier gelinkt.