loading...
Cover image for Recetas para visualización de datos con Seaborn

Recetas para visualización de datos con Seaborn

ruizleandro profile image Leandro Ruiz ・2 min read

En este articulo voy a recopilar algunos bloques de código que me han sido de gran utilidad en varios proyectos de machine learning. Seaborn es una librería para visualización en Python que contiene una gran variedad de gráficos con mucha personalización.

Gráficos básicos

Gráfico de correlación:

import seaborn as sns
sns.regplot(x='1st_feature', y='2nd_feature', data=df)

Gráfico de datos residuales:

sns.residplt(df['features'], df['target'])

Boxplot (o subplot), para ver outliers:

sns.boxplot(x='1st_feature', y='2nd_feature', data=df)

Gráfico de densidad:

plt.figure(figsize = (14,6))
plt.title('Plot Title')
sns.set_color_codes("pastel")
sns.distplot(df['1st_feature'], kde=True, bins=200, color="blue")
plt.show()

Gráfico de densidad con dos clases de objetivos:

class_0 = df.loc[df['target_feature'] == 0]["1st_feature"]
class_1 = df.loc[df['target_feature'] == 1]["2nd_feature"]
plt.figure(figsize = (14,6))
plt.title('Plot Title')
sns.set_color_codes("pastel")
sns.distplot(class_0, kde=True, bins=200, color="green", label='1st feature')
sns.distplot(class_1, kde=True, bins=200, color="red", label='2nd feature')
plt.legend()
plt.show()

Gráfico de cajas con varios atributos:

# 1st_feature= x, 2nd_feature = y, 3rd_feature = labels
def boxplot_variation(1st_feature, 2nd_feature, 3rd_feature, width=16):
    fig, ax1 = plt.subplots(ncols=1, figsize=(width,6))
    s = sns.boxplot(ax = ax1, x=1st_feature, y=2nd_feature, hue=3rd_feature,
                data=df, palette="PRGn",showfliers=False)
    s.set_xticklabels(s.get_xticklabels(),rotation=90)
    plt.show();

Graficando atributos importantes:

tmp = pd.DataFrame({'Feature': x_train, 'Feature importance': clf.feature_importances_})
tmp = tmp.sort_values(by='Feature importance', ascending=False)
plt.figure(figsize = (7,4))
plt.title('Features importance', fontsize=14)
s = sns.barplot(x=x_train, y='Feature importance', data=tmp)
s.set_xticklabels(s.get_xticklabels(), rotation=90)
plt.show()   

Mapa de calor de la matriz de correlación en forma de triángulo:

# corr_matrix son las correlaciones a graficar usando .corr()
mask = np.triu(np.ones_like(corr_matrix, dtype=np.bool))
f, ax = plt.subplots(figsize=(11, 9))
cmap = sns.diverging_palette(220, 10, as_cmap=True)
sns.heatmap(corr_matrix, mask=mask, cmap=cmap, vmax=.3, center=0,
            square=True, linewidths=.5, cbar_kws={"shrink": .5})

Pairplots

Pairplot básico:

sns.pairplot(df)

Seleccionando atributos:

sns.pairplot(df, vars=["1st_feature", "2nd_feature"])

Diferentes atributos en filas y columnas:

sns.pairplot(df,
                 x_vars=["1st_feature", "2nd_feature"],
                 y_vars=["3rd_feature", "4th_feature"])

Graficando solo el triángulo inferior y ajustando un modelo lineal:

sns.pairplot(df, kind='reg', corner=True)

Conclusión

Esto es todo por ahora, quizas en el futuro haga una segunda parte con mas tipos de gráficos.

¡Muchas gracias por llegar hasta aqui!

Posted on by:

ruizleandro profile

Leandro Ruiz

@ruizleandro

Soy un estudiante de ciencia de datos argentino. I'm a data science student from Argentina.

Discussion

pic
Editor guide