Obsah

Validace

Validace je proces hodnocení systému nebo jeho komponenty s cílem zjistit, zda splňuje zadané požadavky a zda jsou výsledky správné. V IT praxi se nejčastěji setkáváme se dvěma typy: validací dat (vstupů) a validací modelu (v umělé inteligenci).

Zatímco verifikace se ptá: „Stavíme produkt správně?“, validace se ptá: „Stavíme správný produkt?“ (tedy zda výsledek odpovídá potřebám uživatele).

1. Validace v Umělé inteligenci (Validation Set)

V strojovém učení je validační sada dat „prostředníkem“ mezi trénovacími a testovacími daty.

Křížová validace (Cross-Validation)

Pokud máme málo dat, používá se technika K-fold cross-validation. Data se rozdělí na $k$ částí. Model se trénuje $k$-krát, přičemž pokaždé je jiná část použita jako validační a zbytek jako trénovací. Výsledná přesnost je pak průměrem všech pokusů.

2. Validace dat (Software Engineering)

Zajišťuje, že data vstupující do systému jsou logicky správná, bezpečná a v očekávaném formátu.

Typ validace Popis Příklad
Datový typ Kontrola, zda jde o číslo, text, datum. Pole „Věk“ nesmí obsahovat písmena.
Rozsah (Range) Ověření, zda je hodnota v povolených mezích. Sleva nesmí být vyšší než 100 %.
Formát Kontrola pomocí regulárních výrazů (Regex). Ověření správného tvaru e-mailu nebo PSČ.
Konzistence Porovnání s jinými daty v systému. Datum odjezdu nesmí být dřívější než datum příjezdu.

3. Validace na straně klienta vs. serveru

V moderních webových aplikacích probíhá validace na dvou úrovních:

4. Problémy při špatné validaci

Pravidlo „Never Trust User Input“: Základní programátorské pravidlo říká, že jakýkoliv vstup od uživatele nebo externího systému musí být považován za nepřátelský, dokud neprojde důkladnou validací.

Zpět na Data