Sataako huomenna?

tammi 9, 2022

Vaihe 2: Mallin kehittäminen

Tämän projektin vaiheessa 1 tutkittiin muuttujaa, joka on merkittävä ennustamaan muuttujaa RainTomorrow. Puuttuvien tietojen imputoimisen ja korrelaation tarkistamisen jälkeen määrittelimme 8 muuttujaa merkittävimmiksi ennustajiksi: Humidity9am, Humidity3pm, Cloud9am, Cloud3pm, WindGustSpeed, Temp3pm, HumidityDiff ja TempDiff. Kun sisällytimme vastemuuttujan, RainTomorrow, luetteloon, loimme uuden tietokokonaisuuden.

Tämän jälkeen jaoimme tietokokonaisuuden siten, että 70 % aineistosta muodostui harjoitusjoukoksi ja 30 % testijoukoksi. Käytimme kolmea erilaista mallinrakennustekniikkaa määrittääksemme, mikä olisi tarkin: luokittelupuut, satunnaismetsät ja neuroverkot. Tutkimme myös valitsemiemme muuttujien tärkeyttä satunnaismetsä- ja neuroverkkomalleissa.

Signifikaattorimuuttujat järjestettyinä ennustetun merkityksen mukaan muuttujassa SadeHuomenna

Kuten edellä näemme, näyttäisi siltä, että ilmankosteus näyttää olevan satunnaismetsä-mallissamme yksi vahvimmista ennustajista. Neuroverkko antaa kuitenkin suuremman merkityksen lämpötilaerolle, ja kosteuden merkitys mallissa on paljon pienempi. Molemmissa malleissa pilvipeitteellä näyttää olevan merkittävä merkitys, kun taas tuulen puuskanopeus vaikuttaa kohtalaisen vähäiseltä.

Luokittelupuu

Ensimmäinen luokittelupuumme rakennettiin määrittelemättä monimutkaisuusparametria, jotta voitiin tutkia, mikä arvo saattaisi toimia parhaiten. Tämän puun optimaalinen cp-arvo oli lopulta noin 0,221, jota käytimme uuden puun rakentamiseen.

Sateiden ennustamiseen huomenna käytettiin karsittua luokittelupuuta

Sateiden ennustaminen huomenna harjoitusjoukolla johti tulokseksi, jonka tarkkuustarkkuus oli noin 0,828. Verrattuna naiivin mallin tarkkuuteen, joka oli 0,78, ja ottaen huomioon p-arvon, joka oli lähes 0, tämä malli näytti olevan hyvälaatuinen malli. Tämän jälkeen teimme ennusteita testausaineistolla, jonka tuloksena oli noin 0,824:n tarkkuus. Koska molemmat ennusteet osoittivat suurempaa tarkkuutta kuin naiivi malli, luokittelupuu voi olla käyttökelpoinen RainTomorrow-ennustamiseen.

Sattumanvarainen metsä

Luokittelupuumenetelmää parantaen rakensimme sitten satunnaismetsän, jossa oli 10 k-kertainen ristiinvalidointi ja 50 puuta. Ennusteiden kehittäminen harjoittelujoukosta satunnaismetsällämme johti 0,9991:n eli lähes 100 prosentin tarkkuuteen. Vaikka p-arvo on ihanteellinen eli lähes 0, se, että mallimme ennusteet olivat lähes täydellisiä, herättää huolta. Todellisessa maailmassa täydellisen tarkkoja malleja ei ole olemassa. Tämän jälkeen testasimme ennustamista testausjoukolla, jonka tuloksena oli vain 0,84:n tarkkuus ja yhtä merkittävä p-arvo. Tämä osoitti, että satunnaismetsämme oli sovitettu liikaa harjoitusjoukkoon eikä se olisi vahva malli tuleville ennusteille.

Sateiden ennustaminen satunnaismetsämallilla

Neuraaliverkko

Viimeisessä mallissa luotiin neuroverkko. Käytimme jälleen kerran 10 k-kertaista ristiinvalidointia kehittääksemme kaksi verkkoa, perusmallin määritellyillä parametreilla ja optimaalisen verkon. Perusverkko luotiin koolla 12 ja hajonnalla 0,1. Ennusteiden tekeminen harjoitusjoukossa perusmallillamme osoitti noin 0,841:n tarkkuutta, kun taas ennusteet testausjoukossa olivat noin 0,844.

Tämän jälkeen annoimme RStudion etsiä optimaalista kokoa välillä 1-12 ja hajoamista välillä 0,1-0,5. Malli, jonka koko oli 5 ja hajoamisnopeus 0,5, määritettiin parhaaksi tarkkuudeksi, joka oli noin 0,843, kuten alla näkyy.

Optimaalisen verkon koon ja hajoamisnopeuden etsinnässä

Testausjoukolla ennustusten uudelleen rakentaminen laski tarkkuudeksi noin 0,843.8401, kun taas ennustaminen testausjoukolla johti noin 0,8431 tarkkuuteen, kummallakin merkitsevä p-arvo lähellä 0.

Sadepäivän ennustaminen sovitetun neuroverkon avulla

Vastaa

Sähköpostiosoitettasi ei julkaista.