Herramientas de usuario

Herramientas del sitio


clase:iabd:pia:1eval:tema01

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
Próxima revisión Ambos lados, revisión siguiente
clase:iabd:pia:1eval:tema01 [2021/09/19 17:36]
admin [Ejercicios]
clase:iabd:pia:1eval:tema01 [2023/10/21 12:32]
admin [Ejercicios]
Línea 113: Línea 113:
 from sklearn.datasets import load_iris from sklearn.datasets import load_iris
 from matplotlib.colors import LightSource from matplotlib.colors import LightSource
 +import random
  
 iris=load_iris() iris=load_iris()
Línea 126: Línea 127:
 np.random.seed(5) np.random.seed(5)
 tf.random.set_seed(5) tf.random.set_seed(5)
 +random.seed(5)  
  
 model=Sequential() model=Sequential()
Línea 183: Línea 184:
 np.random.seed(5) np.random.seed(5)
 tf.random.set_seed(5) tf.random.set_seed(5)
 +random.seed(5)  
 </sxh> </sxh>
  
Línea 345: Línea 347:
 Obtén el resultado de la red neuronal para las siguientes entradas e indica el tipo de flor que ha calcula la red neuronal. Obtén el resultado de la red neuronal para las siguientes entradas e indica el tipo de flor que ha calcula la red neuronal.
  
-|  **Largo Sépalo**  |  **Largo Pétalo**  |  **Resultado red neuroral**  |  ** Tipo de Flor **  |+|  **Largo Sépalo**  |  **Largo Pétalo**  |  **Resultado red neuronal**  |  ** Tipo de Flor(0 o 1)**  |
 |  5.4    1.7      |    | |  5.4    1.7      |    |
 |  5.5    4.0      |    | |  5.5    4.0      |    |
  
 ==== Ejercicio 2 ==== ==== Ejercicio 2 ====
-Vamos a ver como se comportan las predicciones haciendo distintos cambios en nuestra red neuronal+Modifica ahora la red neuronal de forma que:
  
