02.01.2014

Ristiinvalidoinnista

Mitä on ristiinvalidointi ja miksi sitä käytetään lähes aina mallinnusongelmissa?

Ristiinvalidointi on laajalti käytössä oleva tilastotieteen menetelmä tai pikemminkin menettelytapa, jonka oleelliset tarkoitukset ovat mallinvalintatilanteessa arvioida mallien tuottamaa (odotusarvoista) ennustevirhettä, sekä auttaa hyperparametrien optimoinnissa vastaavalla tavalla.

Tilanteet, joissa meillä on riittävän suuri määrä havaintoja (suhteessa muuttujien määrään) ristiinvalidoinnin tai vastaavien menettelyjen käyttäminen ei välttämättä ole tarpeen, sillä voimme suoraan arvioida ennustevirhettä validointiaineistolla (jakamalla validointiaineisto esimerkiksi kahtia). Näin suotuisia tilanteita tulee sillon tällöin vastaan, mutta verrattain usein käyttökelpoisen aineiston koko on huomattavan pieni ja joudumme turvautumaan ristiinvalidointiin. Turvautumisella ei tässä tarkoiteta seuraavaa: ”muuta ei pystytä tekemään, tehdään nyt edes tämä”.

K-Ositettu ristiinvalidointi (eng. K-Fold crossvalidation)

K-Ositetussa ristiinvalidoinnissa (validointi-)aineisto jaetaan K:hon yhtä suureen osaan. Yksittäinen malli estimoidaan K-1 kpl osioita sisältävällä aineistolla ja viimeisen jäljellä jäävän osion avulla lasketaan estimoidun mallin ennustevirhe. K-Ositetussa ristiinvalidoinnissa kyseinen proseduuri suoritetaan vuorotellen kaikille osioille (jokainen osio on kertaalleen testi-aineiston asemassa):

crossval

Ristiinvalidoinnin tuottama (odotusarvoisen) ennustevirheen estimaatti on tällöin yksittäisten mallien tuottamien ennustevirheiden keskiarvo:

1/N* sum(i in 1:K)  Err(i),

missä Err(i) on ennustevirhe, kun testi-aineiston asemassa on osio i.

Yleisimmin käytettyjä osioiden määrän arvoja K ovat 5 ja 10. Erikoistapauksena mainittakoon K=N (N havaintojen määrä), joka tunnetaan myös nimellä leave-one-out ristiinvalidointi.

Kuinka valita hyvä K:n arvo?

Alla Rapidminer-tulostuksia esimerkkiaineiston tilanteessa, jossa luokitteluongelma (binominen), jossa validointiaineistossa 750 havaintoa, sekä selittäviä muuttujia 12 (demonstrointia varten, havaintojen/muuttujien suhde riittävä):

crossval_all

crosval_perf

Alimmassa kuvassa satunnaisenmetsän parametrin K (Number of features) optimointia ristiinvalidoinnin avulla.

Oikein/Väärin suoritettu ristiinvalidointi (Varo vaaraa?)

Mitä seuraavassa ohjeessa menee vikaan, binominen luokitteluongelma?

  1. Etsi validointi-aineistosta ”hyvät” selittävät muuttujat binomiselle vaste-muuttujalle korrelaatioiden perusteella.
  2. Käytä valittua muuttujien joukkoa rakentaaksesi luokittelija.
  3. Käytä ristiinvalidointia tuntemattomien parametrien estimointiin ja estimoi ennustevirhe mallille.

Ongelmana yllä esitetyssä “ohjeessa” on se, että valitut muuttujat ovat etulyöntiasemassa, sillä ne on valittu koko aineiston perusteella. Tällöin validoinnin testiaineisto-osiot eivät täysin ole riippumattomia validoinnin opetusaineistoista, sillä ohjeen vaiheessa 1. muuttujat valitaan käyttäen tietoa myös validoinnin testiaineisto-osioista.

Alla simulointiesimerkin tuottamat ristiinvalidointitulokset edellä esitetyssä ongelmallisessa tilanteessa. Menetelmänä 10-NN, aineistona 1000 riippumatonta normaalijakautunutta muuttujaa, sekä binominen vaste. Luokittelijan ennustevirhe tulisi olla ~50%. Oleellista esimerkissä on pieni havaintojen määrä suhteessa muuttujien määrään.

Ylemmässä kuvassa valittu muuttujat validointiaineston avulla korrelaatioiden perusteella (70 eniten korreloitunutta muuttujaa vasteen kanssa), sekä tilanne, jossa muuttujien valintaa ei ole tehty.

crosvall_K_NN_s

Kuten taulukosta näkee, antaa ristiinvalidointi liian optimaalisen ennustevirheen estimaatin 70 muuttujan tilanteessa.

Oikeaoppisesti tulisi ristiinvalidointi toteuttaa siten, että muuttujan valinta tehdään erikseen jokaiselle ristiinvalidointi aineistolle (osiolle) erikseen, “muuttujan valinta ikäänkuin sisällytetään malliin mukaan”. Ongelmana tässä on se, että muuttujat vaihtelevat eri mallien välillä ristiinvalidoinnin sisällä ja kokonaiskuvaa muuttujien merkitsevyydestä ei tällöin välttämättä saada suoraviivaisesti (riippuen muuttujien valinta kriteeristä/algoritmista). Vaihtoehtoisesti voisimme valita muuttujat niiden varianssin perusteella, jolloin tietoa vastemuuttujan arvoista ei tule käytetyksi. Yleensä binomisen luokitteluongelman tapauksessa AUC-kriteerin käyttö voi paljastaa liian optimaaliset ennustevirheiden estimaatit tai vastaavasti ROC-käyrän hajonta-kuvio.

Share
Contact Person

Blog writer

Lasse Liukkonen

Vincit Bilot

Bilot & Vincit have joined forces!

See where the story continues 

You have Successfully Subscribed!

Vincit Bilot

Bilot & Vincit have joined forces!

See where the story continues 

You have Successfully Subscribed!