Herramientas de usuario

Herramientas del sitio


clase:iabd:pia:1eval:tema05

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:tema05 [2022/01/26 15:57]
admin [Estadística]
clase:iabd:pia:1eval:tema05 [2022/02/06 21:02] (actual)
admin [Ejercicios]
Línea 84: Línea 84:
 </sxh> </sxh>
  
-  * Cargar los datos des un fichero de texto llamado "datos.csv" cuyo separador es una coma.+  * Cargar los datos desde un fichero de texto llamado "datos.csv" cuyo separador es una coma.
  
 <sxh python> <sxh python>
Línea 90: Línea 90:
 </sxh> </sxh>
  
 +
 +<note>
 +Si al guardar los datos **NO** se añadió el parámetro ''index=False'' ,al leer el fichero se deberá añadir el parámetro ''index_col=0''
 +<sxh python>
 +df.to_csv("datos.csv")
 +df=pd.read_csv("datos.csv",index_col=0)
 +</sxh>
 +
 +</note>
  
   * Cargar los datos desde una base de datos relacional   * Cargar los datos desde una base de datos relacional
Línea 189: Línea 198:
 <sxh base> <sxh base>
        capacidad      precio        capacidad      precio
-count  31.000000   31.000000 +count  28.000000   28.000000 
-mean    3.760000  152.741935 +mean    4.092143  157.428571 
-std     5.049022  153.423807+std     5.209273  158.877178
 min     0.120000   22.000000 min     0.120000   22.000000
-25%     0.506000   50.500000 +25%     0.512000   50.750000 
-50%     1.000000   88.000000 +50%     1.750000   89.500000 
-75%     4.500000  185.000000+75%     5.250000  184.000000
 max    18.000000  612.000000 max    18.000000  612.000000
 </sxh> </sxh>
Línea 206: Línea 215:
  
 <sxh base> <sxh base>
-150.7+157.42
 </sxh> </sxh>
  
Línea 215: Línea 224:
 </sxh> </sxh>
  
-<sxh base> +<sxh base>158.87</sxh>
-155.617601610597 +
-</sxh>+
  
-   * Suma de una columna  +  * Suma de una columna  
      
- <sxh python>  +<sxh python>  
- df.precio.sum()  +df.precio.sum()  
- </sxh>  +</sxh>  
-   +   
- <sxh base>   +<sxh base>4408.0</sxh>  
- 4521  +   
- </sxh>  +  * Máximo de una columna  
-   +   
-   * Máximo de una columna  +<sxh python>  
-   +df.precio.max()  
- <sxh python>  +</sxh>  
- df.precio.max()  +   
- </sxh>  +<sxh base>612.0</sxh>  
-   +   
- <sxh base>   +  * Mínimo de una columna  
- 612   +   
- </sxh>  +<sxh python>  
-   +df.precio.min()  
-   * Mínimo de una columna  +</sxh>  
-   +   
- <sxh python>  +<sxh base>22.0</sxh>
- df.precio.min()  +
- </sxh>  +
-   +
- <sxh base>   +
- 22   +
- </sxh>+
  
    * Correlación entre columnas    * Correlación entre columnas
Línea 257: Línea 258:
 <sxh base> <sxh base>
            capacidad    precio            capacidad    precio
-capacidad   1.000000  0.949407 +capacidad   1.000000  0.962542 
-precio      0.949407  1.000000+precio      0.962542  1.000000
 </sxh> </sxh>
  
