planet-smart-city-laguna-iot-pucsp

⚡️ Final extension project by the Center for Data Science and Artificial Intelligence at PUC-SP. This initiative applies AI, IoT, and data-driven strategies to optimize water and energy systems in the Smart City Laguna (Fortaleza, Brazil), in collaboration with Proptech, Planet Smart City, UN-Habitat and Starlink. 💦

https://github.com/mindful-ai-assistants/planet-smart-city-laguna-iot-pucsp

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (6.3%) to scientific vocabulary

Keywords

all-ai-stuff cdia-puc-sp desicion-making humanistoc-ai-data-science iot mathematical-modelling oneness-consciousness planert-smart-city proptech python3 smart-city-laguna-fortaleza-br starlink un-habitat

Keywords from Contributors

mesh sequences interactive hacking network-simulation
Last synced: 6 months ago · JSON representation

Repository

⚡️ Final extension project by the Center for Data Science and Artificial Intelligence at PUC-SP. This initiative applies AI, IoT, and data-driven strategies to optimize water and energy systems in the Smart City Laguna (Fortaleza, Brazil), in collaboration with Proptech, Planet Smart City, UN-Habitat and Starlink. 💦

Basic Info
Statistics
  • Stars: 2
  • Watchers: 1
  • Forks: 0
  • Open Issues: 42
  • Releases: 0
Topics
all-ai-stuff cdia-puc-sp desicion-making humanistoc-ai-data-science iot mathematical-modelling oneness-consciousness planert-smart-city proptech python3 smart-city-laguna-fortaleza-br starlink un-habitat
Created 9 months ago · Last pushed 6 months ago
Metadata Files
Readme License Citation Codeowners

README.it_IT.md


[ Italiano] [ Portugus] [ English]





CDIA Nexus PUC-SP: Centro di Innovazione per Soluzioni Intelligenti di Acqua ed Energia Smart City Laguna IoT, Fortaleza, Brasile

Progetto per il monitoraggio, la previsione e lottimizzazione del consumo energetico in una casa intelligente, utilizzando IoT e IA. Sviluppato nel contesto della Smart City Laguna CDIA PUC-SP.





In collaborazione con Planet Smart City, PUC-SP - Scienza dei Dati & IA, ONU Obiettivi di Sviluppo Sostenibile (SDG), Starlink e Proptech Brasile



https://github.com/user-attachments/assets/3d79a4f6-4e1c-4645-b194-e30869c4f086

Guarda in Full HD su YouTube

<!--Dichiarazione di Riservatezza -->



[!IMPORTANT]

Avvertenze Importanti




Esplora il Simulatore e supporta il progetto di IA per le Citt Intelligenti



Simulatore Smart City Laguna




Panoramica del Progetto:


Sviluppato dal gruppo CDIA della PUC-SP, questo progetto di estensione mira a ottimizzare i sistemi intelligenti di gestione delle risorse nella Smart City Laguna combinando tecnologia, sostenibilit e innovazione comunitaria per rafforzare le regioni svantaggiate.

Con una solida base di collaborazione interdisciplinare e cooperazione internazionale, questa iniziativa collega la scienza dei dati ad applicazioni reali per promuovere citt resilienti, inclusive e intelligenti.


Planet Smart City:

Fondata nel 2015 da Giovanni Savio e Susanna Marchionni, Planet Smart City guida il movimento globale per abitazioni accessibili, intelligenti e sostenibili. I loro progetti combinano:

  • Progettazione urbana avanzata
  • Tecnologia integrata
  • Iniziative di costruzione comunitaria


CDIA Nexus PUC-SP: Hub di Innovazione per Acqua ed Energia Intelligenti

Il CDIA Nexus un'iniziativa del Gruppo di Scienza dei Dati e Intelligenza Artificiale della PUC-SP, dedicata allo sviluppo di soluzioni applicate di IA e IoT per la gestione intelligente di acqua ed energia.

Questo hub di innovazione integra ricerca applicata, estensione universitaria e impatto sociale, con l'obiettivo di trasformare le comunit attraverso una tecnologia con uno scopo.

Le soluzioni sviluppate sono applicate in contesti reali, come la Smart City Laguna (Fortaleza, Brasile), attraverso progetti in collaborazione con organizzazioni come Planet Smart City, UN-Habitat, Starlink, tra le altre.

