Warning
This page is located in archive.

Odhad chyby predikce

V minulém díle jsme viděli, že k vyjádření míry shody skutečných a modelem předpovězených hodnot (predikcí) je možné využít operátor Performance. Ten nedělá nic jiného než že porovná odpovídající dvojice, agreguje odchylky a vydá míru přesnosti. To, co tato vypočtená “přesnost” modelu ve skutečnosti znamená, ale závisí na tom, na jakých datech tuto přesnost měříme. V minulém díle jsme přesnost měřili na stejných datech, která byla použita i k učení modelu. Odhad chyby byl proto příliš optimistický.

V tomto díle si ukážeme, jak odhadnout přesnost lépe - na nezávislých datech a pomocí křížové validace.

Odhad chyby pomocí testovacích dat

Jednoduchá a velmi přímá metoda odhadu prediktivní schopnosti dat. Dostupná data se rozdělá na dvě sady, trénovací a testovací. Model se naučí na trénovacích datech a chyba se vyčíslí na testovacích datech.

  1. Přetáhněte do procesu datovou sadu iris z repozitáře.
  2. Napojte na ni operátor Evaluation/Validation/Split Validation. Ten na svém vstupu očekává datovou sadu. Tuto sadu rozdělí na trénovací a testovací data. Trénovací data poskytne na vstup prvnímu vnitřnímu procesu, testovací data druhému procesu. Lze nastavit, jakým způsobem se mají data rozdělit.
    • První vnitřní proces by měl popisovat tvorbu modelu - na vstup modelu jsou připojena trénovací data a očekává se, že výstupem tohoto podprocesu bude natrénovaný model. Vložme sem tedy již známý operátor Decision Tree.
    • Druhý proces realizuje odhad chyby modelu. Na vstup procesu jsou předána testovací data (operátorem SplitValidation) a natrénovaný model (výstup z prvního podprocesu). Očekává se, že tento druhý podproces vydá na svůj výstup míru přesnosti predikce. Vložme tedy operátory Apply Model a Performance.
  3. Spusťme proces. Ve výsledcích bychom opět měli vidět odhad chyby i matici záměn. Přesnost modelu měřená na testovacích datech je menší než v předchozím případě.

Všimněme si, že (podle nastaveného rozdělení dat) byla k odhadu chyby použita jen část původních dat. Podobně byla použita i pro učení jen menší část dat. V následující sekci se seznámíte s metodou, která umožní správně odhadnout prediktivní přesnost (na všech dostupných datech) a model také naučit na všech dostupných datech.

Křížová validace

Výpočet chyby na testovacích datech poskytuje sice nevychýlený odhad prediktivní chyby, nicméně odhad může mít větší rozptyl, protože je počítán z menšího množství dat. Křížová validace je metoda, které umožní použít všechna data jak k učení modelu, tak i k výpočtu odhadu chyby predikce, ovšem za cenu opakovaného učení modelu na různých podmnožinách dat.

Princip je jednoduchý. Datová sada se rozdělí na k částí, dejme tomu na 5 a označme je A,…,E. Křížová validace pak provede 5 iterací:

  1. Použij části A..D jako trénovací, část E jako testovací, neboli nauč model na A..D, odhadni chybu na E.
  2. Použij části A..C a E jako trénovací, D jako testovací.
  3. Použij části B..D jako trénovací a A jako testovací.

Nyní máme 5 odhadů chyby. Průměr těchto 5 hodnot je finální odhad prediktivní chyby modelu (každé pozorování do něj přispělo právě 1x). Nyní můžeme model naučit znovu na celé datové sadě.

Postup tvorby procesu je stejný jako v předchozím případě, jen místo operátoru Split Validation použijeme operátor Evaluation/Validation/X-Validation. Odhadnutá chyba predikce je nyní 93%.

courses/a3m33ui/tutorial/rapidminer/2_odhad_chyby.txt · Last modified: 2013/10/04 13:02 (external edit)