Delen via


Veelgestelde vragen over prognoses in AutoML

VAN TOEPASSING OP: Python SDK azure-ai-ml v2 (actueel)

In dit artikel vindt u antwoorden op veelgestelde vragen over prognoses in automatische machine learning (AutoML). Zie het artikel Overzicht van prognosemethoden in AutoML voor algemene informatie over de prognosemethodologie in AutoML .

Hoe kan ik beginnen met het bouwen van prognosemodellen in AutoML?

U kunt beginnen door het artikel AutoML instellen te lezen om een artikel over het voorspellen van een tijdreeks te trainen. U kunt ook praktijkvoorbeelden vinden in verschillende Jupyter-notebooks:

Waarom is AutoML traag voor mijn gegevens?

We werken er altijd aan om AutoML sneller en schaalbaarder te maken. Als u wilt werken als een algemeen prognoseplatform, voert AutoML uitgebreide gegevensvalidaties en complexe functie-engineering uit en zoekt het naar een grote modelruimte. Deze complexiteit kan veel tijd vergen, afhankelijk van de gegevens en de configuratie.

Een veelvoorkomende bron van trage runtime is het trainen van AutoML met standaardinstellingen voor gegevens die talloze tijdreeksen bevatten. De kosten van veel voorspellingsmethoden worden geschaald met het aantal reeksen. Methoden zoals Exponentieel gladmaken en Prophet trainen bijvoorbeeld een model voor elke tijdreeks in de trainingsgegevens.

De functie Veel modellen van AutoML wordt naar deze scenario's geschaald door trainingstaken over een rekencluster te distribueren. Het is toegepast op gegevens met miljoenen tijdreeksen. Zie de sectie met veel modellen voor meer informatie. U kunt ook lezen over het succes van Veel modellen op een gegevensset met een hoge profielconcurrentie.

Hoe kan ik AutoML sneller maken?

Zie waarom is AutoML traag voor mijn gegevens? antwoord om te begrijpen waarom AutoML in uw geval traag kan zijn.

Houd rekening met de volgende configuratiewijzigingen die uw taak kunnen versnellen:

  • Tijdreeksmodellen zoals ARIMA en Prophet blokkeren.
  • Schakel terugblikfuncties, zoals vertragingen en lopende vensters, uit.
  • Reduceren:
    • Het aantal experimenten/iteraties.
    • Time-out voor proefversie/iteratie.
    • Time-out voor experiment.
    • Het aantal kruisvalidatievouws.
  • Zorg ervoor dat vroegtijdige beëindiging is ingeschakeld.

Welke modelleringsconfiguratie moet ik gebruiken?

AutoML-prognose ondersteunt vier basisconfiguraties:

Configuratie Scenario Voordelen Nadelen
Standaard AutoML Aanbevolen als de gegevensset een klein aantal tijdreeksen heeft die ongeveer hetzelfde historisch gedrag hebben. - Eenvoudig te configureren vanuit code/SDK of Azure Machine Learning-studio.

- AutoML kan in verschillende tijdreeksen leren omdat de regressiemodellen alle reeksen in de training groeperen. Zie Modelgroepering voor meer informatie.
- Regressiemodellen zijn mogelijk minder nauwkeurig als de tijdreeks in de trainingsgegevens afwijkend gedrag heeft.

- Het trainen van tijdreeksmodellen kan lang duren als de trainingsgegevens een groot aantal reeksen hebben. Zie waarom is AutoML traag voor mijn gegevens? voor meer informatie.
AutoML met deep learning Aanbevolen voor gegevenssets met meer dan 1000 waarnemingen en, mogelijk, talloze tijdreeksen die complexe patronen vertonen. Wanneer deze functie is ingeschakeld, zal AutoML tijdens de training tijdelijke TCN-modellen (convolutionele neurale netwerken) opschonen. Zie Deep Learning inschakelen voor meer informatie. - Eenvoudig te configureren vanuit code/SDK of Azure Machine Learning-studio.

- Mogelijkheden voor cross learning, omdat de TCN gegevens in alle reeksen poolt.

- Mogelijk hogere nauwkeurigheid vanwege de grote capaciteit van DNN-modellen (Deep Neural Network). Zie Prognosemodellen in AutoML voor meer informatie.
- Training kan veel langer duren vanwege de complexiteit van DNN-modellen.

- Reeksen met kleine hoeveelheden geschiedenis zullen waarschijnlijk niet profiteren van deze modellen.
Veel modellen Aanbevolen als u een groot aantal prognosemodellen op een schaalbare manier moet trainen en beheren. Zie de sectie met veel modellen voor meer informatie. -Schaalbare.

