Oavsett om du fördelar resurser mer effektivt för webbtrafik, prognostiserar patienternas efterfrågan på personalbehov eller förutser försäljningen av ett företags produkter, är prognoser ett viktigt verktyg för många företag. Ett särskilt användningsfall, känt som kallstartsprognos, bygger prognoser för en tidsserie som har få eller inga befintliga historiska data, till exempel en ny produkt som precis kommit in på marknaden inom detaljhandeln. Traditionella metoder för tidsserieprognoser som autoregressivt integrerat glidande medelvärde (ARIMA) eller exponentiell utjämning (ES) är starkt beroende av historiska tidsserier för varje enskild produkt och är därför inte effektiva för kallstartsprognoser.
I det här inlägget visar vi hur man bygger en kallstartsprognosmotor med hjälp av AutoGluon AutoML för tidsserieprognoser, ett Python-paket med öppen källkod för att automatisera maskininlärning (ML) på bild-, text-, tabell- och tidsseriedata. AutoGluon tillhandahåller en komplett automatiserad maskininlärning (AutoML) pipeline för nybörjare till erfarna ML-utvecklare, vilket gör den till den mest exakta och lättanvända helautomatiska lösningen. Vi använder gratis Amazon SageMaker Studio Lab service för denna demonstration.
Introduktion till AutoGluon tidsserier
AutoGluon är ett ledande bibliotek med öppen källkod för AutoML för text-, bild- och tabelldata, vilket gör att du kan producera mycket exakta modeller från rådata med bara en rad kod. Nyligen har teamet arbetat med att utöka dessa möjligheter till tidsseriedata och har utvecklat en automatiserad prognosmodul som är allmänt tillgänglig på GitHub. De autogluon.forecasting
modulen bearbetar automatiskt rå tidsseriedata till lämpligt format och tränar och ställer sedan in olika toppmoderna djupinlärningsmodeller för att producera korrekta prognoser. I det här inlägget visar vi hur man använder autogluon.forecasting
och tillämpa den på kallstartsprognosuppgifter.
Lösningsöversikt
Eftersom AutoGluon är ett Python-paket med öppen källkod kan du implementera den här lösningen lokalt på din bärbara dator eller på Amazon SageMaker Studio Lab. Vi går igenom följande steg:
- Konfigurera AutoGluon för Amazon SageMaker Studio Lab.
- Förbered datasetet.
- Definiera träningsparametrar med AutoGluon.
- Träna en kallstartsprognosmotor för tidsserieprognoser.
- Visualisera kallstartsprognoser.
Nyckelantagandet för kallstartsprognos är att objekt med liknande egenskaper bör ha liknande tidsseriebanor, vilket är det som gör att kallstartsprognos kan göra förutsägelser om objekt utan historisk data, som illustreras i följande figur.
I vår genomgång använder vi en syntetisk datauppsättning baserad på elförbrukning, som består av timtidsserien för 370 artiklar, var och en med en item_id
från 0–369. Inom denna syntetiska datauppsättning, var och en item_id
är också associerad med en statisk funktion (en funktion som inte förändras över tiden). Vi tränar a DeepAR modell med AutoGluon för att lära sig det typiska beteendet för liknande föremål, och överföra sådant beteende för att göra förutsägelser om nya föremål (item_id
370–373) som inte har historiska tidsseriedata. Även om vi demonstrerar kallstartsprognosmetoden med endast en statisk funktion, är det i praktiken att ha informativa och högkvalitativa statiska funktioner nyckeln till en bra kallstartsprognos.
Följande diagram ger en översikt över vår lösning på hög nivå. Den öppna källkoden är tillgänglig på GitHub repo.
Förutsättningar
För detta genomgång bör du ha följande förutsättningar:
- An Amazon SageMaker Studio Lab-konto
- GitHub kontoåtkomst
Logga in på ditt Amazon SageMaker Studio Lab-konto och ställ in miljön med hjälp av terminalen:
Dessa instruktioner bör också fungera från din bärbara dator om du inte har tillgång till Amazon SageMaker Studio Lab (vi rekommenderar att du installerar Anaconda på din bärbara dator först).
När du har den virtuella miljön fullt inställd startar du den bärbara datorn AutoGluon-cold-start-demo.ipynb
och välj den anpassade miljön .conda-autogluon:Python
kärna.
Förbered måltidsserien och objektmetadataset
Ladda ner följande datauppsättningar till din anteckningsbok-instans om de inte ingår, och spara dem i katalogen data/
. Du kan hitta dessa datauppsättningar på vår GitHub repo:
- Test.csv.gz
- coldStartTargetData.csv
- itemMetaData.csv
Kör följande utdrag för att ladda måltidsseriedataset till kärnan:
AutoGluon tidsserier kräver att statiska funktioner representeras i numeriskt format. Detta kan uppnås genom att ansöka LabelEncoder()
på vår statiska funktion type
, där vi kodar A=0, B=1, C=2, D=3 (se följande kod). Som standard drar AutoGluon slutsatsen att den statiska funktionen är antingen ordinarie eller kategorisk. Du kan också skriva över detta genom att konvertera den statiska egenskapskolumnen till att vara objekt-/strängdatatypen för kategoriska egenskaper, eller heltal/flytande datatyp för ordningsobjekt.
Ställ in och starta AutoGluon modellutbildning
Vi måste specificera save_path = ‘autogluon-coldstart-demo’
som modellartefaktens mappnamn (se följande kod). Vi ställer också in vår eval_metric
as genomsnittligt absolut procentuellt fel, eller ‘MAPE’
för kort, där vi definierade prediction_length
som 24 timmar. Om det inte anges, producerar AutoGluon som standard probabilistiska prognoser och poängsätter dem via viktad kvantilförlust. Vi tittar bara på DeepAR-modell i vår demo, eftersom vi vet att DeepAR-algoritmen tillåter kallstartsprognoser genom design. Vi ställer in en av DeepAR-hyperparametrarna godtyckligt och skickar den hyperparametern till ForecastingPredictor().fit()
ring upp. Detta gör att AutoGluon endast kan titta på den specificerade modellen. För en fullständig lista över inställbara hyperparametrar, se gluonts.model.deepar-paket.
Träningen tar 30–45 minuter. Du kan få modellsammanfattningen genom att anropa följande funktion:
Prognos för kallstartsposten
Nu är vi redo att generera prognoser för kallstartsposten. Vi rekommenderar att du har minst fem rader för varje item_id
. Därför, för item_id
som har färre än fem observationer, fyller vi i med NaNs. I vår demo, båda item_id
370 och 372 har noll observation, ett rent kallstartsproblem, medan de andra två har fem målvärden.
Ladda i kallstartsmåltidsseriedataset med följande kod:
Vi matar in måltidsserien för kallstart i vår AutoGluon-modell, tillsammans med artikelmetadataset för kallstarten item_id
:
Visualisera förutsägelserna
Vi kan skapa en plottningsfunktion för att generera en visualisering av kallstartsprognosen, som visas i följande graf.
Städa upp
För att optimera resursanvändningen, överväg att stoppa körtiden på Amazon SageMaker Studio Lab efter att du har utforskat den bärbara datorn till fullo.
Slutsats
I det här inlägget visade vi hur man bygger en kallstartsprognosmotor med AutoGluon AutoML för tidsseriedata på Amazon SageMaker Studio Lab. För er som undrar skillnaden mellan Amazon Prognos och AutoGluon (tidsserier), Amazon Forecast är en fullt hanterad och stödd tjänst som använder maskininlärning (ML) för att generera mycket exakta prognoser utan att kräva någon tidigare ML-erfarenhet. Medan AutoGluon är ett projekt med öppen källkod som stöds av gemenskapen med de senaste forskningsbidragen. Vi gick igenom ett heltäckande exempel för att visa vad AutoGluon för tidsserier kan, och tillhandahöll en datauppsättning och ett användningsfall.
AutoGluon för tidsseriedata är ett Python-paket med öppen källkod, och vi hoppas att det här inlägget, tillsammans med vårt kodexempel, ger dig en enkel lösning för att tackla utmanande problem med kallstartsprognos. Du kan komma åt hela exemplet på vår GitHub repo. Testa det och låt oss veta vad du tycker!
Om författarna
Ivan Cui är en dataforskare med AWS Professional Services, där han hjälper kunder att bygga och distribuera lösningar med hjälp av maskininlärning på AWS. Han har arbetat med kunder i olika branscher, inklusive mjukvara, finans, läkemedel och hälsovård. På fritiden tycker han om att läsa, umgås med sin familj och maximera sin aktieportfölj.
Jonas Mueller är Senior Applied Scientist i AI Research and Education-gruppen på AWS, där han utvecklar nya algoritmer för att förbättra djupinlärning och utveckla automatiserad maskininlärning. Innan han gick med i AWS för att demokratisera ML, avslutade han sin doktorsexamen vid MIT Computer Science and Artificial Intelligence Lab. På fritiden tycker han om att utforska berg och utomhus.
Wenming Ye är forskningsproduktchef på AWS AI. Han brinner för att hjälpa forskare och företagskunder att snabbt skala sina innovationer genom öppen källkod och toppmodern maskininlärningsteknik. Wenming har mångsidig FoU-erfarenhet från Microsoft Research, SQL-ingenjörsteamet och framgångsrika startups.
- "
- 100
- 9
- Om oss
- Absolut
- tillgång
- Konto
- exakt
- uppnås
- tvärs
- AI
- ai forskning
- algoritm
- algoritmer
- tillåta
- Även
- amason
- Tillämpa
- tillvägagångssätt
- konstgjord
- artificiell intelligens
- Automatiserad
- tillgänglig
- genomsnitt
- AWS
- SLUTRESULTAT
- bygger
- företag
- Ring
- Kan få
- kapacitet
- CD
- byta
- Till Kassan
- koda
- Kolumn
- samfundet
- Företagets
- Datavetenskap
- konsumtion
- Kunder
- datum
- datavetare
- Efterfrågan
- distribuera
- Designa
- utveckla
- utvecklade
- utvecklare
- inte
- Utbildning
- Effektiv
- el
- Teknik
- gick in i
- Företag
- Miljö
- väsentlig
- exempel
- erfarenhet
- erfaren
- förlänga
- familj
- Leverans
- Funktioner
- Figur
- finansiering
- Förnamn
- efter
- format
- Fri
- full
- fungera
- framtida
- generera
- gå
- god
- Grupp
- har
- hälso-och sjukvård
- hjälper
- höggradigt
- historisk
- Hur ser din drömresa ut
- How To
- HTTPS
- bild
- genomföra
- förbättra
- ingår
- Inklusive
- individuellt
- industrier
- industrin
- integrerade
- Intelligens
- IT
- Nyckel
- känd
- laptop
- senaste
- lansera
- ledande
- LÄRA SIG
- inlärning
- Bibliotek
- linje
- Lista
- liten
- läsa in
- Maskinen
- maskininlärning
- Framställning
- chef
- marknad
- meta
- Microsoft
- MIT
- ML
- modell
- modeller
- mest
- rörliga
- ny produkt
- anteckningsbok
- öppen källkod
- Övriga
- utomhus
- procentuell
- Läkemedelsindustrin
- portfölj
- Förutsägelser
- Problem
- problem
- processer
- producera
- Produkt
- Produkter
- professionell
- projektet
- ger
- R&D
- Raw
- Läsning
- rekommenderar
- forskning
- resurs
- Resurser
- detaljhandeln
- försäljning
- Skala
- skalning
- Vetenskap
- Forskare
- Serier
- service
- Tjänster
- in
- Kort
- liknande
- Mjukvara
- Lösningar
- Spendera
- starta
- Startups
- lager
- studio
- framgångsrik
- Som stöds
- Målet
- uppgifter
- grupp
- Teknologi
- terminal
- Genom
- tid
- tillsammans
- traditionell
- trafik
- Utbildning
- tåg
- us
- användning
- Virtuell
- visualisering
- webb
- Vad
- VEM
- inom
- utan
- Arbete
- arbetade
- arbetssätt
- noll-