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
Keywords from Contributors
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
- Host: GitHub
- Owner: Mindful-AI-Assistants
- License: mit
- Language: Jupyter Notebook
- Default Branch: main
- Homepage: https://github.com/Mindful-AI-Assistants/smart-laguna-iot-hub
- Size: 97.4 MB
Statistics
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 42
- Releases: 0
Topics
Metadata Files
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
I progetti e i deliverable saranno resi pubblicamente disponibili solo quando appropriato e consentito.
- Il corso pone enfasi sullapprendimento pratico attraverso lutilizzo di dati reali in contesti professionali di consulenza.
- Tutte le attivit e i materiali sono conformi alle linee guida accademiche ed etiche della PUC-SP.
- Any confidential information related to this repository will remain strictly private and stored in private repositories, in full compliance with confidentiality requirements.
- Qualsiasi informazione riservata relativa a questo repository rester strettamente privata e archiviata in repository privati, in piena osservanza dei requisiti di riservatezza.
Esplora il Simulatore e supporta il progetto di IA per le Citt Intelligenti
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 misurazioneKW/H: Consumo totale di energia in kWhRoom1,Room2,LivingRoom,Kitchen,Pool: Numero di attivazioni dei sensori per stanzaSolarGeneration: 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:
Lettura del foglio di calcolo utilizzando pandas e validazione dei formati.
- Preprocessing
- Conversione della colonna
Datenel formatodatetime - Creazione della variabile
OrdinalDayper la modellazione - Calcolo del consumo medio per attivazione per stanza
- Simulazione della generazione solare e proiezione del consumo futuro
- Conversione della colonna
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.
- 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)
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
clustermodel.pkl # Modello KMeans addestrato
dados/
ConsumodeEnergiaAnalise.xlsx # Dati simulati per stanza
relatorios/
relatorioconsumoYYYY-MM-DD.pdf
imagens/
graficopca.png
heatmapcluster.png
graficoregressao.png
README.md
Esempi di Visualizzazione:
Cluster PCA
Distribuzione dei modelli di utilizzo per profilo energeticoHeatmap delle Attivazioni
Percentuale di utilizzo per stanzaGrafico Reale vs Predetto
Valutazione dell'accuratezza della previsione
Prestazioni del Modello:
R: 0,70RMSE: 11.528,06Stanza 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.pdfPrincipali intuizioni e risultatiUN_SolarInvestment_Laguna.pptxPresentazione per gli stakeholderIoT_Architecture_Prototype.pptxArchitettura 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 misurazioneKW/H: Consumo totale di energia in kWhQuarto1,Quarto2,Sala,Cozinha,Piscina: Numero di attivazioni dei sensori in ogni stanzaGerao 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
Fabiana Campanari - Shoot me an email
PedroVyctor - Hit me up by email
Andson Ribeiro - Slide into my inbox
My Contacts Hub
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
- Website: https://github.com/Mindful-AI-Assistants
- Repositories: 4
- Profile: https://github.com/Mindful-AI-Assistants
𖤐 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
Top Committers
| Name | 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)