Fase 2: Desarrollo del modelo
Durante la fase 1 de este proyecto, estudiamos las variables significativas para predecir la variable LluviaMañana. Después de imputar los datos que faltaban y comprobar la correlación, determinamos que 8 variables eran los predictores más significativos: Humedad9am, Humedad3pm, Nube9am, Nube3pm, VelocidadDelViento, Temp3pm, DiferenciaHumedad, y DiferenciaTemperatura. Al incluir la variable de respuesta, RainTomorrow, en nuestra lista, creamos un nuevo conjunto de datos.
A continuación, dividimos el conjunto de datos con el 70% de los datos formando un conjunto de entrenamiento y el 30% pasando a un conjunto de prueba. Utilizamos tres técnicas diferentes de creación de modelos para determinar cuál sería la más precisa: árboles de clasificación, bosques aleatorios y redes neuronales. También estudiamos la importancia de nuestras variables seleccionadas en los modelos de bosque aleatorio y de red neuronal.
Como podemos ver arriba, la humedad parece ser uno de los predictores más fuertes en nuestro modelo de bosque aleatorio. Sin embargo, la red neuronal da más importancia a la diferencia de temperatura, y la humedad tiene una importancia mucho menor en el modelo. En ambos modelos, la nubosidad parece tener una importancia significativa, mientras que la velocidad de las ráfagas de viento parece moderadamente baja.
El árbol de clasificación
Nuestro primer árbol de clasificación se construyó sin especificar el parámetro de complejidad para explorar qué valor puede funcionar mejor. El valor óptimo de cp para este árbol resultó ser aproximadamente 0,221, que luego utilizamos para construir un nuevo árbol.
La predicción de RainTomorrow en el conjunto de entrenamiento dio como resultado una precisión de aproximadamente 0,828. En comparación con la precisión del modelo ingenuo de 0,78, y teniendo en cuenta un valor p de casi 0, este modelo parecía ser de buena calidad. A continuación, realizamos predicciones sobre el conjunto de datos de prueba, que dieron como resultado una precisión de aproximadamente 0,824. Con ambas predicciones mostrando una mayor precisión que el modelo ingenuo, el árbol de clasificación puede ser viable para predecir RainTomorrow.
El bosque aleatorio
Mejorando el método del árbol de clasificación, construimos entonces un bosque aleatorio con 10 k-fold cross-validation y 50 árboles. El desarrollo de predicciones en el conjunto de entrenamiento con nuestro bosque aleatorio dio como resultado una precisión de 0,9991, casi el 100%. Aunque el valor p es ideal, prácticamente 0, el hecho de que nuestro modelo tuviera predicciones casi perfectas suscita preocupación. En el mundo real, los modelos perfectamente precisos no existen. A continuación, probamos la predicción en el conjunto de pruebas, que dio como resultado una precisión de sólo 0,84 con un valor p igualmente significativo. Esto indicaba que nuestro bosque aleatorio estaba sobreajustado al conjunto de entrenamiento y no sería un modelo sólido para futuras predicciones.
La Red Neural
El modelo final implicaba la creación de una red neural. Una vez más, utilizamos la validación cruzada de 10 veces para desarrollar dos redes, un modelo básico con parámetros específicos y una red óptima. La red básica se creó con un tamaño de 12 y un decaimiento de 0,1. Las predicciones en el conjunto de entrenamiento con nuestro modelo básico mostraron una precisión de alrededor de 0,841, mientras que las predicciones en el conjunto de pruebas fueron de alrededor de 0,844.
A continuación, dejamos que RStudio buscara el tamaño óptimo de 1 a 12 y el decaimiento entre 0,1-0,5. Se determinó que un modelo con un tamaño de 5 y un decaimiento de 0,5 tenía la mejor precisión, en torno a 0,843, como se ve a continuación.
Construyendo predicciones de nuevo con el conjunto de pruebas se calculó una precisión en torno a 0.8401, mientras que la predicción con el conjunto de pruebas dio como resultado una precisión de alrededor de 0,8431, cada una con un valor p significativo cercano a 0,
.