Climate Strike – Risparmio energetico e Python, un modello predittivo per sapere se un locale è occupato o meno.

Oggi, da quello che ho capito, è la giornata mondiale sul Clima.

Il clima, la tutela del nostro ecosistema è un problema tanto rilevante quanto poco sentito, purtroppo non ho avuto assolutamente il tempo di scioperare, con fatica ho trovato sei ore di sonno questa notte.

In tutto questo bisogna convenire che non ci sono altri pianeti dove traslocare, nonostante Marco, un alumno di InnovAction Lab, con l’ESA stia studiando come colonizzare Marte con dei batteri (concedetemi la semplificazione, qui alcune ricerche della sua supervisor), quindi dobbiamo impegnarci nel nostro piccolo a preservare quello che c’è stato dato.

Una ricerca interessante dal titolo “Accurate occupancy detection of an office room from light,temperature, humidity and CO2measurements using statisticallearning models”  è stata condotta dall’ Università di Mons in Belgio attraverso i finanziamenti dell’Unione Europea (“no. 285173—NEED4B “NewEnergy Efficient Demonstration for Buildings”).

Nello studio si valuta come attraverso le misurazioni dei sensori di luce, umidità, temperatura, CO2 sia possibile stimare se sono presenti o meno delle persone all’interno di una stanza così da poter utilizzare o meno eventuali impianti di riscaldamento o ventilazione.

La possibilità di stimare correttamente se in una stanza o qualsiasi ambiente ci sono o meno delle persone può portare ad un risparmio energetico tra il 30% e il 42%  [1]

L’articolo valuta gli stimatori più performanti per la rilevazione dell’occupazione o meno di un locale.

In termini di accuratezza (accuratezza=n° predizioni correttte / n° totale predizioni) i migliori sono i modelli LDA (Linear Discriminant Analysis), i CART (Classification and Regression Trees) e i modelli Random Forest.

Rullo di tamburi!

I Dati sono disponibili gratuitamente all’interno della banca dati UCI e sono anche abbastanza puliti, già divisi in train-test (qui il link).

E’ un dataset molto interessante sul quale allenarsi, leggetevi il paper, aprite il vostro Jupyter Notebook e provate a creare ed allenare il vostro modello predittivo.

Per rendere l’idea l’articolo scorso su Bokeh e la formattazione automatica degli assi, nasceva proprio da questo dataset.

Volevo poter selezionare il grafico da visualizzare per vedere l’andamento di una determinata variabile ad esempio la temperatura o la CO2.

Il codice che vi propongo è ancora da affinare, ci lavorerò meglio nei prossimi weekend, ma i risultati sono comunque interessanti.

I modelli che ho allenato e testato sono i seguenti:

  • Classificatore Multinomiale Naive-Bayes
  • Regressione Logistica
  • Random Forest

Per valutare la performance dei modelli invece ho sfruttato i seguenti indicatori:

  • Recall
  • Precision
  • F1 Score
  • Accuracy
  • ROC-AUC (si devo ancora scrivere un post su questo indicatore come vi avevo promesso qui)

Il modello che si è dimostrato più performante valutando tutti gli indicatori precedenti è stata la regressione logistica.

Ovviamente è ancora tutto da approfondire:

  • Come cambia la performance del modello se riduco le variabili di ingresso?(Es vedo se il modello migliora, peggiora è indifferente alle rilevazioni della temperatura)
  • Quali sono i risultati di altri stimatori?
  • Il modello come risponde ad una validazione incrociata dei dati (crossfold validation)?

Con buona probabilità per fine aprile/maggio potrei trovare risposta a queste domande, chissà!

Per ora ecco il codice, se lo volete riprodurre dovete scaricarvi i dataset da qui ed inserirli nella stessa cartella dove lo eseguirete.

Punti salienti del codice:

  • Il loop che ho utilizzato per riprodurre più plot con Matplotlib
  • Il grafico interattivo attraverso Bokeh
  • La funzione per allenare e testare un classificatore con sklearn.metrics
  • La funzione per determinare gli indicatori di performance sempre con sklearn.metrics

Il codice è un po’ lungo lo ammetto, ma in parte era necessario 🙂

Se ti è piaciuto o lo trovi utile condividilo liberamente o clicca “Mi Piace”, con pochi click si può fare tanto, se pensi meriti delle correzioni, typo, o si possa migliorare scrivimi pure.

Grazie per aver letto l’articolo! <3
Andrea

[1] V.L. Erickson, M.Á. Carreira-Perpi˜nán, A.E. Cerpa, OBSERVE: Occupancy-basedsystem for efficient reduction of HVAC energy, in: Proceedings of the 10thInternational Conference on, IEEE, Information Processing in Sensor Networks(IPSN), Chicago, IL, 2011, pp. 258–269.[2] V.L. Erickson, M.Á. Carreira-Perpi˜nán, A.E. Cerpa,

Lascia un commento