-Los cambios son los siguientes: +    * La 1º  capa oculta tenga 4 neuronas en vez de 6 
-  * No random seed +    * La 2º capa oculta tenga 6 neuronas en vez de 12 
-Deberás eliminar las siguientes líneas: +    * La 3º capa oculta tenga 4 neuronas en vez de 6 
-<sxh python> +    * La 4º capa seguirá teniendo 1 neurona
-np.random.seed(5) +
-tf.random.set_seed(5) +
-</sxh> +
- +
- +
-  * 2 épocas +
-  +
-En el método ''fit'' cambia el número de épocas para que sea solo 2  +
- +
- +
-  * Red neuronal pequeña +
- +
-Modifica el código python de la red neuronal original de forma que: +
-    * La 1º  capa oculta tenga 4 capas en vez de 6 +
-    * La 2º capa oculta tenga 6 capas en vez de 12 +
-    * La 3º capa oculta tenga 4 capas en vez de 6+
  
 Usando la web [[http://alexlenail.me/NN-SVG/index.html]] dibuja la red neuronal que acabas de crear Usando la web [[http://alexlenail.me/NN-SVG/index.html]] dibuja la red neuronal que acabas de crear
  
  
-Ahora muestra los resultados en la siguiente tabla+Ahora muestra los resultados
  
-|  **Largo Sépalo**  |  **Largo Pétalo**  |  **Resultado red neuroral Original**   No random seed  |  2 épocas  |  Red neuronal pequeña   ** Tipo de Flor **  | +|  **Largo Sépalo**  |  **Largo Pétalo**  |  **Resultado red neuronal**  |  ** Tipo de Flor(0 o 1)**  | 
-|  5.4    1.7   |    |    |    |    |    | +|  5.4    1.7      |    | 
-|  5.5    4.0   |    |    |    |    |    |+|  5.5    4.0      |    |
  
  
-==== Ejercicio ====+==== Ejercicio ====
 Usando el código de la red original, modifica las siguientes líneas: Usando el código de la red original, modifica las siguientes líneas:
 <sxh python> <sxh python>
Línea 415: Línea 401:
 Prueba a ver si funciona ahora la red neuronal con el nuevo tipo de flor. Prueba a ver si funciona ahora la red neuronal con el nuevo tipo de flor.
  
-|  **Largo Sépalo**  |  **Largo Pétalo**  |  **Resultado red neuroral**  |  ** Tipo de Flor **  |+|  **Largo Sépalo**  |  **Largo Pétalo**  |  **Resultado red neuronal**  |  ** Tipo de Flor **  |
 |  6.9    5.1      |    | |  6.9    5.1      |    |
 |  7.7    6.1      |    | |  7.7    6.1      |    |
  
  
-==== Ejercicio ====+==== Ejercicio ====
 Piensa al menos 3 problemas que se podrían resolver con una red neuronal similar a la que has usado. Piensa al menos 3 problemas que se podrían resolver con una red neuronal similar a la que has usado.
  
-==== Ejercicio ==== +==== Ejercicio ==== 
-Vamos a ver ahora otro conjunto de datos relativo a la detección de cancer de mama.+Vamos a ver ahora otro conjunto de datos relativo a la detección de cáncer de mama.
  
 Los datos se obtienen de la siguiente forma: Los datos se obtienen de la siguiente forma:
Línea 471: Línea 457:
 Esto datos son relativos a imágenes de núcleos celulares como los siguientes: Esto datos son relativos a imágenes de núcleos celulares como los siguientes:
  
-{{ :clase:iabd:pia:1eval:nucleos_celulares_cancer.png?direct |}}+{{ :clase:iabd:pia:1eval:nucleos_celulares_cancer.png?direct&400 |}}
  
 +Y los histogramas de todos los datos son los siguientes:
  
 +{{ :clase:iabd:pia:1eval:breast_cancer_kde.png?direct |}}
 +
 +Podemos ven en los histogramas que no hay una forma fácil de saber si una célula es o no cancerígena.
 +
 +<note important>
 +En vez de incluir todos los datos en la red neuronal , habría que hacer un Análisis exploratorio de datos (EDA) y por ejemplo eliminar las columnas que están relacionadas.
 +</note>
 +
 +Imprime el valor de la fila 56 tanto de la ''x'' como de la ''y''.
 +
 +<sxh>
 +#Para que los datos no se muestren con notación científica
 +np.set_printoptions(suppress=True) 
 +
 +print(x[56],y[56])
 +</sxh>
 +
 +Ahora indica los valores de la ''x'' y la ''y'' para la fila 204.
 +
 +
 +Crea una red neuronal en las que en cada capa tenga los siguientes números de neuronas:
 +
 +|  **Nº Capa**  |  **Nº Neuronas**  |
 +|   1º  |  30   |
 +|   2º  |  60   |
 +|   3º  |  100   |
 +|   4º  |  60   |
 +|   5º  |  30   |
 +|   6º  |  10   |
 +|   7º  |  1   |
 +
 +Modifica el número de épocas para que sea 400. El número de épocas es el parámetro ''epochs'' en el método ''fit''.
 +
 +Rellena la siguiente tabla y muestrala
 +
 +|  **Fila Datos**  | **Resultado ''verdadero''**  |  **Resultado red neuronal**  |
 +|   56  |        |
 +|   204  |        |
 +
 +¿Es una buena red?
 +
 +
 +Modifica ahora la función de pérdida para que en vez de ser ''mean_squared_error'' sea ''binary_crossentropy''.
 +
 +Vuelve a mostrar la tabla anterior
 +
 +
 +==== Ejercicio 6 ====
 +Repite el ajercicio anterior pero ahora eliminando las lineas de la semilla del los generadores de números aleatorios.
 +
 +<shx>
 +np.random.seed(5)
 +tf.random.set_seed(5)
 +random.seed(5)
 +</sxh>
clase/iabd/pia/1eval/tema01.txt · Última modificación: 2023/10/22 14:28 por admin