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.residplot(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!
Top comments (0)