Fase 2: Modeludvikling

I fase 1 af dette projekt undersøgte vi variabler, der er signifikante for forudsigelsen af variablen RainTomorrow. Efter imputering af manglende data og kontrol af korrelation fastslog vi, at 8 variabler var de mest signifikante prædiktorer: Humidity9am, Humidity3pm, Cloud9am, Cloud3pm, WindGustSpeed, Temp3pm, HumidityDiff, og TempDiff. Ved at inkludere svarvariablen RainTomorrow i vores liste skabte vi et nyt datasæt.

Vi opdelte derefter datasættet, hvor 70 % af dataene udgjorde et træningssæt og 30 % gik ind i et testsæt. Vi brugte 3 forskellige teknikker til modelopbygning for at afgøre, hvilken der ville være mest præcis: klassifikationstræer, tilfældige skove og neurale netværk. Vi undersøgte også betydningen af vores udvalgte variabler i de tilfældige skov- og neurale netværksmodeller.

Signifikante variabler ordnet efter forudsagt betydning for variablen RainTomorrow

Som vi kan se ovenfor, ser luftfugtighed ud til at være en af de stærkeste forudsigere i vores tilfældige skovmodel. Det neurale netværk lægger dog større vægt på temperaturforskellen, mens luftfugtighed har meget mindre betydning i modellen. I begge modeller synes skydække at have en betydelig betydning, mens vindstødshastigheden synes at være moderat lav.

Klassifikationstræet

Vores første klassifikationstræ blev bygget uden angivelse af kompleksitetsparameteren for at undersøge, hvilken værdi der kan fungere bedst. Den optimale cp-værdi for dette træ endte med at være ca. 0,221, som vi derefter brugte til at bygge et nyt træ.

Forudsigelse af RainTomorrow brugte et beskåret klassifikationstræ

Forudsigelse af RainTomorrow på træningssættet resulterede i en nøjagtighed på ca. 0,828. Sammenlignet med den naive models nøjagtighed på 0,78 og i betragtning af en p-værdi på næsten 0 syntes denne model at være en model af god kvalitet. Vi foretog derefter forudsigelser på testdatasættet, hvilket resulterede i en nøjagtighed på ca. 0,824. Da begge forudsigelser viste større nøjagtighed end den naive model, kan klassifikationstræet være levedygtigt til forudsigelse af RainTomorrow.

Den tilfældige skov

I forlængelse af metoden med klassifikationstræer opbyggede vi derefter en tilfældig skov med 10 k-fold krydsvalidering og 50 træer. Udviklingen af forudsigelser på træningssættet med vores tilfældige skov resulterede i en nøjagtighed på 0,9991, næsten 100 %. Selv om p-værdien er ideel på næsten 0, giver den kendsgerning, at vores model havde næsten perfekte forudsigelser, anledning til bekymring. I den virkelige verden findes der ikke perfekt præcise modeller. Vi testede derefter forudsigelsen på testsættene, hvilket resulterede i en nøjagtighed på kun 0,84 med en tilsvarende signifikant p-værdi. Dette indikerede, at vores random forest var overfit til træningssættet og ikke ville være en stærk model til fremtidige forudsigelser.

Forudsigelse af RainTomorrow med en random forest-model

Det neurale netværk

Den sidste model involverede oprettelse af et neuralt netværk. Vi brugte endnu engang 10 k-fold krydsvalidering til at udvikle to netværk, en grundmodel med specificerede parametre og et optimalt netværk. Grundnetværket blev oprettet med en størrelse på 12 og en afvikling på 0,1. Ved at foretage forudsigelser på træningssættet med vores basismodel blev der opnået en nøjagtighed på ca. 0,841, mens forudsigelserne på testsættene lå på ca. 0,844.

Vi lod derefter RStudio søge efter den optimale størrelse fra 1-12 og decay mellem 0,1-0,5. En model med størrelse 5 og decay 0,5 blev bestemt til at have den bedste nøjagtighed på omkring 0,843, som det ses nedenfor.

Søgning efter den optimale netværksstørrelse og decay rate

Genopbygning af forudsigelser igen med testsæt beregnede en nøjagtighed på omkring 0.8401, mens forudsigelse på testsæt resulterede i en nøjagtighed på omkring 0,8431, hver med en signifikant p-værdi nær 0.

Forudsigelse af RainTomorrow ved hjælp af et tilpasset neuralt netværk

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.