2. fázis: Modellfejlesztés
A projekt 1. fázisában a RainTomorrow változó előrejelzésében jelentős változót vizsgáltunk. A hiányzó adatok imputálása és a korreláció ellenőrzése után 8 változót határoztunk meg a legjelentősebb előrejelzőnek: Humidity9am, Humidity3pm, Cloud9am, Cloud3pm, WindGustSpeed, Temp3pm, HumidityDiff és TempDiff. A RainTomorrow válaszváltozót is felvettük a listára, így egy új adathalmazt hoztunk létre.
Ezután felosztottuk az adathalmazt úgy, hogy az adatok 70%-a képezte a képzési halmazt, 30%-a pedig a tesztelési halmazba került. 3 különböző modellépítési technikát használtunk, hogy meghatározzuk, melyik lesz a legpontosabb: osztályozási fák, véletlen erdők és neurális hálózatok. Megvizsgáltuk a kiválasztott változóink fontosságát is a véletlen erdő és a neurális hálózatok modelljeiben.
Amint fent látható, a páratartalom tűnik az egyik legerősebb előrejelzőnek a random forest modellünkben. A neurális hálózat azonban nagyobb jelentőséget tulajdonít a hőmérséklet-különbségnek, a páratartalom sokkal kisebb jelentőséggel bír a modellben. Mindkét modellben jelentős jelentőséggel bírni látszik a felhőtakaró, míg a széllökések sebessége mérsékelten alacsonynak tűnik.
A besorolási fa
Az első besorolási fánkat a komplexitás paraméterének megadása nélkül építettük fel, hogy megvizsgáljuk, melyik érték működhet a legjobban. Ennek a fának az optimális cp-értéke végül körülbelül 0,221 lett, amit aztán egy új fa építéséhez használtunk.
A RainTomorrow előrejelzése a képzési halmazon körülbelül 0,828 pontosságot eredményezett. A naiv modell 0,78-as pontosságával összehasonlítva, és a közel 0 p-értéket figyelembe véve ez a modell jó minőségű modellnek tűnt. Ezután a tesztelési adathalmazon végeztünk előrejelzéseket, ami körülbelül 0,824-es pontosságot eredményezett. Mivel mindkét előrejelzés nagyobb pontosságot mutatott, mint a naiv modell, az osztályozófa életképes lehet a RainTomorrow előrejelzésére.
A véletlen erdő
Az osztályozófa módszerét továbbfejlesztve ezután egy véletlen erdőt építettünk 10 k-szoros keresztellenőrzéssel és 50 fával. A gyakorlóhalmazon a véletlen erdőnkkel történő előrejelzések kidolgozása 0,9991-es, azaz közel 100%-os pontosságot eredményezett. Bár a p-érték ideális, gyakorlatilag 0, az a tény, hogy a modellünk közel tökéletes előrejelzéseket adott, aggodalomra ad okot. A való világban nem léteznek tökéletesen pontos modellek. Ezután teszteltük a jóslást a tesztkészleten, ami csak 0,84-es pontosságot eredményezett, hasonlóan jelentős p-értékkel. Ez azt jelezte, hogy a véletlen erdőnk túlilleszkedett a gyakorlóhalmazhoz, és nem lesz erős modell a jövőbeli előrejelzésekhez.
A neurális hálózat
A végső modell egy neurális hálózat létrehozásával járt. Ismét 10 k-szoros keresztvalidálást használtunk, hogy két hálózatot fejlesszünk ki, egy alapmodellt meghatározott paraméterekkel és egy optimális hálózatot. Az alaphálózatot 12-es mérettel és 0,1-es lecsengéssel hoztuk létre. Az alapmodellünkkel a gyakorlóhalmazon történő előrejelzések készítése körülbelül 0,841-es pontosságot mutatott, míg a tesztkészleten történő előrejelzések körülbelül 0,844-es pontosságúak voltak.
Ezután hagytuk, hogy az RStudio keresse meg az optimális méretet 1-12 és 0,1-0,5 közötti decay között. Egy 5 méretű és 0,5-es lecsengésű modellt határoztunk meg a legjobb, 0,843 körüli pontossággal, amint az alább látható.
A tesztkészlettel újra előrejelzéseket készítve 0 körüli pontosságot számítottunk.8401, míg a tesztkészleten történő előrejelzés körülbelül 0,8431 pontosságot eredményezett, mindkettő szignifikáns, 0 közeli p-értékkel
.