Processing math: 100%

Herramientas de usuario

Herramientas del sitio


clase:iabd:pia:1eval:tema04

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
clase:iabd:pia:1eval:tema04 [2024/12/03 19:53]
admin [Mini-proyecto]
clase:iabd:pia:1eval:tema04 [2025/03/22 13:06] (actual)
admin [Personalización]
Línea 843: Línea 843:
 También podemos obtener el siguiente color que vamos a usar con: También podemos obtener el siguiente color que vamos a usar con:
 <sxh python> <sxh python>
 +#Versiones nuevas
 +color=axes._get_lines.get_next_color()
 +#Versiones antiguas
 color=next(axes._get_lines.prop_cycler)['color'] color=next(axes._get_lines.prop_cycler)['color']
 </sxh>  </sxh> 
Línea 1097: Línea 1100:
  
 Como podemos ver hay muchos estilos relacionados con [[https://seaborn.pydata.org/|Seaborn]] Como podemos ver hay muchos estilos relacionados con [[https://seaborn.pydata.org/|Seaborn]]
 +
 +==== Definir el propio estilo ====
 +Normalmente queremos que todas nuestras gráficas tengan un mismo estilo , por ello es bueno crear una serie de funciones estándar que siempre usaremos. 
 +
 +  * La primera función que usamos se llama ''axes_configure_labels(axes,title,xlabel,ylabel)'' que configura tanto los labels como los colores y tamaños de fuente.
 +
 +<sxh python>
 +def axes_configure_labels(axes,title,xlabel,ylabel):
 +    color="#003B80"
 +    facecolor="#FAFCFF"
 +    gridcolor="#BAD4F2"
 +    tickcolor="#011E32"
 +    fontsize_label=13
 +
 +    axes.set_xlabel(xlabel, fontsize=fontsize_label,color=color)
 +    axes.set_ylabel(ylabel, fontsize=fontsize_label,color=color)
 +    axes.set_title(title,color=color)
 +
 +    axes.set_facecolor(facecolor)
 +    axes.spines['bottom'].set_color(tickcolor)
 +    axes.spines['top'].set_color(tickcolor)
 +    axes.spines['right'].set_color(tickcolor)
 +    axes.spines['left'].set_color(tickcolor)
 +    axes.tick_params(axis='both', colors=tickcolor)
 +
 +    axes.grid(visible=True, which='major', axis='both',color=gridcolor,linewidth=1,zorder=-10)
 +    axes.set_axisbelow(True)
 +
 +    handles, labels = axes.get_legend_handles_labels()
 +    if labels:
 +        axes.legend(fontsize=fontsize_label-2,labelcolor=color)
 +
 +</sxh>
 +
 +
 +  * La siguiente función es ''axes_configure_for_metrics(axes)'' que configura las gráficas para mostrar métricas que van de [01].
 +
 +<sxh python>
 +def axes_configure_axis_for_metrics(axes):
 +    axes.set_xlim(xmin=0,xmax=1)
 +    axes.set_ylim(ymin=0,ymax=1.1)
 +
 +    axes.xaxis.set_major_locator(MultipleLocator(0.1))
 +    axes.yaxis.set_major_locator(MultipleLocator(0.1))
 +</sxh>
 +
 +
 +  * Para mostrar las gráficas de la pérdida en función de las épocas se usarán las funciones ''axes_configure_axis_for_epochs'' y ''plot_history_metric'':
 +
 +
 +<sxh python>
 +def axes_configure_axis_for_epochs(axes,ymax=1):
 +    axes.xaxis.set_major_locator(MaxNLocator(10,integer=True))
 +    axes.yaxis.set_major_locator(LinearLocator(10))
 +    axes.set_ylim(ymin=0,ymax=ymax)
 +</sxh>
 +
 +
 +<sxh python>
 +def plot_history_metric(axes,history,metric_name,label=None,color="#003B80",decimales=2):
 +
 +    if (label==None):
 +        label=metric_name
 +
 +    axes.plot(history[metric_name],linestyle="dotted",c=color,label=f"{label}:{history[metric_name][-1]:.{decimales}f}")  
 +    axes.plot(history['val_'+metric_name],linestyle="solid",c=color,label=f"Valid. {label}:{history['val_'+metric_name][-1]:.{decimales}f}"
 +    
 +    
 +</sxh>
 +
 +Usándose así:
 +
 +<sxh python>
 +figure=plt.figure(figsize=(6, 3.5))
 +axes=figure.add_subplot(1,1,1)
 +
 +plot_history_metric(axes,history.history,"loss",decimales=6)
 +axes_configure_labels(axes,"loss por épocas","Nº Épocas","Loss")
 +axes_configure_axis_for_epochs(axes,1.1)
 +</sxh>
 +
 +
 ===== Ejercicios ===== ===== Ejercicios =====
  
Línea 1913: Línea 1998:
 model.compile(loss='mean_squared_error',metrics=[tf.keras.metrics.R2Score()]) model.compile(loss='mean_squared_error',metrics=[tf.keras.metrics.R2Score()])
 </sxh> </sxh>
 +
 +Se usa de la siguiente forma:
 +  * Obtener el R² para cada época en el entrenamiento
 +<sxh python>
 +r2_score=history.history['r2_score']
 +</sxh>
 +
 +  * Obtener el R² para cada época en validación
 +<sxh python>
 +r2_score_validacion=history.history['val_r2_score']
 +</sxh>
 +
 +
  
 {{:clase:iabd:pia:1eval:boston_loss_metrics_300_epocas.png|}} {{:clase:iabd:pia:1eval:boston_loss_metrics_300_epocas.png|}}
clase/iabd/pia/1eval/tema04.1733251992.txt.gz · Última modificación: 2024/12/03 19:53 por admin