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 [2023/11/23 16:31]
admin [Personalización]
clase:iabd:pia:1eval:tema04 [2024/04/07 10:46] (actual)
admin [Figura]
Línea 290: Línea 290:
 <sxh python> <sxh python>
 class Figura: class Figura:
-  def __init__(self,ncols,naxes,axes_width=6, height_axes=None):+  def __init__(self,ncols,naxes,axes_width_inches=6, axes_height_inches=None):
     self.ncols=ncols     self.ncols=ncols
     self.num_axes=naxes     self.num_axes=naxes
     self.nrows=math.ceil(naxes/ncols)     self.nrows=math.ceil(naxes/ncols)
-    if height_axes==None: +    if axes_height_inches==None: 
-      height_axes=axes_width*0.86 +      axes_height_inches=axes_width_inches*0.86 
- +  
-    self.figure, self.arr_axes = plt.subplots(ncols=self.ncols, nrows=self.nrows, figsize=(axes_width*self.ncols,height_axes*self.nrows),+    self.figure, self.arr_axes = plt.subplots(ncols=self.ncols, nrows=self.nrows, figsize=(self.ncols*axes_width_inches,self.nrows*axes_height_inches),
                         layout="constrained")                         layout="constrained")
 + 
     if isinstance(self.arr_axes, (list, tuple, np.ndarray))==False:     if isinstance(self.arr_axes, (list, tuple, np.ndarray))==False:
       self.arr_axes=np.array([[self.arr_axes]])       self.arr_axes=np.array([[self.arr_axes]])
  
-    for axes in np.array(self.arr_axes).reshape(-1): +  def get_axes(self): 
-      self._visible_axes(axes,False) +        return np.array(self.arr_axes).reshape(-1)
- +
-  def get_figure(self): +
-    return self.figure +
- +
-  def get_axes(self,index)+
-    col=index % self.ncols +
-    row=math.ceil((index+1)/self.ncols)-1 +
-    axes=self.arr_axes[row,col] +
-    self._visible_axes(axes,True) +
-    return axes +
- +
-  def _visible_axes(self,axes,visible): +
-    axes.get_xaxis().set_visible(visible) +
-    axes.get_yaxis().set_visible(visible) +
-    axes.spines['right'].set_visible(visible) +
-    axes.spines['top'].set_visible(visible) +
-    axes.spines['left'].set_visible(visible) +
-    axes.spines['bottom'].set_visible(visible)+
 </sxh> </sxh>
  
Línea 328: Línea 310:
 El uso de la clase es la siguiente.  El uso de la clase es la siguiente. 
  
-Imagina que quieres mostrar 10 ''Axes'' en 3 columnas y luego obtiene cada uno de los axes. +Imagina que quieres mostrar 12 ''Axes'' en 3 columnas y luego obtener cada uno de los axes. 
  
 <sxh python> <sxh python>
-figura=Figura(ncols=3,naxes=10)+figura=Figura(ncols=3,naxes=12)
  
-for index in range(0,10): +for axes in figura.get_axes(): 
-  axes=figura.get_axes(index)+  axes.plot()
 </sxh> </sxh>
  
  
-La ventaja de esta clase es que no te tienes que preocupar del número de filas que va a haber.+La ventaja de esta clase es que no te tienes que preocupar del número de filas que va a haber. Que en este caso serán 4
 ===== Dibujando en 2D ===== ===== Dibujando en 2D =====
 Ahora veamos una serie de métodos para dibujar en un ''Axes'' o gráfica en 2 dimensiones Ahora veamos una serie de métodos para dibujar en un ''Axes'' o gráfica en 2 dimensiones
Línea 1541: Línea 1523:
 {{ :clase:iabd:pia:1eval:tema_4_ejercicio_23_c.png?direct |}} {{ :clase:iabd:pia:1eval:tema_4_ejercicio_23_c.png?direct |}}
  
 +
 +==== Ejercicio 23.D ====
 +Repite el ejercicio anterior pero ahora divide los datos en entrenamiento y validación.
 +
 +Para ello usa la función ''train_test_split'' de sklearn
 +
 +<sxh python>
 +from sklearn.model_selection import train_test_split
 + 
 +x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=42)
 +</sxh>
 +
 +El parámetro ''test_size'' indica el % de datos (en tpu) que serán para el test.
 +
 +Ahora deberás indicar en el método ''fit'' que ahora hay datos de entrenamiento y de test
 +
 +<sxh python>
 +history=model.fit(x_train,y_train,validation_data=(x_test,y_test),epochs=epochs,verbose=False)
 +</sxh>
 +
 +Para acabar ahora están las métricas de:
 +  * ''loss'' : La pérdida en entrenamiento
 +  * ''val_loss'' : La pérdida en validación
 +
 +Al mostrar la gráfica, muestra tanto ''loss'' como ''val_loss'' del mismo color pero que la línea de ''val_loss'' sea continua y la línea de ''val_loss'' sea puenteada
 +
 +{{:clase:iabd:pia:1eval:tema_4_ejercicio_23_d.png?direct|}}
  
  
clase/iabd/pia/1eval/tema04.1700753461.txt.gz · Última modificación: 2023/11/23 16:31 por admin