Skip to content

Trabajo Integrador de la materia de Análisis de Datos de la CEIA de la FIUBA.

Notifications You must be signed in to change notification settings

fede0ter0/ceia_and_tp_integrador

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 

Repository files navigation

Trabajo Integrador

Integrantes del grupo

María Alejandra Del Porto - [email protected]
Juan Ignacio Munar - [email protected]
Federico Otero - [email protected]

A modo explicativo, trataremos de ser breves y didácticos. Vamos a abundar en imágenes y tablas, tratando de explicar lo que en la notebook puede verse implementado en detalle.

Selección del dataset

El dataset elegido contiene mediciones meteorológicas efectuadas en distintas ciudades y fechas de Australia, como se puede ver en esta captura de pantalla:

image

El objetivo es poder predecir si lloverá al día siguiente, es decir, el valor de la variable target RainTomorrow (Yes / No)

EDA

Nuestro Análisis Exploratorio Inicial nos permite entender cada variable del dataset.

image

Luego de esto, analizamos cada variable según su tipo.

Análisis de features numéricas

Visualizamos los histogramas y distribuciones de las features numéricas.

image

image

Vemos que las siguientes features distribuyen como normal:

  • MinTemp, MaxTemp, Humidity9Am, Humidity3Pm, Pressure9Am, Pressure3Pm, Temp9Am, Temp3Pm.

Estas otras features no distribuyen como normales:

  • Rainfall, Evaporation, Sunshine, WindGustSpeed, WindSpeed9Am, WindSpeed3Pm, Cloud9Am, Cloud3Pm

Análisis de variables (input/output) categóricas

Visualizamos como se distribuyen sus valores.

image

Vemos un buen balance de los datos, donde las categorías se ven muy uniformes.

Análisis de la variable compuesta

image

La variable Date tiene mas de 3000 valores únicos, con lo cual se propone transformala, quedándonos con el mes correspondiente.

Ingeniería de features

Comenzamos ahora a intervenir en nuestro dataset. Lo primero que haremos será un análisis y tratamiento de los valores nulos o faltantes.

Análisis de los valures nulos

Esta es la imagen que se nos presenta al ver los valores nulos del dataset en crudo.

image

Estos nos permite filtrar algunas variables y pensar los siguientes pasos.

image

Finalmente, cuando asignamos valores a los nulos restantes, veremos que

image

Imputación de valores faltantes en variables numéricas

Para hacer este paso, nos apoyamos en los análisis de las distribuciones de las variables numéricas, de modo que podemos ver si las mismas son normales o presentan oblicuidades muy marcadas.

Finalmente, nos queda

image

Transformación de variables

En este paso, vamos a transformar algunas variables para lograr mejor performance en los modelos que se probarán. La técnica de transformación o encoding dependerá del análisis de la variable en cuestión.

WindGustDir

Se decidió reemplazar la dirección del viento expresada categóricamente (sureste, noreste, centroeste, etc.) por el ángulo que forma el mismo expresado en radianes, de modo que se convirtió de categórica en numérica continua.

Location

Se aplicó un encoding binario para no agregar demasiadas columnas.

Date

Se decidió reemplazar la fecha Date (yyyy-mm-dd) por el mes, ya que como sabemos las temperaturas a lo largo del año suele ser cíclicas. Luego se transformó de categórica nominal con un oneHot Encoding.

RainToday y RainTomorrow

Estas dos variables son boolenas (Yes/No), de modo que con una columna que tome los valores (0,1) alcanza para codificarlas.

Análisis de correlaciones

Análisis de colinealidad entre features numéricas

image

Análisis de Kendall entre las features y la variable target

image

Análisis X2 y de Información Mutua (MI) para la relación entre las features categóricas y la variable target.

X2

image

MI

image

Selección de features

image

Análisis y tratamiento de outliers

En base a visualizar algunas métricas sobre outliers y las distribuciones de sus variables:

image image image image

Decidimos tratar los outliers de maneras distintas en el caso de las variables gaussianas (normales) que en el caso de las no gaussianas. La estrategia utilizada es la poda (trimming), ya que resulta sencilla y eficiente para este caso donde disponemos de un tamaño grande de muestras.

Escalado de features

Normalizamos las features numéricas como último paso de la etapa de preprocesamiento de los datos. Veremos ahora dos propuestas sencillas de modelos a testear, que pueden funcionar bien para nuestro dataset de pocas columnas y variables categóricas (tanto features como la target a predecir).

Propuestas de modelos

Separación de los datos

Se utilizó una función sencilla de sci-kit learn, donde se separó en train-test (80%-20%) con un valor de random_state.

image

Random Forest

El score obtenido, luego de tratar de tunear los hiperparámetros, es de 87,11%:

image

image

Podemos probar estrategias de cross validation para tener un entrenamiento más balanceado de los datos

image

Logistic Regression

El caso más sencillo, el de la regresión logística, se ajusta bien a nuestros datos, dándonos un score de 86,75%.

image

Evaluación de resultados

A modo de sugerencia, proponemos algunas de las siguientes herramientas para evaluar y comparar los resultados de los modelos:

  • accuracy score
  • R2
  • f-Score
  • confusion matrix

About

Trabajo Integrador de la materia de Análisis de Datos de la CEIA de la FIUBA.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published