Il progetto mira a combinare sostenibilit, inclusione digitale e innovazione sociale, promuovendo citt pi resilienti, efficienti e incentrate sulle persone.


Dal Codice allIntuizione: Analisi dei Dati e Supporto alle Decisioni:


Obiettivo del Progetto:

Sviluppare una soluzione basata su scienza dei dati e intelligenza artificiale per monitorare, prevedere e ottimizzare il consumo di energia elettrica in una casa intelligente (Smart City Laguna). Il progetto simula i dati dei sensori per stanza e utilizza il machine learning per anticipare i modelli di consumo e proporre azioni di risparmio.


Dataset:

Tocca qui per accedere al dataset!

stato utilizzato un dataset simulato, contenente registrazioni giornaliere con le seguenti variabili:

  • Date: Giorno della misurazione
  • KW/H: Consumo totale di energia in kWh
  • Room1, Room2, LivingRoom, Kitchen, Pool: Numero di attivazioni dei sensori per stanza
  • SolarGeneration: Energia generata dai pannelli solari (simulata)


Domanda di Business:


Come possiamo prevedere il consumo energetico giornaliero in base al comportamento specifico per stanza e, da l, proporre misure automatizzate per il risparmio e lefficienza energetica?


Metodologia e Fasi:



  1. Importazione e visualizzazione dei dati

Lettura del foglio di calcolo utilizzando pandas e validazione dei formati.



  1. Preprocessing
    • Conversione della colonna Date nel formato datetime
    • Creazione della variabile OrdinalDay per la modellazione
    • Calcolo del consumo medio per attivazione per stanza

    - Simulazione della generazione solare e proiezione del consumo futuro



  1. Modellazione Predittiva

stato addestrato un modello di Regressione Lineare per stimare il consumo (KW/H) in base al totale delle attivazioni per stanza. Include anche la previsione per il giorno successivo.



  1. Visualizzazioni
  • Time series plots with matplotlib/seaborn
  • Ranking of rooms with highest consumption
  • Activation patterns by cluster
  • Interactive dashboard using Streamlit for real-time monitoring (optional)



  1. Esportazione del Report

Generazione automatica di report in PDF con dati rilevanti, grafici e previsioni.



Risultati:

  • Il modello di regressione ha mostrato una buona capacit di prevedere il consumo in base allattivit nelle stanze
  • Soggiorno e Cucina sono stati identificati come le aree a maggiore impatto
  • La Piscina, sebbene attivata raramente, ha mostrato un consumo medio elevato per attivazione indicando spreco; stata rimossa dal modello, poich il progetto Laguna rivolto alledilizia sociale e non prevede piscine
  • La generazione solare pu compensare significativamente il consumo durante le ore di punta, se gestita correttamente


Conclusioni e Raccomandazioni:

  • Automatizzare lo spegnimento dell'energia nelle aree ad alto utilizzo come soggiorno e cucina per ottenere risparmi immediati
  • Programmare l'utilizzo della piscina per mitigare picchi di consumo non necessari
  • Sfruttare la generazione solare per bilanciare l'uso degli elettrodomestici durante le ore di massima produzione
  • Implementare avvisi quando vengono superati gli obiettivi di consumo giornalieri


Deliverables:

  • Applicazione Streamlit per il monitoraggio in tempo reale dei sensori
  • Report in PDF con metriche di consumo e raccomandazioni
  • Notebook contenente l'intera pipeline dei dati, modello predittivo e analisi visive


Funzionalit:

  • Dashboard in tempo reale che mostra i dati dei sensori per stanza
  • Previsione del consumo energetico giornaliero tramite Regressione Lineare
  • Sensori simulati per stanza (Stanza1, Stanza2, Soggiorno, Cucina)
  • Obiettivo di consumo giornaliero con sistema di avvisi
  • Sistema di aggiornamento automatico usando streamlit_autorefresh
  • Clustering dei pattern di utilizzo tramite KMeans + PCA
  • Esportazione del report in PDF
  • Confronto con la generazione solare simulata