Línea 597: Línea 598:
   * ¿Como se borrarían aquellas filas que tienen algún datos que es null?   * ¿Como se borrarían aquellas filas que tienen algún datos que es null?
  
 +==== Ejercicio 1.E ====
 +Siguiendo con el DataFrame anterior y usando [[https://seaborn.pydata.org/|Seaborn]]:
 +  * Muestra un scatter plot del ancho del pétalo en el eje X y el ancho del sépalo en el eje Y según el tipo de flor.
 +  * Muestra el gráfico KDE de la distribución del largo del pétalo y del largo del sépalo.
 +  * Muestra el gráfico KDE de la distribución del largo del pétalo y del largo del sépalo pero separado por el tipo de flor.
 +  * Muestra un //pairplot//
 +
 +==== Ejercicio 2.A ====
 +Descarga el siguiente fichero {{ :clase:iabd:pia:1eval:tiempos_red_neuronal.csv |}} que contiene los segundos que ha tardado en entrenarse una red neuronal según el nº de épocas y la función de activación usada
 +
 +  * Abre el fichero con un editor de texto y comprueba que formato tiene
 +  * Carga el fichero con pandas
 +  * Muestra las columnas que tiene
 +  * Renombra la columna ''talla'' a ''epoca''
 +  * Muestra cuantas filas hay
 +  * Muestra cuantos valores son null o NaN en cada columna
 +  * Muestra el % de valores a null o NaN en cada columna
 +  * Borra las filas que tengan algún valor a null o NaN
 +  * Muestra las estadísticas de cada columna. ¿Podrías borrar alguna? ¿Explica porqué? En caso afirmativo borra la columna
 +  * Indica que funciones de activación se han usado
 +  * Indica hasta cuantas épocas se ha entrenado la red
 +  * Indica la función de activación que ha tenido el mayor tiempo en la última época
 +
 +==== Ejercicio 2.B ====
 +Siguiendo con el DataFrame anterior:
 +
 +  * Muestra un scatter plot
 +    * Eje X:Época
 +    * Eje Y:Tiempo
 +    * Separa los datos por colores según la función de activación
 +    * Añade un título al gráfico y a los 2 ejes.
 +
 +¿Ves algo raro en los datos?
 +
 +{{:clase:iabd:pia:1eval:tiempos_red_neuronal.csv.scatter.png?direct|}}
 +
 +==== Ejercicio 2.C ====
 +Siguiendo con el DataFrame anterior:
 +
 +  * Haz una regresión lineal de los datos para cada tipo de activación.
 +  * Haz un gráfico que:
 +    * Muestre la recta de la regresión de cada función de activación.
 +    * En la etiqueta de cada función de activación se muestre también el valor de R² para cada uno de ellos.
 +
 +{{:clase:iabd:pia:1eval:tiempos_red_neuronal.csv.regresion.png?direct|}}
 +
 +
 +==== Ejercicio 2.D ====
 +Siguiendo con el DataFrame anterior:
 +
 +La gráfica no deja claro cda una de las rectas. Para mejorarlo se podría anotar al final de cada recta el nombre de la función de activación tal y como se muestra en el siguiente gráfico:
 +
 +{{:clase:iabd:pia:1eval:tiempos_red_neuronal.csv.regresion_anotado.png?direct|}}
 +
 +Para poner texto en una gráfica se usa el método [[https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.annotate.html|annotate]] y la librería [[https://github.com/Phlya/adjustText|adjustText - automatic label placement for matplotlib]]
 +
 +
 +==== Ejercicio 3.A ====
 +Usando la función ''plot_metrics'' muestra las gráficas de las pérdidas por épocas de las siguientes redes neuronales para el DataFrame de las flores:
 +
 +^  Nº Neuronas en cada capa  ^
 +|  2,4,2, |
 +|  4,8,4, |
 +|  8,16,8, |
 +|  4,8,4,2, |
 +|  8,16,8,4, |
 +|  16,32,16,8, |
 +|  32,64,32,8, |
 +|  64,128,64,8, |
 +|  8,16,32,64,32,16,8, |
 +
 +Además:
 +  * Deberás mostrar los 9 subplots en la  disposición de 9x1 (9 filas y 1 columna)
 +  * El título de cada subplot será el nº de neuronas por capa
 +
 +
 +
 +==== Ejercicio 3.B ====
 +Siguiendo con el DataFrame anterior:
 +
 +  * Para las 4 columnas de las características de las flores y el tipo de flor, crea 5 nuevas columnas que se llamen igual pero con el prefijo ''normalizado_''. Esas 5 nuevas columnas tendrán los valores según la fórmula:
 +
 +$$
 +valor = \frac {X-min}{max-min}
 +$$
 +
 +  * Para las 4 columnas de las características de las flores y el tipo de flor, crea 5 nuevas columnas que se llamen igual pero con el prefijo ''standarizado_''. Esas 5 nuevas columnas tendrán los valores según la fórmula:
 +
 +$$
 +valor = \frac {X-media}{desviación}
 +$$
 +
 +
 +
 +==== Ejercicio 3.C ====
 +Usando la función ''plot_metrics'' muestra las gráficas de las pérdidas por épocas de las siguientes redes neuronales para el DataFrame de las flores:
 +
 +^  Nº Neuronas en cada capa  ^
 +|  2,4,2, |
 +|  4,8,4, |
 +|  8,16,8, |
 +|  4,8,4,2, |
 +|  8,16,8,4, |
 +|  16,32,16,8, |
 +|  32,64,32,8, |
 +|  64,128,64,8, |
 +|  8,16,32,64,32,16,8, |
 +
 +Pero para cada tipo de red ,deberás entrenarla 3 veces distintas y obtener resultado distintos con:
 +    * Los datos originales
 +    * Los datos normalizados
 +    * Los datos estandarizados
 +
 +Además:
 +  * Deberás mostrar los 9 subplots en la  disposición de 9x3 (9 filas y 3 columnas)
 +    * En la primera columna se mostrarán el resultado de entrenar la red con los datos originales
 +    * En la segunda columna se mostrarán el resultado de entrenar la red con los datos normalizados
 +    * En la tercera columna se mostrarán el resultado de entrenar la red con los datos estandarizados
 +  * El título de cada subplot:
 +    * En la primera columna se mostrarán nº de neuronas por capa y el texto "originales"
 +    * En la segunda columna se mostrarán nº de neuronas por capa y el texto "normalizados"
 +    * En la tercera columna se mostrarán nº de neuronas por capa y el texto "estandarizados"
 +
 +¿Hay diferencias al usar los datos normalizados o estandarizado? ¿Cual es mejor y peor? ¿Las ventajas son las mismas independientemente de la red?
  
  
  
clase/iabd/pia/1eval/tema05.1643209040.txt.gz · Última modificación: 2022/01/26 15:57 por admin