Bienvenido, les saluda Miguel y en esta ocasión les traigo un post.
Gráficos relacionales, categóricos y de distribución con Matplotlib y Seaborn
El análisis exploratorio de datos (EDA) es una parte esencial de la ciencia de datos o del proceso de aprendizaje automático. Para crear un producto robusto y valioso utilizando los datos, necesita explorar los datos, comprender las relaciones entre las variables y la estructura subyacente de los datos. Una de las herramientas más eficaces de EDA es la visualización de datos.
Las visualizaciones de datos nos dicen mucho más que simples números. También es más probable que se le peguen a la cabeza. En esta publicación, intentaremos explorar un conjunto de datos de abandono de clientes utilizando el poder de las visualizaciones.
Nos Wil l creamos muchas visualizaciones diferentes y, en cada uno, tratar de introducir un rasgo de la biblioteca Matplotlib o Seaborn.
Comenzamos importando bibliotecas relacionadas y leyendo el conjunto de datos en un marco de datos de pandas.
importar pandas como pd importar numpy como npimportar matplotlib.pyplot como plt importar seaborn como sns sns.set (style = 'darkgrid') % matplotlib en líneadf = pd.read_csv ("/ content / Churn_Modelling.csv")df.head ()
El conjunto de datos contiene 10000 clientes (es decir, filas) y 14 características sobre los clientes y sus productos en un banco. El objetivo aquí es predecir si un cliente abandonará (es decir, saldrá = 1) utilizando las funciones proporcionadas.
Empecemos con un trama de gato que es una trama categórica de la biblioteca Seaborn.
sns.catplot(x='Gender', y='Age', data=df, hue='Exited', height=8, aspect=1.2)
Hallazgo: Las personas entre 45 y 60 años tienen más probabilidades de abandonar la empresa (es decir, dejar la empresa) que otras edades. No hay una diferencia considerable entre mujeres y hombres en términos de batido.
los matiz El parámetro se utiliza para diferenciar los puntos de datos en función de una variable categórica.
La siguiente visualización es la gráfico de dispersión que muestra la relación entre dos variables numéricas. Veamos si el salario estimado y el saldo de un cliente están relacionados.
plt.figure(figsize=(12,8))plt.title("Estimated Salary vs Balance", fontsize=16)sns.scatterplot(x='Balance', y='EstimatedSalary', data=df)
Primero usamos matplotlib.pyplot interfaz para crear un objeto Figura y establecer el título. Luego, dibujamos la trama real en este objeto figura con Seaborn.
Hallazgo: No existe una relación o correlación significativa entre el salario estimado y el saldo. El saldo parece tener una distribución normal (excluyendo a los clientes con saldo cero).
La siguiente visualización es la diagrama de caja que muestra la distribución de una variable en términos de mediana y cuartiles.
plt.figure(figsize=(12,8))ax = sns.boxplot(x='Geography', y='Age', data=df)ax.set_xlabel("Country", fontsize=16) ax.set_ylabel("Age", fontsize=16)
También ajustamos los tamaños de fuente de los ejes xey usando set_xlabel y set_ylabel.
Aquí está la estructura de los diagramas de caja:
La mediana es el punto en el medio cuando se ordenan todos los puntos. Q1 (primer cuartil o cuartil inferior) es la mediana de la mitad inferior del conjunto de datos. Q3 (tercer cuartil o cuartil superior) es la mediana de la mitad superior del conjunto de datos.
Por lo tanto, los diagramas de caja nos dan una idea sobre la distribución y los valores atípicos. En la gráfica de caja que creamos, hay muchos valores atípicos (representados con puntos) en la parte superior.
Hallazgo: La distribución de la variable edad está sesgada a la derecha. La media es mayor que la mediana debido a los valores atípicos en el lado superior. No hay una diferencia considerable entre países.
La asimetría a la derecha también se puede observar en la distribución univariante de una variable. Vamos a crear un distplot para observar la distribución.
plt.figure(figsize=(12,8))plt.title("Distribution of Age", fontsize=16)sns.distplot(df['Age'], hist=False)
La cola del lado derecho es más pesada que la del lado izquierdo. La razón son los valores atípicos, como también observamos en el diagrama de caja.
El distplot también proporciona un histograma por defecto, pero lo cambiamos usando el hist parámetro.
La biblioteca de Seaborn también proporciona diferentes tipos de gráficos de pares que brindan una descripción general de las relaciones de pares entre variables. Primero tomemos una muestra aleatoria de nuestro conjunto de datos para hacer que los gráficos sean más atractivos. El conjunto de datos original tiene 10000 observaciones y tomaremos una muestra con 100 observaciones y 4 características.
subset=df[['CreditScore','Age','Balance','EstimatedSalary']].sample(n=100)g = sns.pairplot(subset, height=2.5)
En la diagonal, podemos ver el histograma de variables. La otra parte de la cuadrícula representa relaciones por pares.
Otra herramienta para observar las relaciones por pares es la mapa de calor que toma una matriz y produce un diagrama codificado por colores. Los mapas de calor se utilizan principalmente para verificar las correlaciones entre las características y la variable objetivo.
Primero creemos una matriz de correlación de algunas características usando el corr función de los pandas.
corr_matrix = df[['CreditScore','Age','Tenure','Balance', 'EstimatedSalary','Exited']].corr()
Ahora podemos trazar esta matriz.
plt.figure(figsize=(12,8))sns.heatmap(corr_matrix, cmap='Blues_r', annot=True)
Resultado: Las columnas «Edad» y «Saldo» están correlacionadas positivamente con la pérdida de clientes («Salido»).
A medida que aumenta la cantidad de datos, se hace más difícil analizarlos y explorarlos. Llega el poder de las visualizaciones que son grandes herramientas en el análisis de datos de exploración cuando se usan de manera eficiente y apropiada. Las visualizaciones también ayudan a entregar un mensaje a su audiencia o informarles sobre sus hallazgos.
No hay un método de visualización que sirva para todos los casos, así que ciertas tareas requieren diferentes tipos de visualizaciones. Dependiendo de la tarea, diferentes opciones pueden ser más adecuadas. Lo que todas las visualizaciones tienen en común es que son grandes herramientas para el análisis exploratorio de datos y la parte narrativa de la ciencia de los datos.
Gracias por leer. Por favor, háganme saber si tienen alguna respuesta.
Añadir comentario