Tecnologie Utilizzate:

  • Python
  • Pandas e NumPy elaborazione e analisi dei dati
  • Scikit-learn regressione lineare e KMeans
  • Matplotlib, Seaborn e Plotly visualizzazioni
  • Streamlit dashboard interattiva
  • FPDF generazione di report PDF
  • Pillow rendering delle immagini della dashboard


Struttura del Progetto:


lagunacitydigital/
app.py # Applicazione principale Streamlit
consumomodel.pkl # Modello predittivo addestrato
cluster
model.pkl # Modello KMeans addestrato
dados/
ConsumodeEnergiaAnalise.xlsx # Dati simulati per stanza
relatorios/
relatorio
consumoYYYY-MM-DD.pdf
imagens/
grafico
pca.png
heatmapcluster.png
grafico
regressao.png
README.md


Esempi di Visualizzazione:


Prestazioni del Modello:

  • R: 0,70
  • RMSE: 11.528,06
  • Stanza pi influente: Soggiorno (28,21%)


Conclusioni Finali:

Obiettivi di consumo personalizzati

Sistema di allerta in tempo reale

  • Supporto alla sostenibilit energetica urbana
  • Base scalabile per limplementazione completa di una Smart City


Questa analisi stata sviluppata utilizzando pratiche di data science applicate al consumo energetico residenziale, con l'obiettivo di supportare il processo decisionale dell'utente finale.


Panoramica della Presentazione:

CDIA Nexus il progetto finale di estensione accademica e sociale del Gruppo di Scienza dei Dati e Intelligenza Artificiale della PUC-SP, incentrato sull'applicazione di IoT e IA per sistemi intelligenti di acqua ed energia nella Smart City Laguna, uno sviluppo urbano pionieristico a Fortaleza, in Brasile.

Questa iniziativa stata sviluppata in collaborazione con Planet Smart City, UN-Habitat e Starlink, allineata agli Obiettivi di Sviluppo Sostenibile (SDGs) delle Nazioni Unite e impegnata in innovazione sociale, inclusione digitale e intelligenza ambientale.


I punti salienti della presentazione:

  • Una Dashboard integrata per il monitoraggio di acqua ed energia
  • Analisi predittiva con modelli di IA
  • Coinvolgimento della comunit attraverso strategie guidate dai dati
  • Approfondimenti sullimplementazione grazie alla connettivit Starlink e allinfrastruttura di Planet


Dati per il Bene. Innovazione con Significato.


Collaboratore chiave: Stefano Buono, fisico e imprenditore, ex ricercatore del CERN e fondatore di AAA (venduta a Novartis), attualmente Presidente di LIFTT e CEO di Newcleo (innovazione nucleare pulita).


Visita Planet Smart City - Ufficiale

Visita Planet Smart City - Brasile

Visita Planet Smart City - India


Il Progetto Laguna: Innovazione Sociale Intelligente:

Situata a So Gonalo do Amarante, Cear, Fortaleza, Brasile; Smart City Laguna una citt intelligente di punta di Planet in Brasile, con oltre 60 soluzioni intelligenti, tra cui:

  • Wi-Fi pubblico e infrastruttura IoT
  • Mobilit urbana sostenibile e illuminazione
  • Drenaggio delle acque piovane con pavimentazioni permeabili
  • Programmi culturali, educativi e di governance


Al centro di questo ecosistema:

Il Community Manager un professionista formato dedicato a:

  • Mobilitare la governance partecipativa
  • Promuovere workshop, educazione e coinvolgimento
  • Coltivare la coesione sociale e la gestione a lungo termine


Partnerships Globali:

Un ringraziamento speciale a Pedro Braida Neto, CEO di Proptech Brazil, per guidare con empatia, rispetto e integrit. Il modo in cui ti dedichi agli altri fa davvero la differenza.


Scrivi a Pedro


Esprimiamo la nostra pi sentita gratitudine alle organizzazioni e alle persone che hanno reso possibile l'implementazione del CDIA PUC-SP. Un ringraziamento speciale a:


| Organizzazione | Contributo | |---------------------------|--------------------------------------------------------------| | Nazioni Unite (ONU) | Finanziamento per l'acquisto di pannelli solari | | PUC-SP (CDIA) | Progettazione e implementazione di IoT e Intelligenza Artificiale | | UN-Habitat | Supporto tecnico e quadri etici | | Starlink | Infrastruttura internet satellitare | | Planet Smart City | Sviluppo urbano e supporto in loco | | Proptech Brazil | Implementazione locale e supporto strategico |


