Faza 2: Dezvoltarea modelului
În timpul fazei 1 a acestui proiect, am studiat variabilele semnificative în predicția variabilei PloaieMâine. După ce am imputat datele lipsă și am verificat corelația, am determinat 8 variabile ca fiind cei mai semnificativi predictori: Humidity9am, Humidity3pm, Cloud9am, Cloud3pm, WindGustSpeed, Temp3pm, HumidityDiff, și TempDiff. Incluzând variabila de răspuns, RainTomorrow, în lista noastră, am creat un nou set de date.
Apoi am împărțit setul de date cu 70% din date formând un set de antrenament și 30% mergând într-un set de testare. Am folosit 3 tehnici diferite de construire a modelelor pentru a determina care ar fi cea mai precisă: arbori de clasificare, păduri aleatoare și rețele neuronale. Am studiat, de asemenea, importanța variabilelor selectate de noi în modelele de pădure aleatoare și de rețea neuronală.
După cum putem vedea mai sus, umiditatea pare să fie unul dintre cei mai puternici predictori în modelul nostru de pădure aleatoare. Cu toate acestea, rețeaua neuronală acordă o importanță mai mare diferenței de temperatură, umiditatea având o importanță mult mai mică în model. În ambele modele, învelișul de nori pare să dețină o importanță semnificativă, în timp ce viteza rafalelor de vânt pare să fie moderat scăzută.
Arborele de clasificare
Primul nostru arbore de clasificare a fost construit fără a specifica parametrul de complexitate pentru a explora ce valoare poate funcționa cel mai bine. Valoarea optimă a cp pentru acest arbore a ajuns să fie de aproximativ 0,221, pe care am folosit-o apoi pentru a construi un nou arbore.
Predicerea ploii de mâine pe setul de antrenament a avut ca rezultat o precizie de aproximativ 0,828. Comparativ cu acuratețea modelului naiv de 0,78 și având în vedere o valoare p de aproape 0, acest model pare a fi un model de bună calitate. Am făcut apoi predicții pe setul de date de testare, ceea ce a dus la o precizie de aproximativ 0,824. Având în vedere că ambele predicții au arătat o acuratețe mai mare decât modelul naiv, arborele de clasificare poate fi viabil pentru predicția RainTomorrow.
The Random Forest
Îmbunătățind metoda arborelui de clasificare, am construit apoi o pădure aleatorie cu 10 k-fold cross-validation și 50 de arbori. Dezvoltarea predicțiilor pe setul de antrenament cu pădurea noastră aleatorie a dus la o precizie de 0,9991, aproape 100%. În timp ce valoarea p este ideală, practic 0, faptul că modelul nostru a avut predicții aproape perfecte ridică semne de întrebare. În lumea reală, nu există modele perfect exacte. Am testat apoi predicția pe setul de testare, care a avut ca rezultat o acuratețe de numai 0,84 cu o valoare p la fel de semnificativă. Acest lucru a indicat faptul că pădurea noastră aleatorie a fost supraadaptată la setul de antrenament și nu ar fi un model puternic pentru predicțiile viitoare.
Rețeaua neuronală
Modelul final a implicat crearea unei rețele neuronale. Am folosit din nou validarea încrucișată de 10 k ori pentru a dezvolta două rețele, un model de bază cu parametri specificați și o rețea optimă. Rețeaua de bază a fost creată cu o dimensiune de 12 și o decădere de 0,1. Efectuarea de predicții pe setul de antrenament cu modelul nostru de bază a arătat o acuratețe de aproximativ 0,841, în timp ce predicțiile pe setul de testare au fost de aproximativ 0,844.
Apoi am permis RStudio să caute dimensiunea optimă între 1-12 și decădere între 0,1-0,5. S-a stabilit că un model cu dimensiunea 5 și decădere 0,5 a avut cea mai bună acuratețe, în jur de 0,843, după cum se vede mai jos.
Construirea predicțiilor din nou cu setul de testare a calculat o acuratețe în jur de 0.8401, în timp ce predicția pe setul de testare a dus la o acuratețe de aproximativ 0,8431, fiecare cu o valoare p semnificativă aproape de 0,
.