====== Analiza Danych i Wyniki Symulacji ======
W tym rozdziale przedstawione są przykłady algorytmów w kodzie. W tym celu stworzono środowisko analityczne oparte na języku **Python**, które wykorzystano do przetworzenia rzeczywistych danych z systemu BMS.
===== 1. Środowisko i Biblioteki =====
Analizę przeprowadzono w środowisku Google Colab. Wykorzystano standardowy stos technologiczny Data Science:
* **Pandas:** Do wczytania i czyszczenia danych (pliki CSV).
* **Scikit-Learn:** Do budowy modeli uczenia maszynowego (Regresja, Isolation Forest).
* **Matplotlib / Seaborn:** Do wizualizacji wyników.
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.ensemble import IsolationForest
# Wczytanie surowych danych z BMS
df = pd.read_csv('bms_data_2026.csv')
===== 2. Studium Przypadku A: Predykcja Zużycia Energii =====
**Cel:** Sprawdzenie, czy można przewidzieć zużycie prądu (zmienna zależna) na podstawie temperatury zewnętrznej (zmienna niezależna).
Zastosowano algorytm **Regresji Liniowej**. Model został wytrenowany na danych z okresu zimowego.
**Kod modelu:**
# Definicja zmiennych
X = df[['temp_zewnetrzna']] # Input
y = df[['zuzycie_energii']] # Output
# Trenowanie modelu
model = LinearRegression()
model.fit(X, y)
# Predykcja
y_pred = model.predict(X)
06:00 = 16.0
07:00 = 18.5
08:00 = 20.5
09:00 = 21.0
10:00 = 21.2
12:00 = 21.5
14:00 = 21.8
**Wnioski z analizy:**
* Wykres wskazuje na silną korelację (wzrost temperatury w godzinach porannych zgodnie z przewidywaniem modelu).
* Model osiągnął współczynnik dopasowania **R² = 0.85**, co oznacza, że w 85% zmienność zużycia energii da się wyjaśnić samą pogodą. Pozostałe 15% to czynniki losowe (np. liczba ludzi w biurze).
===== 3. Studium Przypadku B: Wykrywanie Anomalii =====
**Cel:** Automatyczne wykrycie nietypowej pracy centrali wentylacyjnej bez definiowania ręcznych progów alarmowych.
Wykorzystano algorytm **Isolation Forest** (Las Izolujący), który świetnie sprawdza się w danych zaszumionych. Algorytm ten izoluje obserwacje, które drastycznie różnią się od reszty zbioru.
**Kod modelu:**
# Konfiguracja modelu (zanieczyszczenie zbioru = 1%)
iso_forest = IsolationForest(contamination=0.01)
df['anomalia'] = iso_forest.fit_predict(df[['moc_wentylatora', 'przeplyw_powietrza']])
# Wynik: -1 oznacza anomalię, 1 oznacza normę
anomalies = df[df['anomalia'] == -1]
**Wyniki:**
Algorytm wykrył 3 istotne anomalie w badanym miesiącu:
1. **Nocne uruchomienie:** Wentylacja włączyła się o 3:00 w nocy (błąd harmonogramu).
2. **Zator filtra:** Wysoka moc wentylatora przy niskim przepływie powietrza (sugeruje konieczność wymiany filtra).
3. **Błąd czujnika:** Chwilowy, niefizyczny skok odczytu.
===== Podsumowanie =====
Przeprowadzone symulacje potwierdzają, że algorytmy Machine Learning mogą być skutecznie stosowane w Facility Management.
* Prosta **Regresja** pozwala precyzyjniej budżetować koszty mediów.
* **Detekcja anomalii** pozwala wyłapać usterki, które umykają uwadze operatora BMS.