Projekty

  • Aproximace PENB štítku

    Aproximace PENB štítku je veřejná aplikace, která převádí běžná provozní data bytu do orientačního odhadu energetické náročnosti. Cílem není nahradit certifikovaný průkaz energetické náročnosti budovy, ale dát vlastníkovi, kupujícímu nebo poradci rychlý a obhajitelný podklad pro další rozhodnutí.


    Přehled projektu

    Projekt spojuje několik vrstev, které se u podobných nástrojů často řeší odděleně:

    • validaci vstupních údajů o bytě a vytápění,
    • práci s meteorologickými daty pro danou lokalitu,
    • kalibraci zjednodušeného RC modelu podle skutečné spotřeby,
    • převod výsledku do srozumitelné energetické třídy a komentáře ke spolehlivosti,
    • veřejný dvojjazyčný deployment, který je možné okamžitě sdílet.

    Výsledkem není jen výpočet. Je to malý produkt se vstupním workflow, výpočetním jádrem, reportem a provozní vrstvou.


    Problém

    V praxi často existuje mezera mezi tím, co člověk potřebuje vědět hned, a tím, co poskytne formální audit:

    • vlastník chce rychle zjistit, zda spotřeba odpovídá parametrům bytu,
    • investor potřebuje předběžný screening ještě před hlubší due diligence,
    • poradce nebo správce portfolia hledá způsob, jak prioritizovat jednotky k dalšímu řešení.

    Formální PENB je pro právní účely správná cesta, ale pro první orientaci bývá příliš pomalá a drahá. Tento projekt vznikl právě pro situaci, kdy je potřeba rychlé rozhodovací vodítko založené na datech.


    Řešení

    Architektura

    • Streamlit aplikace jako veřejné rozhraní pro zadání parametrů, výpočet a zobrazení výsledků.
    • Doménové jádro v Pythonu, které validuje vstupy, připravuje časové řady, kalibruje model a simuluje roční potřebu energie.
    • Hybridní vrstva počasí, která kombinuje WeatherAPI, Open-Meteo a fallback mechanismus pro případ chybějících dat.
    • HTML report, který převádí výsledek do formy vhodné ke sdílení nebo dalšímu posouzení.

    Návrhové principy

    • Jednoduchý vstup pro uživatele, ne jednoduchý model za každou cenu.
    • Transparentní omezení: aplikace otevřeně pracuje s tím, že jde o orientační odhad.
    • Více režimů výpočtu: od rychlého odhadu po náročnější kalibraci.
    • Oddělení výpočetní logiky od UI, aby bylo možné model a prezentaci iterovat zvlášť.

    Workflow aplikace

    Aplikace dnes pokrývá pět hlavních kroků:

    1. Lokalita – zadání místa, pro které se připravují meteorologická data.
    2. Parametry bytu – plocha, výška stropu, teplotní režim a typ vytápění.
    3. Provozní data – nahrání CSV nebo práce s ukázkovými daty, výběr měsíců bez topení a odhad TUV.
    4. Výpočet – výběr režimu, kalibrace modelu a simulace referenčního roku.
    5. Výsledek – energetická třída, kvalitativní komentář, základní metriky a export reportu.

    To je důležité i z produktového pohledu: uživatel není vystaven technickému detailu modelu dříve, než má správně připravený vstup.


    Klíčové vlastnosti

    • Tři výpočetní režimy podle kvality a rozsahu vstupních dat.
    • Pět logických obrazovek UI, které vedou uživatele od vstupu k výsledku.
    • Tři vrstvy počasí a fallbacku, aby aplikace nebyla křehká při výpadku jednoho zdroje.
    • Kalibrace podle reálné spotřeby, nikoli jen statická tabulková aproximace.
    • Výstup zaměřený na interpretaci, ne pouze na číslo bez kontextu.
    Oblast Aktuální stav
    Veřejný přístup Ano, přes samostatnou subdoménu
    Jazykové verze Čeština a angličtina
    Export výsledku HTML report
    Režimy výpočtu Basic, Standard, Advanced
    Typ modelu Zjednodušený RC model s kalibrací

    Nasazení a provozní vrstva

    Projekt je nasazen jako kontejnerizovaná Streamlit aplikace. Důležité je, že nejde jen o lokální experiment:

    • existuje veřejná česká i anglická instance,
    • běží v Dockeru s odděleným storage a reporty,
    • je připravený na další iterace bez nutnosti přepisovat celé rozhraní,
    • má jasně oddělené UI, doménovou logiku a reportovací vrstvu.

    Stejně důležité jako samotný model je i to, že výsledek lze ukázat veřejně a srozumitelně. To z projektu dělá skutečnou case study, ne jen interní analytický skript.


    Důležité omezení

    Výstup aplikace je orientační odhad, nikoli oficiální PENB. Právě proto projekt klade důraz na vysvětlení nejistoty, doporučení pro interpretaci a jasné oddělení mezi rychlým screeningem a formálním auditem.


    Série článků o vzniku aplikace

    Na projekt navazuje úvodní článek a pětidílná série, která rozebírá, jak aplikace vznikala od problému přes data až po deployment:

    1. PENB z provozních dat: kde končí odhad a začíná rozhodnutí – byznysový a produktový kontext celé aplikace.
    2. Aproximace PENB štítku – Díl 1: Proč nestačí čekat na formální audit – proč má smysl orientační výpočet z provozních dat.
    3. Aproximace PENB štítku – Díl 2: Jak z běžných spotřeb vznikne validní vstup – jak připravit data pro model bez zbytečného chaosu.
    4. Aproximace PENB štítku – Díl 3: Počasí, topná sezona a RC model bez magie – jak funguje kombinace počasí, kalibrace a simulace.
    5. Aproximace PENB štítku – Díl 4: Jak z výpočtu udělat aplikaci pro běžného uživatele – proč je UX stejně důležité jako model.
    6. Aproximace PENB štítku – Díl 5: Nasazení, limity a co by přišlo dál – transparentně o provozu, limitech a dalším směru.
  • Unified ML Pipeline

    Unified ML Pipeline

    Project Overview

    Design and implementation of a unified ML pipeline for a banking institution, which accelerated model deployment and improved the stability of predictions.


    The Challenge

    The client had fragmented ML processes with different approaches across individual teams:

    • Long deployment times for new models (averaging 10+ days)
    • Inconsistent model quality
    • Difficulty in tracking versions and experiments

    The Solution

    Architecture

    • Databricks as the central platform for ML
    • MLflow for tracking experiments and model registry
    • Optuna for automated hyperparameter tuning
    • Docker containers for a consistent environment

    Key Features

    1. Automated feature engineering pipeline
    2. Centralized model registry with versioning
    3. A/B testing for gradual deployment
    4. Monitoring and alerting for model drift

    The Results

    Metric Before After Improvement
    Model deployment time 10 days 2 days -8 days
    Model accuracy baseline +15% +15%
    Pipeline execution time 4 hours 2.4 hours -40%

    Technology Stack

    • Python, PySpark
    • Databricks, MLflow
    • Optuna, Docker
    • GitHub Actions (CI/CD)
  • Unified Pipeline

    Unified Pipeline je case study návrhu a implementace sjednocené pipeline pro strojové učení v bankovním prostředí. Cílem bylo zrychlit nasazení modelů, zvýšit jejich stabilitu v čase a vytvořit jednotný experimentální rámec napříč týmy i use-casy.


    Přehled projektu

    Návrh a implementace sjednocené pipeline pro strojové učení (ML pipeline) pro bankovní instituci, zaměřené na zrychlení nasazení (deploymentu) modelů, zvýšení jejich stability v čase (robustnost mimo trénovací období) a standardizaci experimentálního pracovního postupu napříč týmy. Pipeline umožňuje konzistentní vývoj, validaci a nasazení modelů pro více než 100 produktů a jejich variant.


    Výzva

    Klient čelil fragmentovanému prostředí pro vývoj ML modelů:

    • Nejednotné přístupy mezi týmy (nekonzistentní pracovní postupy)
    • Dlouhá doba nasazení modelů (typicky 7–10+ dní)
    • Přecenění kvality modelů kvůli nevhodné validaci (únik dat – data leakage, náhodné rozdělení dat – random splits)
    • Nízká stabilita modelů v čase (slabý výkon na datech mimo trénovací období)
    • Omezená reprodukovatelnost experimentů a slabý auditní záznam (audit trail)

    Řešení

    Architektura

    • Databricks jako hlavní platforma pro spouštění (distribuované zpracování, orchestrace)
    • MLflow pro sledování experimentů a registr modelů
    • Optuna pro optimalizaci hyperparametrů s důrazem na efektivní strategie vyhledávání
    • Spark (PySpark DataFrames) pro škálovatelné zpracování příznaků (feature processing)
    • Přechod z původního řešení Hadoop na modernější architekturu založenou na Databricks

    Klíčové principy návrhu

    • Časově senzitivní validace (klíčový rozdíl oproti běžné praxi)
      • Použití postupné validace v čase (walk-forward validation) místo náhodného K-Fold křížového ověřování.
      • Simulace reálného nasazení modelu v čase.
      • Eliminace úniku dat (data leakage).
      • Výrazné snížení rozdílu mezi výkonem při trénování a v produkci.
    • Sjednocený trénovací rámec
      • Jednotná pipeline pro klasifikaci i regresi.
      • Sdílené kroky předzpracování dat a přípravy příznaků (feature engineering).
      • Parametrizace pipeline pro různé případy užití (use-cases).
    • Pokročilé ladění hyperparametrů (Optuna)
      • Kombinace Bayesovské optimalizace a QMCSampler (Sobolovy sekvence) pro lepší pokrytí prostoru.
      • Optimalizace s ohledem na metriky stability v čase, nikoli pouze na výkon v rámci vzorku.
      • Řízení kompromisu (trade-off) mezi výkonem a časem trénování.
    • Stabilita modelu nad surovým výkonem
      • Optimalizace na metriky jako: Lift (v rámci nejlepšího decilu), F1 score, stabilita R² / přesnosti v čase.
      • Důraz na robustnost napříč časovými obdobími.

    Klíčové funkce

    • Automatizovaná pipeline pro přípravu příznaků
      • Škálovatelná transformace dat přes Spark.
      • Kontrola kvality dat (např. min/max validace místo drahých operací jako countDistinct).
    • Centralizované sledování experimentů (MLflow)
      • Kompletní auditní stopa experimentů, verzování modelů a jejich parametrů.
    • Registr modelů a standardizace nasazení
      • Jednotné rozhraní pro nasazení modelů a podpora rychlého zavádění (rolloutu) nových verzí.
    • Rámec pro mezičasové vyhodnocení (Intertemporal evaluation)
      • Systematické vyhodnocení modelů napříč časem a identifikace vzorců degradace.
    • Flexibilní orchestrace pipeline
      • Podpora více typů modelů v rámci jedné pipeline (modulární design).

    Výsledky

    Metrika Před Po Zlepšení
    Doba nasazení modelu 7–10+ dní 1–2 dny -6 až -8 dní
    Stabilita modelu (OOT) Nízká Výrazně vyšší Zásadní zlepšení
    Model lift (top decile) Baseline +5 až +30 % +5–30 %
    Čas spuštění pipeline ~4 hodiny ~2–3 hodiny -30 až -40 %

    Technology Stack

    • Python, PySpark (Spark DataFrames)
    • Databricks (distribuované výpočty, orchestrace)
    • MLflow (sledování experimentů a registr modelů)
    • Optuna (optimalizace hyperparametrů)
    • CatBoost (klasifikátor a regresor)

    Série Unified Pipeline

    Na tuto case study navazuje pětidílná série, která detailněji rozebírá architekturu, validační logiku i praktická rozhodnutí za celým řešením:

    1. Unified Pipeline – Díl 1: Proč vůbec vznikla Unified Pipeline – proč samotné zlepšování modelu nestačilo a problém byl ve fragmentaci systému.
    2. Unified Pipeline – Díl 2: Od experimentů k systému – jak architektura a konfigurace nahradily improvizaci.
    3. Unified Pipeline – Díl 3: Čas jako nepřítel modelu – proč validace bez časové disciplíny selhává v produkci.
    4. Unified Pipeline – Díl 4: MLOps bez buzzwordů – co skutečně přinášelo hodnotu a co naopak jen složitost.
    5. Unified Pipeline – Díl 5: Co bych dnes udělal jinak – poučení, slepé uličky a přenositelné principy.

© 2026 Michael Princ. Všechna práva vyhrazena.

Vytvořeno s WordPress