Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
clase:iabd:pia:1eval:tema01 [2021/09/19 18:02] admin |
clase:iabd:pia:1eval:tema01 [2024/11/03 19:17] (actual) admin [Gráficas] |
||
---|---|---|---|
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 139: | Línea 140: | ||
- | print(model.predict([[4.9, | + | print(model.predict(np.array([[4.9, |
- | print(model.predict([[6.3, | + | print(model.predict(np.array([[6.3, |
</ | </ | ||
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) | ||
</ | </ | ||
Línea 247: | Línea 249: | ||
<sxh python> | <sxh python> | ||
- | print(model.predict([[4.9, | + | print(model.predict(np.array([[4.9, |
- | print(model.predict([[6.3, | + | print(model.predict(np.array([[6.3, |
</ | </ | ||
Línea 336: | Línea 338: | ||
Lo que hay que hacer es comparar los datos de las 2 gráficas para si son coherentes entre ellas. Y obviamente lo son | Lo que hay que hacer es comparar los datos de las 2 gráficas para si son coherentes entre ellas. Y obviamente lo son | ||
+ | |||
+ | ==== Las dificultades de la IA ==== | ||
+ | Al entrenar una IA lo dificil es cuando se encuentra con cosas que no habías previsto. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | |||
+ | |||
+ | |||
===== Ejercicios ===== | ===== Ejercicios ===== | ||
Línea 350: | Línea 361: | ||
==== Ejercicio 2 ==== | ==== Ejercicio 2 ==== | ||
- | Vamos a ver como se comportan las predicciones haciendo distintos cambios en nuestra | + | Modifica ahora la red neuronal |
- | Los cambios son los siguientes: | + | |
- | * No random seed | + | * La 2º capa oculta tenga 6 neuronas |
- | Deberás eliminar las siguientes líneas: | + | * La 3º capa oculta tenga 4 neuronas |
- | <sxh python> | + | * La 4º capa seguirá teniendo 1 neurona |
- | np.random.seed(5) | + | |
- | tf.random.set_seed(5) | + | |
- | </ | + | |
- | + | ||
- | + | ||
- | * **2 épocas** | + | |
- | + | ||
- | En el método '' | + | |
- | + | ||
- | + | ||
- | * **Red neuronal pequeña** | + | |
- | + | ||
- | Modifica el código python de la red neuronal original de forma que: | + | |
- | | + | |
- | * 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:// | Usando la web [[http:// | ||
- | Ahora muestra los resultados | + | Ahora muestra los resultados |
- | | **Largo Sépalo** | + | | **Largo Sépalo** |
- | | 5.4 | + | | 5.4 |
- | | 5.5 | + | | 5.5 |
Línea 398: | Línea 393: | ||
flower_type=iris.target[: | flower_type=iris.target[: | ||
</ | </ | ||
+ | |||
+ | Entrena la red con los nuevos datos | ||
Muestra la gráfica con los datos de entrada usando el código: | Muestra la gráfica con los datos de entrada usando el código: | ||
Línea 473: | Línea 470: | ||
{{ : | {{ : | ||
+ | Y los histogramas de todos los datos son los siguientes: | ||
- | Deberás hacer 3 redes neuronales distintas ( llamadas **A**, **B** y **C**) y comprobar las predicciones con 4 conjuntos de datos distintos | + | {{ : |
- | | Datos | Resultado red neuronal **A** | Resultado red neuronal **B** | Resultado red neuronal **C** | ** Resultado Real ** | | + | Podemos ven en los histogramas que no hay una forma fácil de saber si una célula es o no cancerígena. |
- | | | + | |
- | | | + | |
- | | | + | |
- | | | + | |
- | Para ver los datos junto a su preducción puedes usar las siguientes líneas: | + | <note important> |
- | <sxh python> | + | 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 |
- | np.set_printoptions(threshold=np.inf) | + | </note> |
- | np.set_printoptions(suppress=True) | + | |
- | print(np.column_stack((x,y))) | + | Imprime el valor de la fila 56 tanto de la '' |
+ | |||
+ | < | ||
+ | #Para que los datos no se muestren con notación científica | ||
+ | np.set_printoptions(suppress=True) | ||
+ | |||
+ | print(x[56],y[56]) | ||
</ | </ | ||
- | Y mostrará algo simular a ésto: | + | Ahora muestra los valores de la '' |
- | <sxh base> | + | |
- | [[ 17.99 | + | |
- | 0.2776 | + | Crea una red neuronal en las que en cada capa tenga los siguientes números de neuronas: |
- | 1.095 0.9053 | + | |
- | 0.04904 | + | | **Nº Capa** |
- | | + | | |
- | 0.6656 | + | | |
- | 0. ] | + | | |
- | [ 20.57 17.77 | + | | |
- | 0.07864 | + | | |
- | 0.5435 | + | | |
- | 0.01308 | + | | |
- | | + | |
- | 0.1866 | + | |
- | 0. ] | + | Rellena la siguiente tabla y muestrala |
- | | + | |
- | [ 20.6 29.33 | + | | **Fila Datos** |
- | 0.277 0.3514 | + | | |
- | 0.726 | + | | |
- | 0.06158 | + | |
- | | + | ¿Es una buena red? |
- | 0.8681 | + | |
- | 0. ] | + | |
- | [ | + | Usa hora una red más pequeña de forma que tenga las siguientes capas: |
- | | + | |
- | 0.3857 | + | | **Nº Capa** |
- | 0.00466 | + | | |
- | 9.456 | + | | |
- | 0.06444 0. 0. 0.2871 | + | | |
- | 1. ]] | + | | |
+ | |||
+ | |||
+ | Rellena la siguiente tabla y muestrala | ||
+ | |||
+ | | **Fila Datos** | ||
+ | | | ||
+ | | | ||
+ | |||
+ | ¿Es una buena red? | ||
+ | |||
+ | ==== Ejercicio | ||
+ | Repite la red pequeña del ejercicio | ||
+ | < | ||
+ | np.random.seed(5) | ||
+ | tf.random.set_seed(5) | ||
+ | random.seed(5) | ||
</ | </ | ||
- | Siendo | + | Rellena |
+ | |||
+ | | **Fila Datos** | ||
+ | | | ||
+ | | | ||
+ | |||
+ | Rellena la siguiente tabla y muestrala con una **red con la semilla 88** | ||
+ | |||
+ | | **Fila Datos** | ||
+ | | | ||
+ | | | ||