Análisis de Datos Exploratorios con Python
[wp_ad_camp_1]
En esta sección, exploraremos varios métodos para ver si ciertas características se pueden usar para predecir el precio del automóvil.
Análisis de Datos Exploratorios con Python
¿Cuáles son las principales características que tienen el mayor impacto en el precio del automóvil?
Importando los datos
import pandas as pd import numpy as np
Cargamos los datos y los guardamos en un dataframe
path='https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/automobileEDA.csv' df = pd.read_csv(path) df.head(11).transpose()
Análisis de patrones de características individuales mediante visualización
Para instalar seaborn usamos pip que es el administrador de paquetes de python.
%%capture ! pip install seaborn
Importe los paquetes de visualización "Matplotlib" y "Seaborn", no se olvide de "% matplotlib en línea" para dibujar en el mismo cuaderno Jupyter.
import matplotlib.pyplot as plt import seaborn as sns %matplotlib inline
¿Cómo elegir el método de visualización correcto?
Al visualizar variables individuales, es importante entender primero con qué tipo de variable está tratando. Esto nos ayudará a encontrar el método de visualización correcto para esa variable.
[wp_ad_camp_2]
# lista de los tipos de datos para cada columna print(df.dtypes)
por ejemplo, podemos calcular la correlación entre variables de tipo "int64" o "float64" utilizando el método "corr":
df.corr()
Los elementos diagonales son siempre uno; estudiaremos la correlación más precisamente la correlación de Pearson y la tabla anova en profundidad al final de este post.
Si queremos encontrar la correlación entre ciertas columans.
df[['bore', 'stroke','compression-ratio' ,'horsepower']].corr()
Variables numéricas continuas:
Las variables numéricas continuas son variables que pueden contener cualquier valor dentro de cierto rango. Las variables numéricas continuas pueden tener el tipo "int64" o "float64". Una excelente manera de visualizar estas variables es mediante el uso de diagramas de dispersión con líneas ajustadas.
Para comenzar a comprender la relación (lineal) entre una variable individual y el precio. Podemos hacer esto usando "regplot", que traza el diagrama de dispersión más la línea de regresión ajustada para los datos.
Veamos varios ejemplos de diferentes relaciones lineales:
Relación lineal fuerte
[wp_ad_camp_3]
Relación lineal positiva
Busquemos el diagrama de dispersión de "tamaño del motor" y "precio"
sns.regplot(x="engine-size", y="price", data=df) plt.ylim()
A medida que aumenta el tamaño del motor, aumenta el precio: esto indica una correlación directa positiva entre estas dos variables. El tamaño del motor parece ser un buen predictor de precio ya que la línea de regresión es casi una línea diagonal perfecta.
Podemos examinar la correlación entre 'tamaño del motor' y 'precio' y ver que es aproximadamente 0.87
df[["engine-size", "price"]].corr()
Relación lineal negativa
Ahora veremos con el mpg en carretera ya que es una variable predictiva potencial de precio.
sns.regplot(x="highway-mpg", y="price", data=df)
A medida que aumenta el mpg en carretera, el precio baja: esto indica una relación inversa / negativa entre estas dos variables. El mpg en carretera podría ser un predictor de precio.
Podemos examinar la correlación entre 'highway-mpg' y 'price' y ver que es aproximadamente -0.704
df[['highway-mpg', 'price']].corr()
Relación lineal débil
sns.regplot(x="peak-rpm", y="price", data=df)
Las rpm máximas no parecen ser un buen predictor del precio, ya que la línea de regresión está cerca de la horizontal. Además, los puntos de datos están muy dispersos y lejos de la línea ajustada, lo que muestra mucha variabilidad. Por lo tanto, no es una variable confiable.
[wp_ad_camp_4]
Podemos examinar la correlación entre 'peak-rpm' y 'price' y ver que es aproximadamente -0.101616
df[['peak-rpm','price']].corr()
Variables categóricas
Estas son variables que describen una 'característica' de una unidad de datos y se seleccionan de un pequeño grupo de categorías. Las variables categóricas pueden tener el tipo "objeto" o "int64". Una buena forma de visualizar variables categóricas es mediante el uso de diagramas de caja.
Veamos la relación entre "body-style" y "price".
sns.boxplot(x="body-style", y="price", data=df)
Vemos que las distribuciones de precios entre las diferentes categorías de estilo de cuerpo tienen una superposición significativa, por lo que el estilo de cuerpo no sería un buen predictor del precio. Examinemos la ubicación del motor "engine-location" y el "precio" del motor:
sns.boxplot(x="engine-location", y="price", data=df)
Aquí vemos que la distribución del precio entre estas dos categorías de ubicación del motor, delantera y trasera, es lo suficientemente distinta como para tomar la ubicación del motor como un buen predictor potencial del precio.
[wp_ad_camp_5]
Examinemos "drive-wheels" y "price".
sns.boxplot(x="drive-wheels", y="price", data=df)
Aquí vemos que la distribución de precios entre las diferentes categorías de drive-wheels es diferente; como tales, drive-wheels podría ser un predictor de precio.
Dado que lo siguiente es Análisis estadístico descriptivo y es mucho contenido, juzgo conveniente explicarlo en otra publicación.
Pueden verla en este enlace https://rubenjromo.com/analisis-estadistico-descriptivo-con-python/
También les comparto el código en github el cual fue usado en esta publicación, adicionalmente pueden descargar el notebook para su uso personal exclusivamente con fines didácticos.
https://github.com/rjromo/rubenjromo.com/blob/master/An%C3%A1lisis_de_Datos_Exploratorios.ipynb
Deja una respuesta
Lo siento, debes estar conectado para publicar un comentario.