Next: Metoda nejmenších čtverců
Up: Výběr modelu pomocí metody
Previous: Výběr modelu pomocí metody
V tomto cvičení byste si měli osvojit používání metody
cross-validation pro výběr modelu. Metodu použijeme na konkrétním
problému aproximace experimentálně naměřených dat polynomem. Stupeň
polynomu, který by se pro aproximaci měl použít, není předem známý.
Je třeba ho určit tak, aby výsledná aproximace co nejlépe odpovídala
skutečnému průběhu měřené funkce.
Problém je následující. Máme k dispozici vzorků
, kde je změřená hodnota neznámé
reálné funkce v bodě .
Naměřené vzorky jsou porušeny šumem, který má v našem případě
Gaussovské rozdělení s nulovou střední hodnotou a
variancí . Uvažujeme tedy model měření
|
(1) |
Naším cílem je aproximovat neznámou funkci polynomem
|
(2) |
kde je stupeň polynomu a vektor
je
vektor koeficientů tohoto polynomu. Chceme zvolit takový stupeň
polynomu a takový vektor , aby tato aproximace byla
co nejlepší.
Jak to však provést? Především je třeba si rozmyslet, co znamená
``nejlepší aproximace funkce''. Tradiční volbou je hodnocení chyby
aproximace jako součtu odchylek aproximace od naměřených dat
umocněných na druhou a hledání takových parametrů aproximačního
modelu, které tento součet minimalizují (= metoda nejmenších čtverců).
Ukažme si takový přístup na příkladě, který se nám v dalším bude
hodit. Nechť zvolený řád polynomu je a máme dánu podmnožinu
naměřených vzorků. Ta nechť je zadána množinou , ve které
jsou indexy vybraných vzorků, tj.
.
Vektor se ve smyslu nejmenších čtverců (Least Squares, LS)
spočítá jako
|
(3) |
Vyřešení této úlohy je popsáno v oddíle 2.
Teď se však zamysleme, jestli bychom pomocí metody nejmenších čtverců
dokázali najít jak , tak i stupeň polynomu .
Odpověď zní že ano, ale řešení by se nám nelíbilo. Pro vysoké stupně
polynomu totiž dochází k tzv. ``přefitování''. To znamená, že s
rostoucím řádem polynomu chyba na trénovacích datech klesá (nebo je
dokonce nulová), ale polynom s vysokým stupněm nemusí vůbec dobře
odpovídat skutečné funkci .
Nyní se dostáváme k principu metody cross-validation. V tomto případě
se určí stupeň polynomu tak, aby byla nejmenší tzv.
cross-validační chyba . Cross-validační chyba se spočítá
následujícím způsobem. Náhodně rozdělíme naměřenou množinu dat
na skupin. Tyto skupiny nechť jsou opět
zadány pomocí množin indexů vzorků, které označme
. Tyto množiny nechť se nepřekrývají, jsou
stejně velké a jejich sjednocení dá celou množinu, takže
. Těmto množinám budeme
říkat ``testovací''.
Výpočet cross-validační chyby popisuje následující pseudokód:
- for ,
- Vytvoř ``trénovací'' množinu vzorků jako doplněk
testovací množiny . Tj. v jsou indexy všech
vzorků, které nejsou v .
- Odhadni vektor na trénovací množině na základě
nejmenších čtverců (3).
- Spočti chybu na na testovací množině jako součet
kvadrátů odchylek aproximace od vzorků.
- end.
- Spočti cross-validační chybu jako průměr z testovacích
chyb
.
Podle počtu podmnožin mluvíme o tzv. -fold cross-validační
chybě. Oblíbená je volba . Pozn: limitní případ, kdy je rovno počtu
naměřených dat se nazýva one-leave-out.
Next: Metoda nejmenších čtverců
Up: Výběr modelu pomocí metody
Previous: Výběr modelu pomocí metody
Ondrej Drbohlav
2002-10-30