Esercitazione di Azure: previsione dei prezzi del gas tramite Azure Machine Learning Studio
Pubblicato: 2022-03-11E se potessi prevedere se il tuo titolo preferito aumenterà o diminuirà nel prossimo mese? O se la tua squadra di calcio preferita vincesse o perdesse la prossima partita? Come puoi fare tali previsioni? Forse l'apprendimento automatico può fornire parte della risposta. Cortana, il nuovo assistente personale digitale basato su Bing fornito con Windows Phone 8.1, ha previsto con precisione 15 partite su 16 della Coppa del Mondo FIFA 2014.
In questo tutorial di Azure esploreremo le funzionalità e le capacità di Azure Machine Learning risolvendo uno dei problemi che dobbiamo affrontare nella nostra vita quotidiana.
Dal punto di vista dello sviluppatore di machine learning, i problemi possono essere divisi in due gruppi: quelli che possono essere risolti utilizzando metodi standard e quelli che non possono essere risolti utilizzando metodi standard. Sfortunatamente, la maggior parte dei problemi della vita reale appartiene al secondo gruppo. È qui che entra in gioco l'apprendimento automatico. L'idea di base è usare le macchine per trovare schemi significativi nei dati storici e usarli per risolvere il problema.
Il problema
I prezzi del gas sono probabilmente una delle voci già nel budget della maggior parte delle persone. Il costante aumento o diminuzione può influenzare anche i prezzi di altri generi alimentari e servizi. Ci sono molti fattori che possono influenzare i prezzi del gas, dalle condizioni meteorologiche alle decisioni politiche e alle spese amministrative, e a fattori totalmente imprevedibili come disastri naturali o guerre.
Il piano per questa esercitazione di Azure Machine Learning è analizzare alcuni dati accessibili e trovare correlazioni che possono essere sfruttate per creare un modello di previsione.
Studio di apprendimento automatico di Azure
Azure Machine Learning Studio è un ambiente di sviluppo integrato (IDE) basato sul Web per lo sviluppo di esperimenti sui dati. È strettamente connesso con il resto dei servizi cloud di Azure e ciò semplifica lo sviluppo e la distribuzione di modelli e servizi di machine learning.
Creazione dell'esperimento
Ci sono cinque passaggi di base per creare un esempio di machine learning. Esamineremo ciascuno di questi passaggi attraverso lo sviluppo del nostro modello di previsione per i prezzi del gas.
Ottenere i Dati
La raccolta dei dati è uno dei passaggi più importanti di questo processo. La pertinenza e la chiarezza dei dati sono la base per la creazione di buoni modelli di previsione. Azure Machine Learning Studio fornisce una serie di set di dati di esempio. Un'altra grande raccolta di set di dati può essere trovata su archive.ics.uci.edu/ml/datasets.html.
Dopo aver raccolto i dati, dobbiamo caricarli in Studio attraverso il loro semplice meccanismo di caricamento dei dati:
Una volta caricati, possiamo visualizzare in anteprima i dati. L'immagine seguente mostra parte dei nostri dati che abbiamo appena caricato. Il nostro obiettivo qui è di prevedere il prezzo sotto la colonna etichettata E95.
Il nostro prossimo passo è creare un nuovo esperimento trascinando e rilasciando i moduli dal pannello a sinistra nell'area di lavoro.
Preelaborazione dei dati
La preelaborazione dei dati disponibili implica l'adeguamento dei dati disponibili alle proprie esigenze. Il primo modulo che useremo qui è "Statistiche descrittive". Calcola i dati statistici dai dati disponibili. Oltre al modulo "Statistiche descrittive", uno dei moduli comunemente usati è "Pulisci i dati mancanti". Lo scopo di questo passaggio è dare un significato ai valori mancanti (nulli) sostituendoli con qualche altro valore o rimuovendoli del tutto.
Definizione delle caratteristiche
Un altro modulo applicato in questo passaggio del nostro tutorial è il modulo "Selezione delle funzionalità basate su filtri". Questo modulo determina le caratteristiche del set di dati che sono più rilevanti per i risultati che vogliamo prevedere. In questo caso, come puoi vedere nell'immagine sottostante, le quattro caratteristiche più rilevanti per i valori “E95” sono “EDG BS”, “Oil”, “USD/HRK” e “EUR/USD”.
Poiché "EDG BS" è un altro valore di "output" che non può essere utilizzato per fare previsioni, ne selezioneremo solo due tra le restanti caratteristiche importanti: il prezzo del petrolio e il tasso di cambio nella colonna USD/HRK.
Di seguito è mostrato un esempio del set di dati dopo l'elaborazione:
Scelta e applicazione di un algoritmo
Il nostro prossimo passo è dividere i dati disponibili utilizzando il modulo "Dividi". La prima parte dei dati (nel nostro caso l'80%) verrà utilizzata per addestrare il modello e il resto per valutare il modello addestrato.

I passaggi seguenti sono i passaggi più importanti dell'intero processo di apprendimento automatico di Azure. Il modulo “Train Model” accetta due parametri di input. Il primo sono i dati di allenamento grezzi e l'altro è l'algoritmo di apprendimento. Qui useremo l'algoritmo "Regressione lineare". L'output del modulo "Train Model" è uno dei parametri di input del modulo "Score Model". L'altro è il resto dei dati disponibili. Score Model aggiunge una nuova colonna al nostro set di dati, Scored Labels. I valori nella colonna "Etichette con punteggio" sono più vicini ai valori dei valori E95 corrispondenti quando l'algoritmo di apprendimento applicato funziona bene con i dati disponibili.
Il modulo Valuta modello fornisce una valutazione del modello addestrato espresso in valori statistici. Se osserviamo il "Coefficiente di determinazione", possiamo concludere che esiste una probabilità dell'80% circa di prevedere il prezzo corretto utilizzando questo modello.
Ora, vale la pena provare a utilizzare il modulo "Regressione della rete neurale". Dovremo aggiungere nuovi moduli "Train Model" e "Score Model" e collegare l'output al modulo "Evaluate Model" esistente.
Il modulo "Neural Network Regression" richiede un po' più di configurazione. Poiché questo è il modulo più importante dell'intero esperimento, è dove dovremmo concentrare i nostri sforzi, modificando e sperimentando le impostazioni e la selezione dell'algoritmo di apprendimento appropriato nel suo insieme.
In questo caso, il modulo Valuta ci offre un confronto tra i nostri due modelli addestrati. Ancora una volta, sulla base del coefficiente di determinazione, vediamo che le reti neurali forniscono previsioni leggermente meno accurate.
A questo punto possiamo salvare i modelli addestrati selezionati per un uso futuro.
Quando abbiamo un modello addestrato, possiamo procedere con la creazione di "Score Experiment". Questo può essere fatto creando un nuovo esperimento da zero o usando l'helper di Azure Machine Learning Studio. Seleziona semplicemente il modello addestrato e fai clic su "Crea esperimento di punteggio". I nuovi moduli di cui abbiamo bisogno qui sono "Input del servizio Web" e "Output del servizio Web". Aggiungeremo un modulo "Colonne di progetto" per selezionare i nostri valori di input e output. I valori di input sono Petrolio e USD/HRK e l'output è il valore previsto nella colonna "Etichette con punteggio" dell'output "Modello di punteggio".
L'immagine seguente mostra il nostro esperimento di punteggio dopo questi pochi aggiustamenti e dopo aver collegato i moduli "Input servizio Web" e "Uscita servizio Web" di conseguenza.
Un'altra elegante funzionalità di aiuto entra in gioco a questo punto. Con "Pubblica servizio Web" puoi creare un semplice servizio Web ospitato sull'infrastruttura cloud di Azure.
Prevedere nuovi dati
Infine, possiamo testare il nostro servizio web di previsione utilizzando un semplice modulo di test.
Conclusione
Attraverso questo semplice tutorial di machine learning abbiamo mostrato come creare un servizio web di previsione completamente funzionale. Azure Machine Learning Studio integrato nella piattaforma Azure può essere uno strumento molto potente per la creazione di esperimenti sui dati. Oltre a Machine Learning Studio, esistono altre soluzioni di machine learning come Orange e Tiberious. Indipendentemente dall'ambiente di sviluppo che ti piace, ti incoraggio a esplorare l'apprendimento automatico e trovare il tuo data scientist interiore.