Análisis exploratorio inicial

Análisis exploratorio inicial (EDA Exploratory Data Analysis)

Objetivos del EDA

  • Tamaño de los datos
  • Propiedades de la variable objetivo
  • Propiedades de las variables explicativas
  • Generar ideas para ingeniería de variables

Ejemplo del problema

  • Problema: predecir popularidad
  • Variable objetivo: interest_level
  • Tipo: clasificación con 3 clases
  • Métrica: log loss

EDA. Parte I

twosigma_train = pd.read_csv('twosigma_train.csv')
print('Tamaño train:', twosigma_train.shape)

twosigma_test = pd.read_csv('twosigma_test.csv')
print('Tamaño test:', twosigma_test.shape)

EDA. Parte I

twosigma_train = pd.read_csv('twosigma_train.csv')
print('Tamaño train:', twosigma_train.shape)

twosigma_test = pd.read_csv('twosigma_test.csv')
print('Tamaño test:', twosigma_test.shape)
Train shape: (49352, 11)
Test shape: (74659, 10)

Test tiene todas menos la variable objetivo.

EDA. Parte I

print(twosigma_train.columns.tolist())

['id' , 'bathrooms' , 'bedrooms'
,'building_id' ,'latitude', 'longitude','manager
_ id', 'price' , 'interest _ level']

Muestra todas las columnas

EDA. Parte I

twosigma_train['interest_level'].value_counts()

EDA. Parte I

Low 34284
medium 11229
high 3839

Luego, por ejemplo, podríamos obtener la distribución de ‘interest_level’ usando el método value_counts() de

EDA. Parte I

twosigma_train.describe()

EDA. Parte II

import matplotlib.pyplot as plt
plt.style.use('ggplot')

prices = twosigma_train.groupby('interest_level', as_index=False)['price'].median()

EDA. Parte II

fig = plt.figure(figsize=(7, 5))

plt.bar(prices.interest_level, prices.price, width=0.5, alpha=0.8)

plt.xlabel('Nivel de interés')
plt.ylabel('Precio mediano')
plt.title('Precio mediano según nivel de interés')

plt.show()

Resultado

La gente busca precios mas baratos.