Pioverà domani?

Gen 9, 2022

Fase 2: Sviluppo del modello

Durante la fase 1 di questo progetto, abbiamo studiato le variabili significative nel predire la variabile RainTomorrow. Dopo aver imputato i dati mancanti e controllato la correlazione, abbiamo determinato 8 variabili per essere i predittori più significativi: Humidity9am, Humidity3pm, Cloud9am, Cloud3pm, WindGustSpeed, Temp3pm, HumidityDiff e TempDiff. Includendo la variabile di risposta, RainTomorrow, nella nostra lista abbiamo creato un nuovo set di dati.

Abbiamo poi diviso il set di dati con il 70% dei dati che formano un set di allenamento e il 30% che va in un set di test. Abbiamo usato 3 diverse tecniche di costruzione di modelli per determinare quale sarebbe stato più accurato: alberi di classificazione, foreste casuali e reti neurali. Abbiamo anche studiato l’importanza delle nostre variabili selezionate nella foresta casuale e nei modelli di rete neurale.

Variabili significative ordinate per importanza prevista sulla variabile RainTomorrow

Come possiamo vedere sopra, l’umidità sembra essere uno dei predittori più forti nel nostro modello di foresta casuale. Tuttavia, la rete neurale dà più importanza alla differenza di temperatura, mentre l’umidità ha un’importanza molto minore nel modello. In entrambi i modelli, la copertura nuvolosa sembra avere un’importanza significativa mentre la velocità delle raffiche di vento sembra moderatamente bassa.

L’albero di classificazione

Il nostro primo albero di classificazione è stato costruito senza specificare il parametro di complessità al fine di esplorare quale valore può funzionare meglio. Il valore cp ottimale per questo albero è risultato essere circa 0,221, che abbiamo poi utilizzato per costruire un nuovo albero.

Prevedere RainTomorrow ha utilizzato un albero di classificazione sfrondato

Prevedere RainTomorrow sul set di allenamento ha portato a circa 0,828 di precisione. Rispetto all’accuratezza del modello naïve di 0,78, e considerando un p-value di quasi 0, questo modello sembrava essere un modello di buona qualità. Abbiamo poi fatto delle previsioni sul set di dati di test, che hanno portato a un’accuratezza di circa 0,824. Con entrambe le previsioni che mostrano una maggiore accuratezza rispetto al modello naïve, l’albero di classificazione può essere valido per prevedere RainTomorrow.

La foresta casuale

Migliorando il metodo dell’albero di classificazione, abbiamo poi costruito una foresta casuale con 10 k-fold cross-validation e 50 alberi. Sviluppando le previsioni sul set di allenamento con la nostra foresta casuale abbiamo ottenuto una precisione di 0,9991, quasi il 100%. Mentre il p-value è ideale praticamente a 0, il fatto che il nostro modello avesse previsioni quasi perfette solleva preoccupazioni. Nel mondo reale, i modelli perfettamente accurati non esistono. Abbiamo poi testato la predizione sul set di test, che ha dato come risultato un’accuratezza di solo 0,84 con un p-value altrettanto significativo. Questo indicava che la nostra foresta casuale era troppo adatta al set di allenamento e non sarebbe stata un modello forte per le previsioni future.

Predicendo RainTomorrow con un modello di foresta casuale

La rete neurale

Il modello finale ha coinvolto la creazione di una rete neurale. Ancora una volta abbiamo usato 10 k-fold cross-validazione per sviluppare due reti, un modello di base con parametri specificati e una rete ottimale. La rete di base è stata creata con una dimensione di 12 e un decadimento di 0,1. Fare previsioni sul set di allenamento con il nostro modello di base ha mostrato una precisione di circa 0,841, mentre le previsioni sul set di test erano circa 0,844.

Abbiamo poi permesso a RStudio di cercare la dimensione ottimale da 1-12 e il decadimento tra 0,1-0,5. Un modello con dimensione 5 e decadimento 0,5 è stato determinato per avere la migliore accuratezza a circa 0,843, come visto di seguito.

Ricercando la dimensione ottimale della rete e il tasso di decadimento

Costruendo nuovamente le previsioni con il set di test si è calcolato un’accuratezza intorno a 0.8401, mentre la previsione sul set di test ha portato ad un’accuratezza di circa 0,8431, ciascuno con un p-value significativo vicino allo 0,

Predicendo RainTomorrow usando una rete neurale adattata

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.