Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| analiza [2026/01/11 11:30] – created admin | analiza [2026/01/22 22:02] (current) – [Podsumowanie] admin | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | Praktyka i Analiza | + | ====== |
| + | |||
| + | 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: | ||
| + | * **Matplotlib / Seaborn:** Do wizualizacji wyników. | ||
| + | |||
| + | <code python> | ||
| + | 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(' | ||
| + | </ | ||
| + | |||
| + | ===== 2. Studium Przypadku A: Predykcja Zużycia Energii ===== | ||
| + | **Cel:** Sprawdzenie, | ||
| + | |||
| + | Zastosowano algorytm **Regresji Liniowej**. Model został wytrenowany na danych z okresu zimowego. | ||
| + | |||
| + | **Kod modelu:** | ||
| + | <code python> | ||
| + | # Definicja zmiennych | ||
| + | X = df[[' | ||
| + | y = df[[' | ||
| + | |||
| + | # Trenowanie modelu | ||
| + | model = LinearRegression() | ||
| + | model.fit(X, | ||
| + | |||
| + | # Predykcja | ||
| + | y_pred = model.predict(X) | ||
| + | </ | ||
| + | |||
| + | <gchart line 600x300 " | ||
| + | 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), | ||
| + | |||
| + | **Kod modelu:** | ||
| + | <code python> | ||
| + | # Konfiguracja modelu (zanieczyszczenie zbioru = 1%) | ||
| + | iso_forest = IsolationForest(contamination=0.01) | ||
| + | df[' | ||
| + | |||
| + | # Wynik: -1 oznacza anomalię, 1 oznacza normę | ||
| + | anomalies = df[df[' | ||
| + | </ | ||
| + | |||
| + | **Wyniki: | ||
| + | Algorytm wykrył 3 istotne anomalie w badanym miesiącu: | ||
| + | 1. **Nocne uruchomienie: | ||
| + | 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ą, | ||
| + | * Prosta **Regresja** pozwala precyzyjniej budżetować koszty mediów. | ||
| + | * **Detekcja anomalii** pozwala wyłapać usterki, które umykają uwadze operatora BMS. | ||