Esprimiamo inoltre la nostra gratitudine a:

  • I leader locali e i membri della comunit per la fiducia e la continua collaborazione.
  • Il team tecnico multidisciplinare per la dedizione a soluzioni innovative e sostenibili.
  • Tutti coloro che hanno contribuito, direttamente o indirettamente, a dare vita a questa visione.


Insieme, questi partner incarnano un approccio integrato per il raggiungimento degli Obiettivi di Sviluppo Sostenibile, in particolare nelle regioni emergenti.


CDIA PUC-So Paulo Module: Water & Energy Systems

The Water & Energy Module designed by CDIA focuses on the use of IoT and AI for resource optimization. Key features:

  • Smart sensors for consumption monitoring
  • AI-driven dashboards with predictive alerts
  • Visualizations for community awareness
  • Scalable resource management models


Team Members:

| Name | Role | |-------------------------|--------------------------------------------------| | Andson Ribeiro | Github - Contact | | Fabiana Campanari | Github - Contact Hub | | Leonardo X Fernandes | Github - Contact | | Pedro Vyctor Almeida | Github - Contact |


Tutti i membri hanno contribuito in modo collaborativo nelle aree tecniche e creative. Fabiana Campanari ha anche guidato l'identit del progetto e il linguaggio visivo.


Innovazioni e Attivit:

  • Installazione di sensori IoT per il monitoraggio di acqua ed energia
  • Sviluppo di cruscotti predittivi e sistemi di allerta
  • Co-creazione di un'interfaccia di visualizzazione dati per i residenti
  • Implementazione di progetti pilota di energia solare supportati da UN-Habitat
  • Analisi in tempo reale per la pianificazione delle risorse e la sostenibilit


Risultati di Apprendimento:

Il team ha acquisito esperienza pratica in:

  • Design thinking + metodologie partecipative
  • Ricerca sul campo in infrastrutture urbane
  • Machine learning e modellazione dei dati
  • Prototipazione e integrazione di sistemi
  • Fornitura di soluzioni che riflettono i bisogni reali della comunit


Documentazione Visiva:


Galleria Fotografica - drone_view_laguna_2025.jpg Vista aerea della citt
- team_workshop_on_site.jpeg Attivit sul campo con i residenti
- solar_panels_community.jpeg Installazione solare supportata dall'ONU
- iot_dashboard_mockup.png Anteprima del design del cruscotto


Presentazioni

  • CDIA_Final_Pitch.pdf Principali intuizioni e risultati
  • UN_SolarInvestment_Laguna.pptx Presentazione per gli stakeholder
  • IoT_Architecture_Prototype.pptx Architettura dei sensori e flusso dei dati


Ringraziamenti:

Rivolgiamo un sincero ringraziamento a Pedro di Proptech, la cui guida e competenza sono state fondamentali durante tutto il progetto. Il suo supporto e la sua visione sono stati pilastri essenziali del nostro percorso di sviluppo.


[Dataset Utilizzato]

clicca qui per ottenere il dataset

stato utilizzato un dataset simulato, contenente registrazioni giornaliere con le seguenti variabili:

  • Data: Giorno della misurazione
  • KW/H: Consumo totale di energia in kWh
  • Quarto1, Quarto2, Sala, Cozinha, Piscina: Numero di attivazioni dei sensori in ogni stanza
  • Gerao Solar: Energia generata dai pannelli solari (simulata)


Modellazione Predittiva:

stato addestrato un modello di [Regressione Lineare] per stimare il consumo (KW/H) in base al numero totale di attivazioni per stanza. stata inoltre implementata la previsione per il giorno successivo.


Visualizzazioni:
- Grafici a serie temporali con matplotlib/seaborn.
- Classifica delle stanze con maggiore consumo.
- Rappresentazioni delle attivazioni per cluster.
- Dashboard interattiva Streamlit per la visualizzazione in tempo reale (opzionale).


Pipeline del Codice


Cella 1 Importazione delle librerie