- Mogelijk hogere nauwkeurigheid wanneer tijdreeksen afwijken van elkaar.
- Geen leren in tijdreeksen.

- U kunt veel modellentaken niet configureren of uitvoeren vanuit Azure Machine Learning-studio. Alleen de code/SDK-ervaring is momenteel beschikbaar.
Hiërarchische tijdreeks (HTS) Aanbevolen als de reeks in uw gegevens een geneste, hiërarchische structuur heeft en u prognoses moet trainen of maken op geaggregeerde niveaus van de hiërarchie. Zie de sectie hiërarchische tijdreeksprognoses voor meer informatie. - Training op geaggregeerde niveaus kan ruis in de tijdreeks van het leaf-knooppunt verminderen en mogelijk leiden tot modellen met een hogere nauwkeurigheid.

- U kunt prognoses voor elk niveau van de hiërarchie ophalen door prognoses van het trainingsniveau samen te aggregatie of af te splitsen.
- U moet het aggregatieniveau voor training opgeven. AutoML heeft momenteel geen algoritme om een optimaal niveau te vinden.

Notitie

We raden u aan rekenknooppunten met GPU's te gebruiken wanneer Deep Learning is ingeschakeld om optimaal te profiteren van een hoge DNN-capaciteit. Trainingstijd kan veel sneller zijn in vergelijking met knooppunten met alleen CPU's. Zie het artikel over de grootte van virtuele machines die zijn geoptimaliseerd voor GPU voor meer informatie.

Notitie

HTS is ontworpen voor taken waarbij training of voorspelling vereist is op geaggregeerde niveaus in de hiërarchie. Voor hiërarchische gegevens waarvoor alleen training en voorspelling van leaf-knooppunten is vereist, gebruikt u in plaats daarvan veel modellen .

Hoe kan ik overfitting en gegevenslekken voorkomen?

AutoML maakt gebruik van best practices voor machine learning, zoals kruisvalideerde modelselectie, waarmee veel problemen met overfitting worden beperkt. Er zijn echter andere mogelijke bronnen van overfitting:

  • De invoergegevens bevatten functiekolommen die zijn afgeleid van het doel met een eenvoudige formule. Een functie die een exact veelvoud van het doel is, kan bijvoorbeeld resulteren in een bijna perfecte trainingsscore. Het model zal echter waarschijnlijk niet generaliseren naar out-of-sample-gegevens. We raden u aan om de gegevens vóór het trainen van modellen te verkennen en kolommen te verwijderen die de doelinformatie 'lekken'.

  • De trainingsgegevens maken gebruik van functies die in de toekomst niet bekend zijn, tot aan de prognose horizon. Bij regressiemodellen van AutoML wordt er momenteel van uitgegaan dat alle functies bekend zijn bij de prognose horizon. We raden u aan uw gegevens te verkennen voorafgaand aan de training en alle functiekolommen te verwijderen die alleen historisch bekend zijn.

  • Er zijn aanzienlijke structurele verschillen (regimewijzigingen) tussen de training, validatie of testgedeelten van de gegevens. Denk bijvoorbeeld aan het effect van de COVID-19-pandemie op aanvraag voor bijna elk goed in 2020 en 2021. Dit is een klassiek voorbeeld van een regimewijziging. Overfitting als gevolg van regimewijziging is het meest uitdagende probleem om op te lossen, omdat het zeer afhankelijk is van scenario's en grondige kennis kan vereisen om te identificeren.

    Probeer als eerste verdedigingslinie 10 tot 20 procent van de totale geschiedenis voor validatiegegevens of kruisvalidatiegegevens te reserveren. Het is niet altijd mogelijk om deze hoeveelheid validatiegegevens te reserveren als de trainingsgeschiedenis kort is, maar het is een best practice. Zie Training- en validatiegegevens voor meer informatie.

Wat betekent het als mijn trainingstaak perfecte validatiescores behaalt?

Het is mogelijk om perfecte scores te zien wanneer u metrische validatiegegevens van een trainingstaak bekijkt. Een perfecte score betekent dat de prognose en de werkelijke waarden in de validatieset hetzelfde of bijna hetzelfde zijn. U hebt bijvoorbeeld een wortelgemiddelde kwadratische fout die gelijk is aan 0,0 of een R2-score van 1,0.

