• Previsioni meteo con machine learning – parte 8/8: visualizzazione della previsione

    Siamo giunti all’ultimo capitolo di questa appassionante guida! In questo percorso assieme abbiamo imparato cosa è il machine learning, come raccogliere i dati e come scegliere il modello più adatto al nostro caso, abbiamo inoltre visto come addestrare i modelli e come ottenere le nostre amate previsioni.

    In questo ultimo articolo ci concentriamo finalmente sulla visualizzazione delle previsioni. Abbiamo scelto di visualizzarle all’interno della pagina web che mostra i dati raccolti dalla nostra stazione meteo, pagina già descritta nell’articolo Come realizzare una stazione meteo – PARTE 6/6: visualizzare i dati raccolti. Quindi oggi analizzeremo solo la parte di codice che siamo andati ad integrare per mostrare la sezione dedicata alle previsioni.

    In fondo al questa pagina sarà possibile come sempre scaricare il file completo!

    Continua a leggere
  • Previsioni meteo con machine learning – parte 7/8: salvataggio della previsione nel database mysql

    Ben ritrovati nel settimo e penultimo capitolo di questa guida, se siete giunti fino a qui potete considerarvi quasi dei supereroi!

    Oggi ci dedicheremo all’invio delle previsioni che abbiamo calcolato con i nostri modelli di machine learning al database mysql creato come visto assieme nella sezione Previsioni meteo con machine learning – parte 6/8: il database mysql di questa guida. In particolare, quando abbiamo affrontato come elaborare i modelli, al termine del capitolo Previsioni meteo con machine learning – parte 4/8: elaborazione dei modelli, avevamo richiamato una pagina web dal nome aggiungi_previsione.php come vi ricordo di seguito:

    #esegue la pagina web per caricare i dati nel database
    url = "https://www.nome_sito.it/aggiungi_previsione.php?temperatura_max_prevista=" + str(temperatura_max_prevista) + "&temperatura_min_prevista=" + str(temperatura_min_prevista) + "&precipitazioni_cumulate_previste=" + str(precipitazioni_cumulate_previste)
    print (url)
    webUrl = urllib.request.urlopen(url)
    

    È finalmente arrivato il momento di scoprire come funziona questa pagina che ci consente di salvare le nostre previsioni nel database!

    Continua a leggere
  • Previsioni meteo con machine learning – parte 6/8: il database mysql

    Finora ci siamo dedicati alla raccolta e all’analisi dei dati per effettuare delle previsioni di temperatura massima, temperatura minima e precipitazioni il più attendibili possibili. Affrontiamo ora l’aspetto relativo al database mysql dove salveremo tutti i dati predetti dai modelli di machine learning che abbiamo addestrato.

    La tabella in questione si chiama previsione ed oltre al campo id che conteggia i vari record registrati e al time_stamp per memorizzare la data e l’ora del salvataggio della riga, troviamo i campi temperatura_max, temperatura_min e precipitazioni_cumulate, ovvero i tre valori oggetto di previsione.

    Continua a leggere
  • Previsioni meteo con machine learning – parte 5/8: eseguire file Python su Raspberry

    Raspberry è un computer a scheda singola che permette di realizzare molte applicazioni e progetti fai da te. In particolare in questo articolo vedremo come eseguire automaticamente un determinato script python all’avvio della scheda. Nel nostro caso specifico lo scopo sarà eseguire il file machine_learning_stazione_meteo_previsioni.py, visto nel capitolo precedente di questa guida.

    L’obiettivo sarà avviare alle 00.01 di ogni giorno la scheda, eseguire all’avvio il nostro programma, arrestare il sistema operativo alle 00.04 così da dare il tempo al file di essere eseguito e togliere l’alimentazione alle 00.05.

    Così facendo ogni giorno verrà calcolata la nuova previsione meteo per la giornata odierna in base ai dati raccolti nelle ultime 24 ore.

    Continua a leggere
  • Previsioni meteo con machine learning – parte 4/8: elaborazione dei modelli

    In questo articolo ci addentriamo nel cuore del progetto: andiamo ad analizzare come abbiamo realizzato il programma in Python che addestra i modelli, calcola gli errori ed effettua le previsioni vere e proprie. Come sempre ricordo che al termine dell’articolo sarà possibile scaricare il file con il codice completo.

    Cominciamo innanzitutto ad importare tutte le librerie necessarie:

    import numpy                            #per manipolare i numeri
    import pandas                           #per creare e gestire tabelle
    import sklearn                          #per machine learning
    import matplotlib.pyplot as plt         #per visualizzare grafici
    import urllib.request                   #per eseguire una pagina web
    
    from sklearn.tree import DecisionTreeRegressor                                  #importa il modello ad albero decisionale
    from sklearn.ensemble import RandomForestRegressor, GradientBoostingRegressor   #importa il modello a foresta casuale ed il modello Gradient Boosting Regressor
    from sklearn.linear_model import LinearRegression, ElasticNet                   #importa il modello Linear Regression ed il modello Elastic Net
    from sklearn.svm import SVR                                                     #importa il modello SVR
    from catboost import CatBoostRegressor                                          #importa il modello Cat Boost Regressor
    from xgboost.sklearn import XGBRegressor                                        #importa il modello XGB Regressor
    
    from sklearn.model_selection import train_test_split    #importa la funzione train_test_split
    
    from sklearn.metrics import mean_squared_error      #importa errore quadratico medio
    from sklearn.metrics import mean_absolute_error     #importa errore assoluto medio
    from math import sqrt                               #importa radice quadrata
    
    import datetime                                     #importa datetime per manipolare date e orari
    
    Continua a leggere
  • Previsioni meteo con machine learning – parte 3/8: la scelta dei modelli

    Come visto nel capitolo introduttivo di questa guida il machine learning si basa su dei modelli, ovvero dei programmi che hanno la capacità di trovare schemi o prendere decisioni analizzando un set di dati mai visto prima. Tra i molteplici modelli disponibili abbiamo anallizatoi seguenti:

    • Decision Tree Regressor;
    • Random Forest Regressor;
    • Gradient Boosting Regressor;
    • Linear Regression;
    • Elastic Net;
    • SVR;
    • Cat Boost Regressor;
    • XGB Regressor.

    La domanda cruciale ora è: quale è il modello che si comporta in modo migliore per i nostri scopi?

    Continua a leggere
  • Previsioni meteo con machine learning – parte 2/8: raccolta dei dati

    I dati che i nostri modelli di machine learning andranno ad analizzare verranno salvati in un file *.csv e non all’interno di un database mysql. Questa scelta è legata al fatto che utilizzeremo la libreria Pandas in Python per importare i dati direttamente dal file prima di essere elaborati.

    L’obiettivo è quello di utilizzare i dati raccolti dalla nostra stazione meteo costruita seguendo la guida Come realizzare una stazione meteo per effettuare delle previsioni. Sarete comunque liberi di utilizzare altre fonti di dati disponibili anche online per rendere il vostro progetto più affidabile.

    Come anticipato nell’introduzione, i dati che andremo ad analizzare saranno i seguenti:

    • temperatura massima giornaliera;
    • temperatura minima giornaliera;
    • umidità massima giornaliera;
    • umidità minima giornaliera;
    • pressione massima giornaliera;
    • pressione minima giornaliera;
    • variazione di pressione giornaliera (pressione massima – pressione minima);
    • precipitazioni cumulate giornaliere.
    Continua a leggere
  • Previsioni meteo con machine learning – parte 1/8: introduzione

    Benvenuti nel primo degli otto capitoli dedicati al calcolo delle previsioni meteo tramite machine learning.

    Il machine learning è un sottoinsieme dell’intelligenza artificiale che permette ai sistemi di apprendere dai dati e prendere decisioni con un intervento umano minimo, senza essere esplicitamente programmati. Utilizza algoritmi per analizzare grandi quantità di dati, migliorando le prestazioni nel tempo man mano che viene esposto a maggiori quantità di informazioni.

    Il nostro obiettivo è quindi quello di utilizzare i dati raccolti dalla stazione meteo (realizzata seguendo la guida Come realizzare una stazione meteo) per determinare il meteo del giorno seguente.

    Continua a leggere