python import locale import numpy as np import pandas as pd import seaborn as sns import matplotlib.pyplot as plt from sklearn.decomposition import PCA from sklearn.cluster import KMeans from sklearn.linear_model import LinearRegression from sklearn.preprocessing import StandardScaler from sklearn.model_selection import train_test_split from sklearn.metrics import mean_absolute_error, r2_score, mean_squared_error


Cella 2 Caricamento dei dati

```python

Cambia il percorso secondo il tuo ambiente

filepath = "/Users/fabicampanari/Desktop/Project Planet Smart City Laguna/2-CRISP-DM - Project Smart City Laguna/ CRISP-DMProjetoSmartCityLaguna/ConsumodeEnergiaAnalise.xlsx" xls = pd.ExcelFile(filepath) sheetnames = xls.sheetnames print(sheetnames) df = xls.parse('Sheet1') print(df.head()) df.info() ```


Cella 3 Preprocessing delle date

python mesi_it = { 'gen': '01', 'feb': '02', 'mar': '03', 'apr': '04', 'mag': '05', 'giu': '06', 'lug': '07', } df['Data'] = df['Data'].astype(str) df['Data'] = df['Data'].str.lower().replace(mesi_it, regex=True) df['Data'] = pd.to_datetime(df['Data'] + '/2025', format='%d/%m/%Y')


Cella 4 Statistiche descrittive e correlazione

python summary = df.describe() correlation = df.corr(numeric_only=True) print(summary) print(correlation)


Cella 5 [PLOT 1] Distribuzione delle variabili

python fig, axes = plt.subplots(2, 3, figsize=(15, 10)) axes = axes.flatten() cols = df.columns[1:7] for i, col in enumerate(cols): sns.histplot(df[col], kde=True, ax=axes[i], bins=10) axes[i].set_title(f'Distribuzione - {col}') axes[i].set_xlabel(col) plt.tight_layout() plt.suptitle("Distribuzione delle Variabili", fontsize=16, y=1.02) plt.show()

Inserisci qui per visualizzare la distribuzione di consumi e attivazioni.


Cella 6 [PLOT 2] Consumo totale nel tempo

python plt.figure(figsize=(14, 6)) plt.plot(df['Data'], df['KW/H'], label='Consumo Totale (KW/H)', color='blue', linewidth=2) plt.title('Evoluzione del Consumo Totale di Energia') plt.xlabel('Data') plt.ylabel('KW/H') plt.grid(True) plt.legend() plt.tight_layout() plt.show()

Mostra levoluzione del consumo nel tempo.


Cella 7 Raggruppamento settimanale e [PLOT 3] Attivazioni settimanali per stanza

python df['Settimana'] = df['Data'].dt.to_period('W').apply(lambda r: r.start_time) df_settimana = df.groupby('Settimana')[['Quarto1', 'Quarto2', 'Sala', 'Cozinha', 'Piscina']].sum() df_settimana.plot(figsize=(12, 6), marker='o') plt.title('Attivazioni Settimanali per Stanza') plt.ylabel('Numero di Attivazioni') plt.xlabel('Settimana') plt.xticks(rotation=45) plt.grid(True) plt.tight_layout() plt.show()

Mostra la somma delle attivazioni settimanali per stanza.


Cella 8 [PLOT 4] Correlazione tra attivazioni e consumo

python correlazioni = df[['KW/H', 'Quarto1', 'Quarto2', 'Sala', 'Cozinha', 'Piscina']].corr()['KW/H'][1:] plt.figure(figsize=(10, 5)) sns.barplot(x=correlazioni.index, y=correlazioni.values, palette='Oranges_r') plt.title('Correlazione tra Attivazioni e Consumo di Energia (kWh)') plt.ylabel('Correlazione') plt.xlabel('Stanza') plt.tight_layout() plt.show()

Mostra quali stanze impattano maggiormente il consumo totale.


Cella 9 Modellazione predittiva (Regressione Lineare) e valutazione

python X = df[['Quarto1', 'Quarto2', 'Sala', 'Cozinha']] y = df['KW/H'] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) modello = LinearRegression() modello.fit(X_train, y_train) y_pred = modello.predict(X_test) mse = mean_squared_error(y_test, y_pred) r2 = r2_score(y_test, y_pred) print("Errore quadratico medio (MSE):", round(mse, 2)) print("R:", round(r2, 2))


