Faza 2: Opracowanie modelu

Podczas fazy 1 tego projektu, badaliśmy zmienne istotne w przewidywaniu zmiennej DeszczJutro. Po imputacji brakujących danych i sprawdzeniu korelacji, określiliśmy 8 zmiennych jako najbardziej znaczące predyktory: Humidity9am, Humidity3pm, Cloud9am, Cloud3pm, WindGustSpeed, Temp3pm, HumidityDiff, and TempDiff. Włączając zmienną odpowiedzi, RainTomorrow, do naszej listy, stworzyliśmy nowy zbiór danych.

Następnie podzieliliśmy zbiór danych, z 70% danych tworzących zbiór treningowy i 30% trafiających do zbioru testowego. Użyliśmy 3 różnych technik budowania modeli, aby określić, która z nich będzie najdokładniejsza: drzewa klasyfikacyjne, lasy losowe i sieci neuronowe. Zbadaliśmy również znaczenie wybranych przez nas zmiennych w modelach lasów losowych i sieci neuronowych.

Ważne zmienne uporządkowane według przewidywanego znaczenia dla zmiennej DeszczJutro

Jak widzimy powyżej, wilgotność wydaje się być jednym z najsilniejszych predyktorów w naszym modelu lasów losowych. Jednak sieć neuronowa kładzie większy nacisk na różnicę temperatur, a wilgotność ma znacznie mniejsze znaczenie w modelu. W obu modelach, zachmurzenie wydaje się mieć duże znaczenie, podczas gdy prędkość porywów wiatru wydaje się być umiarkowanie niska.

Drzewo klasyfikacyjne

Nasze pierwsze drzewo klasyfikacyjne zostało zbudowane bez określania parametru złożoności w celu zbadania, która wartość może działać najlepiej. Optymalna wartość cp dla tego drzewa wyniosła około 0,221, którą następnie wykorzystaliśmy do zbudowania nowego drzewa.

Predicting RainTomorrow used a pruned classification tree

Predicting RainTomorrow na zbiorze treningowym dało dokładność około 0,828. W porównaniu z dokładnością modelu naiwnego wynoszącą 0,78 i biorąc pod uwagę wartość p równą prawie 0, model ten okazał się być modelem dobrej jakości. Następnie dokonaliśmy predykcji na testowym zbiorze danych, co dało dokładność około 0,824. Z obydwoma przewidywaniami wykazującymi większą dokładność niż model naiwny, drzewo klasyfikacyjne może być opłacalne do przewidywania deszczu jutro.

Las losowy

Poprawiając metodę drzewa klasyfikacyjnego, zbudowaliśmy las losowy z 10 k-krotną walidacją krzyżową i 50 drzewami. Opracowanie przewidywań na zbiorze treningowym z naszym lasem losowym dało dokładność 0,9991, prawie 100%. Podczas gdy wartość p jest idealna na poziomie praktycznie 0, fakt, że nasz model miał prawie idealne przewidywania, budzi obawy. W prawdziwym świecie, idealnie dokładne modele nie istnieją. Następnie przetestowaliśmy przewidywanie na zestawie testowym, co dało dokładność tylko 0.84 z podobnie znaczącą wartością p-value. Wskazywało to, że nasz las losowy był zbyt dopasowany do zbioru treningowego i nie będzie silnym modelem dla przyszłych przewidywań.

Predicting RainTomorrow with a random forest model

The Neural Network

Ostatni model wymagał stworzenia sieci neuronowej. Ponownie użyliśmy 10 k-krotnej walidacji krzyżowej, aby stworzyć dwie sieci, model podstawowy z określonymi parametrami oraz sieć optymalną. Sieć podstawowa została stworzona z rozmiarem 12 i dekorelacją 0.1. Wykonywanie przewidywań na zbiorze treningowym z naszym podstawowym modelem wykazało dokładność około 0,841, podczas gdy przewidywania na zbiorze testowym wynosiły około 0,844.

Następnie pozwoliliśmy RStudio na poszukiwanie optymalnego rozmiaru z zakresu 1-12 i rozkładu pomiędzy 0,1-0,5. Model z rozmiarem 5 i rozkładem 0.5 został określony jako posiadający najlepszą dokładność na poziomie około 0.843, jak widać poniżej.

Szukanie optymalnego rozmiaru sieci i współczynnika rozkładu

Budowanie predykcji ponownie z zestawem testowym obliczyło dokładność około 0.8401, natomiast przewidywanie na zbiorze testowym dało dokładność około 0,8431, każde z istotną wartością p bliską 0,

Przewidywanie deszczu jutro przy użyciu dopasowanej sieci neuronowej
.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.