Een perfecte validatiescore geeft meestal aan dat het model ernstig overfit is, waarschijnlijk vanwege gegevenslekken. De beste procedure is om de gegevens te inspecteren op lekken en de kolommen te verwijderen die het lek veroorzaken.

Wat gebeurt er als mijn tijdreeksgegevens niet regelmatig observaties hebben?

De voorspellingsmodellen van AutoML vereisen allemaal dat trainingsgegevens regelmatig waarnemingen met betrekking tot de agenda hebben gespoerd. Deze vereiste omvat gevallen zoals maandelijkse of jaarlijkse waarnemingen waarbij het aantal dagen tussen waarnemingen kan variëren. Tijdafhankelijke gegevens voldoen mogelijk niet aan deze vereiste in twee gevallen:

  • De gegevens hebben een goed gedefinieerde frequentie, maar ontbrekende waarnemingen zorgen voor hiaten in de reeks. In dit geval probeert AutoML de frequentie te detecteren, nieuwe waarnemingen in te vullen voor de hiaten en ontbrekende doel- en functiewaarden in te voeren. Desgewenst kan de gebruiker de imputatiemethoden configureren via SDK-instellingen of via de webgebruikersinterface. Zie Aangepaste featurization voor meer informatie.

  • De gegevens hebben geen goed gedefinieerde frequentie. Dat wil gezegd, de duur tussen waarnemingen heeft geen duidelijk patroon. Transactionele gegevens, zoals die van een point-of-sales-systeem, is één voorbeeld. In dit geval kunt u AutoML instellen om uw gegevens te aggregeren naar een gekozen frequentie. U kunt een normale frequentie kiezen die het beste past bij de gegevens en de modelleringsdoelstellingen. Zie Gegevensaggregatie voor meer informatie.

Hoe kan ik de primaire metrische waarde kiezen?

De primaire metriek is belangrijk omdat de waarde voor validatiegegevens het beste model bepaalt tijdens het opruimen en selecteren. Genormaliseerde wortelgemiddelde kwadratische fout (NRMSE) en genormaliseerde gemiddelde absolute fout (NMAE) zijn meestal de beste keuzes voor de primaire metrische waarde in het voorspellen van taken.

Als u ertussen wilt kiezen, moet u er rekening mee houden dat NRMSE uitbijters in de trainingsgegevens meer bestraft dan NMAE, omdat deze gebruikmaakt van het kwadraat van de fout. NMAE kan een betere keuze zijn als u wilt dat het model minder gevoelig is voor uitbijters. Zie Regressie- en prognosegegevens voor meer informatie.

Notitie

Het is niet raadzaam om de R2-score of R2 te gebruiken als primaire metriek voor prognoses.

Notitie

AutoML biedt geen ondersteuning voor aangepaste of door de gebruiker geleverde functies voor de primaire metrische gegevens. U moet een van de vooraf gedefinieerde primaire metrische gegevens kiezen die door AutoML worden ondersteund.

Hoe kan ik de nauwkeurigheid van mijn model verbeteren?

  • Zorg ervoor dat u AutoML de beste manier voor uw gegevens configureert. Zie het antwoord Welke modelleringsconfiguratie moet ik gebruiken voor meer informatie.
  • Bekijk het notebook met prognoserecepten voor stapsgewijze handleidingen over het bouwen en verbeteren van prognosemodellen.
  • Evalueer het model met behulp van backtests over verschillende prognosecycli. Deze procedure geeft een krachtigere schatting van de prognosefout en geeft u een basislijn om verbeteringen te meten. Zie het notebook voor back-testing voor een voorbeeld.
  • Als de gegevens luidruchtig zijn, kunt u deze samenvoegen tot een grofer frequentie om de verhouding tussen signaal en ruis te verhogen. Zie Frequentie en doelgegevensaggregatie voor meer informatie.
  • Voeg nieuwe functies toe waarmee u het doel kunt voorspellen. Expertise op het gebied van onderwerpen kan enorm helpen wanneer u trainingsgegevens selecteert.
  • Vergelijk de metrische waarden voor validatie en test en bepaal of het geselecteerde model onderfitting of overfitting van de gegevens is. Deze kennis kan u begeleiden bij een betere trainingsconfiguratie. U kunt bijvoorbeeld bepalen dat u meer kruisvalidatievouwen moet gebruiken als reactie op overfitting.

Selecteert AutoML altijd hetzelfde beste model uit dezelfde trainingsgegevens en configuratie?