Cella 10 [PLOT 5] Consumo reale vs previsto

python plt.figure(figsize=(10, 5)) plt.scatter(y_test, y_pred, alpha=0.7) plt.plot([y.min(), y.max()], [y.min(), y.max()], 'r--') plt.xlabel("Consumo reale (kWh)") plt.ylabel("Consumo previsto (kWh)") plt.title("Consumo Reale vs Previsto") plt.grid(True) plt.tight_layout() plt.show()

Valuta visivamente le prestazioni del modello predittivo.


Cella 11 Coefficienti del modello

python coefficienti = pd.Series(modello.coef_, index=X.columns) print("\nContributo di ogni stanza nella previsione (coefficienti):") print(coefficienti.sort_values(ascending=False))

Mostra il peso di ogni stanza nella previsione del consumo.


Cella 12 Calcolo percentuali di attivazione per stanza

python df['Totale_attivazioni'] = df[['Quarto1', 'Quarto2', 'Sala', 'Cozinha']].sum(axis=1) for stanza in ['Quarto1', 'Quarto2', 'Sala', 'Cozinha', 'Piscina']: df[f'{stanza}_pct'] = df[stanza] / df['Totale_attivazioni']


Cella 13 [PLOT 6] Metodo del Gomito per KMeans

python scaler = StandardScaler() X_scaled = scaler.fit_transform(X) inertia = [] for k in range(1, 10): km = KMeans(n_clusters=k, random_state=42) km.fit(X_scaled) inertia.append(km.inertia_) plt.figure(figsize=(8,5)) plt.plot(range(1, 10), inertia, marker='o') plt.title('Metodo del Gomito') plt.xlabel('Numero di cluster') plt.ylabel('Inerzia') plt.grid(True) plt.show()

Scegli visivamente il numero ideale di cluster.


Cella 14 KMeans e [PLOT 7] Pairplot dei cluster

python kmeans = KMeans(n_clusters=3, random_state=42) df['Cluster'] = kmeans.fit_predict(X_scaled) sns.pairplot(df, hue='Cluster', vars=['Quarto1', 'Quarto2', 'Sala', 'Cozinha'], palette='tab10') plt.suptitle("Pattern di Utilizzo Raggruppati per Cluster", y=1.02) plt.show()

Visualizza i raggruppamenti dei profili di consumo.


Cella 15 Profilo medio per cluster e denominazione

```python colpcts = [f'{c}pct' for c in ['Quarto1', 'Quarto2', 'Sala', 'Cozinha']] profiloclusters = df.groupby('Cluster')[['Quarto1', 'Quarto2', 'Sala', 'Cozinha', 'KW/H'] + colpcts].mean()

def denominacluster(row): mediakw = df['KW/H'].mean() if row['KW/H'] < mediakw * 0.75: consumototale = ' Basso Consumo' elif row['KW/H'] > mediakw * 1.25: consumototale = ' Alto Consumo' else: consumototale = ' Consumo Bilanciato' alti = [] for stanza in ['Quarto1', 'Quarto2', 'Sala', 'Cozinha']: mediapct = df[f'{stanza}pct'].mean() if row[f'{stanza}pct'] > mediapct * 1.2: alti.append(stanza) if consumototale == ' Basso Consumo': return consumototale if consumototale == ' Consumo Bilanciato': if len(alti) == 0: return consumototale else: return f" Consumo Elevato in {', '.join(alti)}" if consumototale == ' Alto Consumo': if len(alti) == 0: return consumo_totale else: return f" Alto Consumo (In {', '.join(alti)})"

profiloclusters['Profilo'] = profiloclusters.apply(denomina_cluster, axis=1) ```


Cella 16 Dizionario raccomandazioni e stampa per cluster

