Sia che tu stia allocando le risorse in modo più efficiente per il traffico web, prevedendo la domanda dei pazienti per le esigenze di personale o anticipando le vendite dei prodotti di un'azienda, la previsione è uno strumento essenziale in molte aziende. Un caso d'uso particolare, noto come previsione di partenza a freddo, crea previsioni per una serie temporale che ha pochi o nessun dato storico esistente, come un nuovo prodotto appena entrato nel mercato nel settore della vendita al dettaglio. I metodi tradizionali di previsione delle serie temporali come la media mobile integrata autoregressiva (ARIMA) o lo smoothing esponenziale (ES) si basano fortemente sulle serie storiche di ogni singolo prodotto e pertanto non sono efficaci per la previsione con avvio a freddo.
In questo post, dimostriamo come creare un motore di previsione con avviamento a freddo utilizzando AutoGluon AutoML per la previsione di serie temporali, un pacchetto Python open source per automatizzare l'apprendimento automatico (ML) su dati di immagini, testo, tabulari e serie temporali. AutoGluon fornisce una pipeline di apprendimento automatico (AutoML) end-to-end per i principianti e gli sviluppatori ML esperti, rendendola la soluzione completamente automatizzata più accurata e facile da usare. Usiamo il gratuito Laboratorio Amazon SageMaker Studio servizio per questa dimostrazione.
Introduzione alle serie temporali di AutoGluon
AutoGluone è una libreria open source leader per AutoML per dati di testo, immagini e tabulari, che consente di produrre modelli altamente accurati da dati grezzi con una sola riga di codice. Di recente, il team ha lavorato per estendere queste capacità ai dati delle serie temporali e ha sviluppato un modulo di previsione automatizzato disponibile pubblicamente su GitHub. autogluon.forecasting
elabora automaticamente i dati grezzi delle serie temporali nel formato appropriato, quindi addestra e ottimizza vari modelli di deep learning all'avanguardia per produrre previsioni accurate. In questo post, dimostriamo come utilizzare autogluon.forecasting
e applicalo alle attività di previsione con avvio a freddo.
Panoramica della soluzione
Poiché AutoGluon è un pacchetto Python open source, puoi implementare questa soluzione a livello locale sul tuo laptop o su Amazon SageMaker Studio Lab. Esaminiamo i seguenti passaggi:
- Configura AutoGluon per Amazon SageMaker Studio Lab.
- Prepara il set di dati.
- Definisci i parametri di allenamento usando AutoGluon.
- Addestra un motore di previsione con avviamento a freddo per la previsione di serie temporali.
- Visualizza le previsioni di previsione con partenza a freddo.
Il presupposto chiave della previsione con avviamento a freddo è che articoli con caratteristiche simili dovrebbero avere traiettorie di serie temporali simili, che è ciò che consente alle previsioni con avviamento a freddo di fare previsioni su articoli senza dati storici, come illustrato nella figura seguente.
Nella nostra procedura dettagliata, utilizziamo un set di dati sintetico basato sul consumo di elettricità, che consiste nelle serie temporali orarie per 370 elementi, ciascuno con un item_id
da 0 a 369. All'interno di questo set di dati sintetico, ciascuno item_id
è anche associato a una funzione statica (una caratteristica che non cambia nel tempo). Ci alleniamo a DeepAR modello utilizzando AutoGluon per apprendere il comportamento tipico di elementi simili e trasferire tale comportamento per fare previsioni su nuovi elementi (item_id
370–373) che non hanno dati storici sulle serie temporali. Sebbene stiamo dimostrando l'approccio di previsione con avviamento a freddo con una sola caratteristica statica, in pratica, avere caratteristiche statiche informative e di alta qualità è la chiave per una buona previsione con avviamento a freddo.
Il diagramma seguente fornisce una panoramica di alto livello della nostra soluzione. Il codice open source è disponibile su Repository GitHub.
Prerequisiti
Per questa procedura dettagliata, è necessario disporre dei seguenti prerequisiti:
- An Account Amazon SageMaker Studio Lab
- GitHub accesso all'account
Accedi al tuo account Amazon SageMaker Studio Lab e configura l'ambiente utilizzando il terminale:
Queste istruzioni dovrebbero funzionare anche dal tuo laptop se non hai accesso ad Amazon SageMaker Studio Lab (ti consigliamo di installare prima Anaconda sul tuo laptop).
Quando l'ambiente virtuale è completamente configurato, avvia il notebook AutoGluon-cold-start-demo.ipynb
e selezionare l'ambiente personalizzato .conda-autogluon:Python
kernel.
Preparare la serie temporale di destinazione e il meta set di dati dell'elemento
Scarica i seguenti set di dati nell'istanza notebook, se non sono inclusi, e salvali nella directory data/
. Puoi trovare questi set di dati sul nostro Repository GitHub:
- Prova.csv.gz
- coldStartTargetData.csv
- itemMetaData.csv
Esegui il frammento di codice seguente per caricare il set di dati della serie temporale di destinazione nel kernel:
Le serie temporali di AutoGluon richiedono che le funzioni statiche siano rappresentate in formato numerico. Ciò può essere ottenuto applicando LabelEncoder()
sulla nostra funzione statica type
, dove codifichiamo A=0, B=1, C=2, D=3 (vedi il codice seguente). Per impostazione predefinita, AutoGluon deduce che la funzione statica sia ordinale o categoriale. Puoi anche sovrascriverlo convertendo la colonna della funzione statica in un tipo di dati oggetto/stringa per le funzioni categoriali o tipo di dati intero/virgola mobile per le funzioni ordinali.
Configurare e avviare l'addestramento del modello AutoGluon
Dobbiamo specificare save_path = ‘autogluon-coldstart-demo’
come nome della cartella dell'artefatto del modello (vedere il codice seguente). Abbiamo anche impostato il nostro eval_metric
as errore percentuale assoluto medio, o ‘MAPE’
in breve, dove abbiamo definito prediction_length
come 24 ore. Se non specificato, AutoGluon per impostazione predefinita produce previsioni probabilistiche e le classifica tramite il perdita quantilica ponderata. Guardiamo solo il Modello DeepAR nella nostra demo, perché sappiamo che l'algoritmo DeepAR consente la previsione con avvio a freddo in base alla progettazione. Impostiamo arbitrariamente uno degli iperparametri DeepAR e passiamo quell'iperparametro a ForecastingPredictor().fit()
chiamata. Ciò consente ad AutoGluon di esaminare solo il modello specificato. Per un elenco completo degli iperparametri sintonizzabili, fare riferimento a pacchetto gluonts.model.deepar.
La formazione dura 30-45 minuti. È possibile ottenere il riepilogo del modello chiamando la seguente funzione:
Previsione sull'elemento di partenza a freddo
Ora siamo pronti per generare previsioni per l'elemento con avvio a freddo. Si consiglia di avere almeno cinque righe per ciascuna item_id
. Pertanto, per il item_id
che ha meno di cinque osservazioni, riempiamo con NaN. Nella nostra demo, entrambi item_id
370 e 372 hanno osservazione zero, un puro problema di avviamento a freddo, mentre gli altri due hanno cinque valori target.
Caricare nel set di dati della serie temporale target di avvio a freddo con il codice seguente:
Inseriamo le serie temporali target per l'avvio a freddo nel nostro modello AutoGluon, insieme al metaset di dati dell'elemento per l'avvio a freddo item_id
:
Visualizza le previsioni
Possiamo creare una funzione di plottaggio per generare una visualizzazione sulla previsione di partenza a freddo, come mostrato nel grafico seguente.
ripulire
Per ottimizzare l'utilizzo delle risorse, prendi in considerazione l'interruzione del runtime su Amazon SageMaker Studio Lab dopo aver esplorato completamente il notebook.
Conclusione
In questo post, abbiamo mostrato come creare un motore di previsione con avviamento a freddo utilizzando AutoGluon AutoML per i dati delle serie temporali su Amazon SageMaker Studio Lab. Per quelli di voi che si stanno chiedendo la differenza tra Previsioni Amazon e AutoGluon (serie temporali), Amazon Forecast è un servizio completamente gestito e supportato che utilizza il machine learning (ML) per generare previsioni estremamente accurate senza richiedere alcuna precedente esperienza di machine learning. Mentre AutoGluon è un progetto open source supportato dalla comunità con gli ultimi contributi di ricerca. Abbiamo esaminato un esempio end-to-end per dimostrare di cosa è capace AutoGluon per le serie temporali e fornito un set di dati e un caso d'uso.
AutoGluon per i dati delle serie temporali è un pacchetto Python open source e speriamo che questo post, insieme al nostro esempio di codice, fornisca una soluzione semplice per affrontare i problemi di previsione dell'avvio a freddo impegnativi. Puoi accedere all'intero esempio sul nostro Repository GitHub. Provalo e facci sapere cosa ne pensi!
Informazioni sugli autori
Ivan Cui è un Data Scientist presso AWS Professional Services, dove aiuta i clienti a creare e distribuire soluzioni utilizzando il machine learning su AWS. Ha lavorato con clienti in diversi settori, tra cui software, finanza, farmaceutica e sanità. Nel suo tempo libero, ama leggere, passare il tempo con la sua famiglia e massimizzare il suo portafoglio azionario.
Jonas Müller è un Senior Applied Scientist nel gruppo AI Research and Education di AWS, dove sviluppa nuovi algoritmi per migliorare il deep learning e sviluppare il machine learning automatizzato. Prima di entrare in AWS per democratizzare il ML, ha completato il suo dottorato di ricerca presso il MIT Computer Science and Artificial Intelligence Lab. Nel tempo libero ama esplorare le montagne e la vita all'aria aperta.
Wenming Sì è un Research Product Manager presso AWS AI. È appassionato di aiutare i ricercatori e i clienti aziendali a scalare rapidamente le loro innovazioni attraverso una tecnologia di apprendimento automatico open source e all'avanguardia. Wenming ha diverse esperienze di ricerca e sviluppo da parte di Microsoft Research, il team di ingegneri SQL e startup di successo.
- Coinsmart. Il miglior scambio di bitcoin e criptovalute d'Europa.
- Platoblockchain. Web3 Metaverse Intelligence. Conoscenza amplificata. ACCESSO LIBERO.
- Criptofalco. Radar Altcoin. Prova gratuita.
- Fonte: https://aws.amazon.com/blogs/machine-learning/build-a-cold-start-time-series-forecasting-engine-using-autogluon/
- "
- 100
- 9
- Chi siamo
- Assoluta
- accesso
- Il mio account
- preciso
- raggiunto
- operanti in
- AI
- ricerca ai
- algoritmo
- Algoritmi
- Consentire
- Sebbene il
- Amazon
- AMMISSIONE
- approccio
- artificiale
- intelligenza artificiale
- Automatizzata
- disponibile
- media
- AWS
- costruire
- costruisce
- aziende
- chiamata
- Può ottenere
- funzionalità
- CD
- il cambiamento
- Procedi all'acquisto
- codice
- Colonna
- comunità
- Società
- Informatica
- consumo
- Clienti
- dati
- scienziato di dati
- Richiesta
- schierare
- Design
- sviluppare
- sviluppato
- sviluppatori
- non
- Istruzione
- Efficace
- elettricità
- Ingegneria
- inserito
- Impresa
- Ambiente
- essential
- esempio
- esperienza
- esperto
- estendere
- famiglia
- caratteristica
- Caratteristiche
- figura
- finanziare
- Nome
- i seguenti
- formato
- Gratis
- pieno
- function
- futuro
- generare
- Idiota
- buono
- Gruppo
- avendo
- assistenza sanitaria
- aiuta
- vivamente
- storico
- Come
- Tutorial
- HTTPS
- Immagine
- realizzare
- competenze
- incluso
- Compreso
- individuale
- industrie
- industria
- integrato
- Intelligence
- IT
- Le
- conosciuto
- laptop
- con i più recenti
- lanciare
- principale
- IMPARARE
- apprendimento
- Biblioteca
- linea
- Lista
- piccolo
- caricare
- macchina
- machine learning
- Fare
- direttore
- Rappresentanza
- Meta
- Microsoft
- CON
- ML
- modello
- modelli
- maggior parte
- in movimento
- nuovo prodotto
- taccuino
- codice open source
- Altro
- all'aperto
- percentuale
- Pharmaceutical
- lavori
- Previsioni
- Problema
- problemi
- i processi
- produrre
- Prodotto
- Prodotti
- professionale
- progetto
- fornisce
- R&D
- Crudo
- Lettura
- raccomandare
- riparazioni
- risorsa
- Risorse
- nello specifico retail
- vendite
- Scala
- scala
- Scienze
- Scienziato
- Serie
- servizio
- Servizi
- set
- Corti
- simile
- Software
- Soluzioni
- Spendere
- inizia a
- Startup
- azione
- studio
- di successo
- supportato
- Target
- task
- team
- Tecnologia
- terminal
- Attraverso
- tempo
- insieme
- tradizionale
- traffico
- Training
- forma
- us
- uso
- virtuale
- visualizzazione
- sito web
- Che
- OMS
- entro
- senza
- Lavora
- lavorato
- lavoro
- zero