Cross validation (krížová validácia)

Čo je cross validation?

Cross validation (v slovenskom preklade krížová validácia) je technika hodnotenia výkonnosti modelov strojového učenia, ktorá systematicky rozdeľuje dostupné dáta na tréningové a testovacie množiny. Cieľom je získať spoľahlivejší odhad toho, ako bude model fungovať na nových, predtým nevidených dátach. Na rozdiel od jednoduchého rozdelenia dát na dve časti využíva krížová validácia viacero iterácií, čím znižuje závislosť výsledkov od konkrétneho rozdelenia.

Ako prebieha cross validation?

Najrozšírenejšou formou je k-fold validation. Dátová množina sa rozdelí na „k“ rovnako veľkých častí (tzv. foldov). V každej iterácii slúži jeden fold ako testovacia množina a zvyšných k-1 foldov tvorí tréningovú množinu. Proces sa opakuje k-krát, pričom každý fold je presne raz použitý na testovanie.

Výsledná metrika výkonnosti sa vypočíta ako priemer výsledkov zo všetkých „k“ iterácií. Tento prístup poskytuje stabilnejší odhad ako jednorazové rozdelenie dát, pretože využíva všetky dostupné dáta na trénovanie aj testovanie.

Typy krížovej validácie

Okrem štandardnej k-fold validácie existujú ďalšie varianty prispôsobené špecifickým scenárom:

  • Leave-One-Out (LOO) – extrémny prípad, kde k sa rovná počtu vzoriek v dátovej množine. Každá vzorka slúži raz ako testovacia.
  • Stratified k-fold – zachováva pomer tried v každom folde, čo je dôležité pri nevyvážených dátových množinách.
  • Time Series Split – upravená verzia pre časové rady, kde tréningové dáta vždy predchádzajú testovacím.
  • Group k-fold – zabezpečuje, že vzorky patriace do rovnakej skupiny sa nerozdeľujú medzi tréningovú a testovaciu množinu.

Voľba počtu foldov ovplyvňuje kompromis medzi odhadom výkonnosti a výpočtovou náročnosťou. Hodnota k=5 alebo k=10 predstavuje v praxi najčastejšiu voľbu.

Vieš, že
Vieš, že…

…krížová validácia bola formalizovaná v 70. rokoch 20. storočia a dnes patrí medzi štandardné postupy pri vývoji ML modelov?

Výhody a obmedzenia cross validation

Hlavnou výhodou krížovej validácie je efektívnejšie využitie dostupných dát. Pri malých dátových množinách, kde jednoduché rozdelenie na tréningovú a testovaciu časť môže viesť k nestabilným výsledkom, poskytuje spoľahlivejší odhad generalizačnej schopnosti modelu.

Krížová validácia má aj svoje obmedzenia. Výpočtová náročnosť rastie úmerne s počtom foldov, čo môže byť problematické pri veľkých dátach alebo komplexných modeloch. Pri časových radách štandardná k-fold validácia nie je vhodná, pretože porušuje časovú postupnosť dát.

Zdroje a odkazy

Použité zdroje:

  • Scikit-learn Documentation – Cross-validation: evaluating estimator performance: https://scikit-learn.org/stable/modules/cross_validation.html

Odporúčané zdroje:

  • Google Machine Learning Crash Course – Validation: https://developers.google.com/machine-learning

Uvedené informácie sú orientačné a môžu sa líšiť v závislosti od verzie, implementácie a prostredia.