```python def mappaprofilochiave(profilo): if profilo == ' Basso Consumo': return profilo if profilo == ' Consumo Bilanciato': return profilo if profilo.startswith(' Consumo Elevato'): return ' Consumo Elevato' if profilo.startswith(' Alto Consumo'): if 'In' in profilo: idx = profilo.index('In') + 3 testo = profilo[idx:] principale = testo.split(',')[^0].strip() if principale in ['Sala']: return ' Alto Consumo (Sala/Cozinha)' elif principale == 'Cozinha': return ' Alto Consumo (Cozinha)' else: return ' Alto Consumo' else: return ' Alto Consumo' return profilo

raccomandazioni = { ' Basso Consumo': [ " Mantieni le buone pratiche gi adottate.", " Offri premi o sconti (gamification).", " Incentiva l'uso di energia solare/microgenerazione." ], ' Consumo Bilanciato': [ " Automatizza lo spegnimento degli apparecchi in orari fissi.", " Installa sensori di presenza in camere e soggiorno.", " Invia report settimanali di confronto dei consumi." ], ' Consumo Elevato': [ " Automatizza luci ed elettronica nelle stanze a consumo elevato.", " Installa sensori di presenza specifici.", " Monitora l'uso per identificare picchi inutili." ], ' Alto Consumo (Sala/Cozinha)': [ " Pianifica la pompa della cucina fuori dagli orari di punta.", " Incentiva l'uso consapevole di luci ed elettronica.", " Suggerisci automazione e tariffa bianca." ], ' Alto Consumo (Cozinha)': [ " Controlla gli apparecchi della cucina per consumi eccessivi.", " Controlla gli orari di uso di forno e frigo.", " Incentiva l'uso efficiente dell'illuminazione." ] }

for clusterid, row in profiloclusters.iterrows(): print(f"\n=== Cluster {clusterid} - {row['Profilo']} ===") print(" Profilo medio di consumo (attivazioni e kWh):") print(row[['Quarto1', 'Quarto2', 'Sala', 'Cozinha', 'KW/H']]) print("\n Percentuale media di attivazioni per stanza (%):") print((row[colpcts] * 100).round(2)) print("\n Raccomandazioni:") chiave = mappaprofilochiave(row['Profilo']) if chiave in raccomandazioni: for rec in raccomandazioni[chiave]: print("-", rec) else: print("- Nessuna raccomandazione specifica per questo profilo.") ```


Cella 17 [PLOT 8] Boxplot consumo per cluster

python plt.figure(figsize=(7,5)) sns.boxplot(x='Cluster', y='KW/H', data=df) plt.title('Distribuzione Consumo (KW/H) per Cluster') plt.show()

Mostra la variazione del consumo per cluster.


Cella 18 [PLOT 9] Heatmap percentuali per cluster

python heatmap_data = profilo_clusters[col_pcts] * 100 plt.figure(figsize=(8, 5)) sns.heatmap(heatmap_data, annot=True, cmap='YlGnBu', fmt=".2f") plt.title('Percentuale di Attivazioni per Stanza (%)') plt.xlabel('Stanze') plt.ylabel('Cluster') plt.show()

Visualizza la distribuzione delle attivazioni per cluster.


Cella 19 [PLOT 10] Radar delle stanze per cluster

python categorie = ['Quarto1', 'Quarto2', 'Sala', 'Cozinha'] angles = np.linspace(0, 2 * np.pi, len(categorie), endpoint=False).tolist() angles += angles[:1] plt.figure(figsize=(10, 8)) for i, row in profilo_clusters.iterrows(): valori = [row[cat] for cat in categorie] valori += valori[:1] plt.polar(angles, valori, label=f'Cluster {i}') plt.xticks(angles[:-1], categorie) plt.title('Radar delle Stanze per Cluster') plt.legend() plt.show()

Confronta il profilo di attivazione di ciascun cluster.


Cella 20 [PLOT 11] Visualizzazione cluster con PCA


Abbiamo applicato il PCA a scopo dimostrativo, anche con solo due cluster, per mostrare come agisce nella riduzione della dimensionalit e nellindividuazione delle variabili pi rilevanti.

Sebbene non essenziale in questo caso, il PCA utile per dataset con molte colonne o pi di due cluster, migliorando prestazioni e visualizzazione dei dati.


python pca = PCA(n_components=2) X_pca = pca.fit_transform(X_scaled) df_plot = pd.DataFrame(X_pca, columns=['Componente 1', 'Componente 2']) df_plot['Cluster'] = df['Cluster'] plt.figure(figsize=(8,6)) for cluster in df_plot['Cluster'].unique(): plt.scatter( df_plot[df_plot['Cluster'] == cluster]['Componente 1'], df_plot[df_plot['Cluster'] == cluster]['Componente 2'], label=f'Cluster {cluster}' ) plt.title('Visualizzazione dei Cluster con PCA') plt.xlabel('Componente 1') plt.ylabel('Componente 2') plt.legend() plt.grid(True) plt.show()