Het modelzoekproces van AutoML is niet deterministisch, dus het selecteert niet altijd hetzelfde model uit dezelfde gegevens en configuratie.

Hoe kan ik een fout met onvoldoende geheugen oplossen?

Er zijn twee soorten geheugenfouten:

  • Ram-geheugen buiten geheugen
  • Onvoldoende geheugenschijf

Zorg er eerst voor dat u AutoML op de beste manier configureert voor uw gegevens. Zie het antwoord Welke modelleringsconfiguratie moet ik gebruiken voor meer informatie.

Voor standaard AutoML-instellingen kunt u RAM-fouten met onvoldoende geheugen oplossen door rekenknooppunten met meer RAM-geheugen te gebruiken. Een algemene regel is dat de hoeveelheid gratis RAM minstens 10 keer groter moet zijn dan de onbewerkte gegevensgrootte om AutoML uit te voeren met standaardinstellingen.

U kunt schijffouten met onvoldoende geheugen oplossen door het rekencluster te verwijderen en een nieuw cluster te maken.

Welke geavanceerde prognosescenario's ondersteunt AutoML?

AutoML ondersteunt de volgende geavanceerde voorspellingsscenario's:

  • Kwantielprognoses
  • Robuuste modelevaluatie via rolling prognoses
  • Prognoses buiten de prognoseperiode
  • Prognose wanneer er een tijdsverschil is tussen trainings- en prognoseperioden

Zie het notebook voor geavanceerde prognosescenario's voor voorbeelden en details.

Hoe kan ik metrische gegevens weergeven uit het voorspellen van trainingstaken?

Zie Informatie over taken of uitvoeringen weergeven in de studio om metrische waarden voor training en validatie te vinden. U kunt metrische gegevens weergeven voor elk prognosemodel dat is getraind in AutoML door naar een model te gaan vanuit de gebruikersinterface van de AutoML-taak in de studio en het tabblad Metrische gegevens te selecteren.

Schermopname van de metrische interface voor een AutoML-prognosemodel.

Hoe kan ik fouten opsporen bij het voorspellen van trainingstaken?

Als uw AutoML-prognosetaak mislukt, kan een foutbericht in de gebruikersinterface van studio u helpen bij het vaststellen en oplossen van het probleem. De beste bron van informatie over de fout buiten het foutbericht is het stuurprogrammalogboek voor de taak. Zie Voor instructies over het vinden van stuurprogrammalogboeken informatie over taken/uitvoeringen weergeven met MLflow.

Notitie

Voor een veel modellen- of HTS-taak is de training meestal op rekenclusters met meerdere knooppunten. Logboeken voor deze taken zijn aanwezig voor elk IP-adres van het knooppunt. In dit geval moet u zoeken naar foutenlogboeken in elk knooppunt. De foutenlogboeken, samen met de stuurprogrammalogboeken, bevinden zich in de map user_logs voor elk knooppunt-IP-adres.

Hoe kan ik een model implementeren vanuit trainingstaken voor prognoses?

U kunt op een van de volgende manieren een model implementeren vanuit trainingstaken voor prognoses:

  • Online-eindpunt: Controleer het scorebestand dat in de implementatie wordt gebruikt of selecteer het tabblad Testen op de eindpuntpagina in de studio om inzicht te hebben in de structuur van de invoer die door de implementatie wordt verwacht. Zie dit notitieblok voor een voorbeeld. Zie Een AutoML-model implementeren op een online-eindpunt voor meer informatie over onlineimplementatie.
  • Batch-eindpunt: voor deze implementatiemethode moet u een aangepast scorescript ontwikkelen. Raadpleeg dit notitieblok voor een voorbeeld. Zie Batch-eindpunten gebruiken voor batchgewijs scoren voor meer informatie over batchimplementatie.

Voor UI-implementaties raden we u aan een van deze opties te gebruiken:

  • Realtime-eindpunt
  • Batch-eindpunt

Schermopname van de implementatieopties voor een AutoML-prognosemodel.

Gebruik niet de eerste optie, realtime-eindpunt (snel).

Notitie

Vanaf nu bieden we geen ondersteuning voor het implementeren van het MLflow-model vanuit het voorspellen van trainingstaken via SDK, CLI of UI. Als u het probeert, krijgt u fouten.

Wat is een werkruimte, omgeving, experiment, rekenproces of rekendoel?

Als u niet bekend bent met Azure Machine Learning-concepten, begint u met de artikelen Wat is Azure Machine Learning? en wat is een Azure Machine Learning-werkruimte?

Volgende stappen