Análisis exploratorio con dataset: Estimación precio de una vivienda

| Última modificación: 12 de julio de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

En este artículo haremos un ejercicio de análisis exploratorio con el dataset sobre estimación del precio de una vivienda. El conjunto de datos en cuestión está alojado en Kaggle y ha sido ya tratado en algunos de sus componentes.

En un ejercicio anterior del blog hemos visto cómo era el proceso de carga de los datos dentro de este dataset. En esta ocasión, analizaremos otras de las fases del análisis exploratorio de datos o EDA.

Ejercicio de análisis exploratorio: Dataset House Sales

Ahora que ya tenemos cargados los datos que queremos analizar en un objeto Pandas, vamos a realizar un análisis básico de los mismos y a determinar si hay una distribución normal.

Una buena práctica es intentar resumir toda la información posible de los datos y verificar si hay datos atípicos.

Habitualmente nos interesa saber la media y desviación estándar, posiblemente tercer cuartiles de cada una de las variables. Esto nos permitirá, por un lado, tener una idea de cómo son las distribuciones de cada una de las variables y, por otra, nos permitirá verificar si existen datos anómalos, también conocidos como outliers.

#Ejercicio de análisis exploratorio
house_data.describe().T
Ejercicio de análisis exploratorio

A pesar de este resumen, conviene siempre hacer representaciones gráficas que nos ofrecen un mejor entendimiento de los datos. Para ello, vamos a representar los histogramas o diagramas de barras de algunos atributos: bedrooms, sqm_living y yr_built.

#Ejercicio de análisis exploratorio
plt.figure (figsize = (15, 5))
plt.subplot (1, 3, 1)
house_data ['bedrooms'].plot.hist (alpha = 0.5, bins = 25, grid = True)
plt.axis ([0, 10, 0, 10000])
plt.xlabel ('bedrooms')
plt.subplot (1, 3, 2)
house_data ['sqm_living'].plot.hist (alpha = 0.5, bins = 25, grid = True
plt.xlabel ('sqm_living')
#Ejercicio de análisis exploratorio
#código para representar histogramas en matplotlib
plt.subplot (1, 3, 3)
house_data ['yr_built'].plot.hist (alpha = 0.5, bins = 25, grid = True
plt.xlabel ('yr_built')
plt.show ()

Aquí tenemos, pues, el histograma. Este nos da más información del dataset. Esta información podríamos sacarla también viendo los cuartiles, pero la que aparece en los histogramas es mucho más interpretable y rápida que el describe.

El describe es tremendamente útil cuando necesitamos información más detallada sobre los datos, cuando necesitamos saber en torno a qué giran los datos que tenemos y cómo debemos tratarlos.

En los histogramas podemos observar cómo están distribuidos los dormitorios y observar que la mayoría de las casas tienen 3 dormitorios, aunque hay unos 5 o 6. Tras ese número, la cantidad va bajando progresivamente.

También observamos que, a diferencia del describe, aquí no nos muestra las viviendas que tienen 33 dormitorios, lo cual podría significar, muy probablemente, que ese registro de 33 dormitorios es un dato anómalo, porque entre 10 y 33 no existen más registros. Aunque, por supuesto, esto habría que investigarlo más a fondo.

Una vez que hemos analizado las variables por separado, el siguiente paso en un análisis exploratorio sería entender las relaciones entre cada una de las variables/atributos (x) y la variable respuesta (y).

Para ello vamos a utilizar un scatter plot con la variable objetivo definida y como variable dependiente, y alguna de las variables explicativas como variables independientes. En el caso de la variable waterfront, dado que es binaria, vamos a utilizar un boxplot.

#Ejercicio de análisis exploratorio
house_data.plot (kind = 'scatter', x = 'bedrooms', y = 'price')
plt.xlabel ('# beedrooms')
plt.ylabel ('price ($)')
plt.show ()
house_data.plot (kind = 'scatter', x = 'sqm_living', y = 'price')
plt.xlabel ('# sqm_living ($ m ^ 2 $)')
plt.ylabel ('price ($)')
plt.show ()
house_data.boxplot (by = 'waterfront', column = 'price')
plt.show ()

El scatter, después de tener el histograma, es una de las gráficas más útiles que podemos usar para analizar resultados en machine learning, ya que es sumamente fácil leer datos con el scatter; también es muy simple ver datos anómalos. Aquí, por ejemplo, estamos viendo el número de habitaciones frente al precio en el ejercicio de análisis exploratorio.

Podríamos hacer mención de los registros que no encajan con la media, porque parecen una anomalía, pero no necesariamente lo son, ya que respetan la tendencia, a pesar de haber un salto.

Ahora que hemos visto este ejercicio de análisis exploratorio con nuestro dataset, podemos seguir aprendiendo acerca de una de las disciplinas más prolíficas y mejor pagadas en la actualidad. Para esta finalidad tenemos nuestro Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp, una formación intensiva de 8 meses de duración en la que aprenderás todo lo necesario para incursionar en este mundillo tan interesante y amplio. ¡Anímate a cambiar tu futuro y solicita más información ahora!

Sandra Navarro

Business Intelligence & Big Data Advisor & Coordinadora del Bootcamp en Data Science, Big Data & Machine Learning.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Big Data, IA & Machine Learning

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado