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/11/26 00:01]
admin [Mini-proyecto]
clase:iabd:pia:1eval:tema04 [2025/03/22 13:06] (actual)
admin [Personalización]
Línea 261: Línea 261:
 figure.suptitle("Título de la figura") figure.suptitle("Título de la figura")
  
-subfigure_a,subfigure_b = figure.subfigures(nrows=2, ncols=1)+subfigures = figure.subfigures(nrows=2, ncols=1).reshape(-1) 
 +subfigure_a=subfigures[0] 
 +subfigure_b=subfigures[1]
  
 subfigure_a.suptitle("Titulo de la SubFigura A") subfigure_a.suptitle("Titulo de la SubFigura A")
Línea 841: 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 1095: 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 1909: Línea 1996:
 Para poder mostrar el Coeficiente de determinación o R² deberemos modificar el método ''model.compile'' de la siguiente forma: Para poder mostrar el Coeficiente de determinación o R² deberemos modificar el método ''model.compile'' de la siguiente forma:
 <sxh python> <sxh python>
-model.compile(loss='mean_squared_error',metrics=["r2_score"])+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|}}
Línea 1941: Línea 2041:
      Red                                                              Entrenamiento    Entrenamiento    Entrenamiento    Validación    Validación      Red                                                              Entrenamiento    Entrenamiento    Entrenamiento    Validación    Validación
 --------  --------------------------------  --------  ------------  ---------------  ---------------  ---------------  ------------  ------------ --------  --------------------------------  --------  ------------  ---------------  ---------------  ---------------  ------------  ------------
-        [20, 1]                                300  relu                 25.9903        0.700825            13.7227       24.1596     0.670553 +        [20, 1]                                300  relu                 25.9903        0.700825            13.2181       24.1596     0.670553 
-        [20, 1]                                300  selu                 23.1742        0.733241            12.6353       21.8751     0.701705 +        [20, 1]                                300  selu                 23.1742        0.733241            12.6924       21.8751     0.701705 
-        [20, 1]                                300  tanh                 69.747         0.197143            12.7433       61.0294     0.167786 +        [20, 1]                                300  tanh                 69.747         0.197143            12.3714       61.0294     0.167786 
-        [20, 10, 1]                            300  relu                 24.5118        0.717845            13.0356       26.5133     0.638458 +        [20, 10, 1]                            300  relu                 24.5118        0.717845            12.8602       26.5133     0.638458 
-        [20, 10, 1]                            300  selu                 23.5015        0.729474            12.8729       23.3333     0.681821 +        [20, 10, 1]                            300  selu                 23.5015        0.729474            12.4664       23.3333     0.681821 
-        [20, 10, 1]                            300  tanh                 59.5199        0.314867            13.1342       51.4849     0.297938 +        [20, 10, 1]                            300  tanh                 59.5199        0.314867            12.466        51.4849     0.297938 
-        [20, 30, 10, 1]                        300  relu                 13.5217        0.844352            13.9603       17.7428     0.758054 +        [20, 30, 10, 1]                        300  relu                 13.5217        0.844352            13.0145       17.7428     0.758054 
-        [20, 30, 10, 1]                        300  selu                 11.4235        0.868504            13.4394       16.8747     0.769892 +        [20, 30, 10, 1]                        300  selu                 11.4235        0.868504            12.895        16.8747     0.769892 
-        [20, 30, 10, 1]                        300  tanh                 59.6715        0.313121            13.5229       50.0339     0.317724 +        [20, 30, 10, 1]                        300  tanh                 59.6715        0.313121            12.7907       50.0339     0.317724 
-      10  [20, 40, 80, 40, 20, 1]                300  relu                 11.639         0.866023            14.4907       15.3683     0.790433 +      10  [20, 40, 80, 40, 20, 1]                300  relu                 11.639         0.866023            13.8727       15.3683     0.790433 
-      11  [20, 40, 80, 40, 20, 1]                300  selu                 19.7779        0.772336            13.6758       26.7263     0.635553 +      11  [20, 40, 80, 40, 20, 1]                300  selu                 19.7779        0.772336            13.6373       26.7263     0.635553 
-      12  [20, 40, 80, 40, 20, 1]                300  tanh                 55.5066        0.361063            13.6786       50.5201     0.311094 +      12  [20, 40, 80, 40, 20, 1]                300  tanh                 55.5066        0.361063            13.6796       50.5201     0.311094 
-      13  [20, 40, 80, 160, 80, 40, 20, 1]       300  relu                 22.3828        0.742352            14.9841       27.3831     0.626596 +      13  [20, 40, 80, 160, 80, 40, 20, 1]       300  relu                 22.3828        0.742352            13.9058       27.3831     0.626596 
-      14  [20, 40, 80, 160, 80, 40, 20, 1]       300  selu                  6.17364       0.928935            14.297        17.3759     0.763057 +      14  [20, 40, 80, 160, 80, 40, 20, 1]       300  selu                  6.17364       0.928935            14.0711       17.3759     0.763057 
-      15  [20, 40, 80, 160, 80, 40, 20, 1]       300  tanh                 86.8736       -2.5034e-06          14.6177       75.0856    -0.0238887+      15  [20, 40, 80, 160, 80, 40, 20, 1]       300  tanh                 86.8736       -2.5034e-06          14.0382       75.0856    -0.0238888
  
 </sxh> </sxh>
Línea 1964: Línea 2064:
   * Compara los resultados con los del tema anterior ¿Porque hay esas variaciones?   * Compara los resultados con los del tema anterior ¿Porque hay esas variaciones?
  
-=== Paso 14 ===+=== Paso 15 ===
 Repite el ejercicio anterior pero ahora solo para 10 épocas y muestra solo la pérdida en entrenamiento y validación. Repite el ejercicio anterior pero ahora solo para 10 épocas y muestra solo la pérdida en entrenamiento y validación.
  
clase/iabd/pia/1eval/tema04.1732575671.txt.gz · Última modificación: 2024/11/26 00:01 por admin