Riduce la dimensionalit per visualizzare i cluster in 2D.


Interpretazione dei Grafici e dei Profili

  • Distribuzione delle variabili: Mostra come sono distribuite le attivazioni e i consumi.
  • Evoluzione temporale: Permette di identificare le tendenze di consumo nel corso dei giorni.
  • Attivazioni settimanali: Aiuta a visualizzare i pattern per ambiente.
  • Correlazione: Mostra la forza della relazione tra attivazioni e consumo.
  • Consumo reale vs previsto: Valuta la qualit del modello predittivo.
  • Clusterizzazione: Identifica gruppi con comportamenti simili per raccomandazioni personalizzate.


Raccomandazioni per Profilo

| Profilo | Principali Raccomandazioni | | :-- | :-- | | Basso Consumo | Mantenere buone pratiche, incentivare energia solare, premi/gamification | | Consumo Bilanciato | Automatizzare spegnimenti, installare sensori di presenza, report comparativi | | Consumo Elevato | Automatizzare luci/elettronica, sensori di presenza specifici, monitorare picchi | | Alto Consumo (Sala/Cucina) | Pianificare pompa fuori picco, uso consapevole dellilluminazione, suggerire automazione e tariffa oraria | | Alto Consumo (Cucina) | Verificare apparecchiature, controllare orari di utilizzo, incentivare efficienza dellilluminazione |


Conclusione

Il progetto consente di identificare i pattern di consumo, prevedere luso futuro e raccomandare azioni per una maggiore efficienza energetica, personalizzando le raccomandazioni in base al profilo di utilizzo di ogni abitazione.


Nota:
Adattare il percorso del file Excel (file_path) in base al proprio ambiente.


Questa analisi stata preparata basandosi sulle pratiche di data science applicate al contesto del consumo energetico residenziale e mira a facilitare il processo decisionale per il cliente finale.



Let the data flow... Ping Us


My Contacts Hub





Back to Top

Copyright 2024 Mindful-AI-Assistants. Codice rilasciato sotto licenza MIT.

Owner

  • Name: 𖤐 Mindful AI ॐ
  • Login: Mindful-AI-Assistants
  • Kind: organization
  • Email: fabicampanari@proton.me
  • Location: Brazil

𖤐 Empowering businesses with AI-driven technologies like Copilots, Agents, Bots and Predictions, alongside intelligent Decision-Making Support 𖤐

GitHub Events

Total
  • Issues event: 12
  • Delete event: 303
  • Push event: 348
  • Pull request event: 592
  • Create event: 288
Last Year
  • Issues event: 12
  • Delete event: 303
  • Push event: 348
  • Pull request event: 592
  • Create event: 288

Committers

Last synced: 8 months ago

All Time
  • Total Commits: 194
  • Total Committers: 2
  • Avg Commits per committer: 97.0
  • Development Distribution Score (DDS): 0.015
Past Year
  • Commits: 194
  • Committers: 2
  • Avg Commits per committer: 97.0
  • Development Distribution Score (DDS): 0.015
Top Committers
Name Email Commits
Fabiana 🧬 Campanari 1****i 191
dependabot[bot] 4****] 3

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 14
  • Total pull requests: 434
  • Average time to close issues: less than a minute
  • Average time to close pull requests: 35 minutes
  • Total issue authors: 1
  • Total pull request authors: 4
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 334
  • Bot issues: 0
  • Bot pull requests: 15
Past Year
  • Issues: 14
  • Pull requests: 434
  • Average time to close issues: less than a minute
  • Average time to close pull requests: 35 minutes
  • Issue authors: 1
  • Pull request authors: 4
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 334
  • Bot issues: 0
  • Bot pull requests: 15
Top Authors
Issue Authors
  • FabianaCampanari (12)
Pull Request Authors
  • FabianaCampanari (388)
  • dependabot[bot] (15)
  • andsonandreribeiro09 (2)
  • ppvyctor (1)
Top Labels
Issue Labels
Pull Request Labels
dependencies (15) python (15)