Herramientas de usuario

Herramientas del sitio


clase:iabd:pia:1eval:tema03

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:tema03 [2024/11/24 20:53]
admin [Mini-proyecto]
clase:iabd:pia:1eval:tema03 [2024/11/27 10:24] (actual)
admin [Mini-proyecto]
Línea 1622: Línea 1622:
   * Modifica la función de activación de la última capa para que sea la función de activación ''linear''.   * Modifica la función de activación de la última capa para que sea la función de activación ''linear''.
   * Añade un parámetros llamado ''epochs'' que sea el número de épocas a antrenar   * Añade un parámetros llamado ''epochs'' que sea el número de épocas a antrenar
-  * Crea una red neuronal y entrenala con la siguientes capas ''5,10,15,10,1''5000 épocas+  * Crea una red neuronal y entrenala con
 +    * Capas: 5,10,15,10,1 
 +    * Épocas: 5000
  
 <note tip> <note tip>
Línea 1638: Línea 1640:
  
 Para ello: Para ello:
-  * Crea un array con los datos de entrada a predecir ''[ 2.01666708, 4.79734083, 9.23784581, 14.11529384 ]'' de forma que sea una columna y llámalo ''x_paso3'' +  * Crea un array con los datos de entrada a predecir ''[ 2.01666708, 4.79734083, 9.23784581, 14.11529384 ]'' de forma que sea **una columna** y llámalo ''x_paso3'' 
-  * Crea un array con los datos de salida verdaderos ''[ 56.18031474, 47.18848199, 57.68974048, 43.70348368]'' de forma que sea una columna  y llámalo ''y_true_paso3''+  * Crea un array con los datos de salida verdaderos ''[ 56.18031474, 47.18848199, 57.68974048, 43.70348368]'' de forma que sea **una columna**  y llámalo ''y_true_paso3''
   * Usando el modelo predice las salidas predichas y llámalo ''y_pred_paso3''   * Usando el modelo predice las salidas predichas y llámalo ''y_pred_paso3''
-  * Resta el valor de ''y_true_paso3'' a ''y_pred_paso3'' y elévalo al cuadrado y llámalo ''error_paso3''  +  * Resta el valor de ''y_true_paso3'' a ''y_pred_paso3'' y elévalo al cuadrado y llámalo ''error_paso3'' : $|y\_true_{i} - y\_pred_i |^2$
   * Une los 4 arrays es una matriz donde cada columna sea cada uno de los arrays y llámala ''resultado_paso3''   * Une los 4 arrays es una matriz donde cada columna sea cada uno de los arrays y llámala ''resultado_paso3''
   * Muestra el array con la función ''tabulate''   * Muestra el array con la función ''tabulate''
Línea 1721: Línea 1723:
      Red                                                                                     Entrenamiento      Red                                                                                     Entrenamiento
 --------  --------------------------------  --------  ------------  --------  -----------  --------------- --------  --------------------------------  --------  ------------  --------  -----------  ---------------
-        [5, 10, 3, 10, 1]                     5000  relu           718.298   0.748316            3.68299 +        [5, 10, 30, 10, 1]                    5000  relu           699.522   0.754894            6.10154 
-        [5, 10, 3, 10, 1]                     5000  selu           717.653   0.748541            3.70125 +        [5, 10, 30, 10, 1]                    5000  selu           566.064   0.801657            6.25237 
-        [5, 10, 3, 10, 1]                     5000  tanh          5941.53   -1.08185             3.69698 +        [5, 10, 30, 10, 1]                    5000  tanh          5790.5    -1.02893             6.10966 
-        [20, 40, 80, 40, 20, 1]               5000  relu           539.139   0.811091            3.99102 +        [20, 40, 80, 40, 20, 1]               5000  relu           564.339   0.802261            6.27882 
-        [20, 40, 80, 40, 20, 1]               5000  selu           182.719   0.935977            4.02509 +        [20, 40, 80, 40, 20, 1]               5000  selu           195.545   0.931483            6.34035 
-        [20, 40, 80, 40, 20, 1]               5000  tanh          2883.8    -0.0104537           4.13618 +        [20, 40, 80, 40, 20, 1]               5000  tanh          2869.38   -0.00540068          6.36284 
-        [20, 40, 80, 160, 80, 40, 20, 1]      5000  relu           396.495   0.861072            4.54338 +        [20, 40, 80, 160, 80, 40, 20, 1]      5000  relu           530.207   0.814221            6.67132 
-        [20, 40, 80, 160, 80, 40, 20, 1]      5000  selu           172.284   0.939634            4.61465 +        [20, 40, 80, 160, 80, 40, 20, 1]      5000  selu           141.506   0.950418            6.8306 
-        [20, 40, 80, 160, 80, 40, 20, 1]      5000  tanh          2866.53   -0.00440395          4.48618 +        [20, 40, 80, 160, 80, 40, 20, 1]      5000  tanh          2870.34   -0.00573854          6.91749
- +
 </sxh> </sxh>
  
Línea 1763: Línea 1763:
      Red                                                              Entrenamiento    Entrenamiento    Entrenamiento    Validación    Validación      Red                                                              Entrenamiento    Entrenamiento    Entrenamiento    Validación    Validación
 --------  --------------------------------  --------  ------------  ---------------  ---------------  ---------------  ------------  ------------ --------  --------------------------------  --------  ------------  ---------------  ---------------  ---------------  ------------  ------------
-        [5, 10, 3, 10, 1]                     5000  relu                  718.298       0.748316            3.76478       862.985     0.567329 +        [5, 10, 30, 10, 1]                    5000  relu                  699.522       0.754894            6.16381       945.903     0.525757 
-        [5, 10, 3, 10, 1]                     5000  selu                  717.653       0.748541            3.72554       798.624     0.599598 +        [5, 10, 30, 10, 1]                    5000  selu                  566.064       0.801657            6.07553       844.042     0.576827 
-        [5, 10, 3, 10, 1]                     5000  tanh                 5941.53       -1.08185             3.7379       3753.3      -0.881774 +        [5, 10, 30, 10, 1]                    5000  tanh                 5790.5        -1.02893             6.0547       3639.78     -0.82486 
-        [20, 40, 80, 40, 20, 1]               5000  relu                  539.139       0.811091            3.98185       846.146     0.575772 +        [20, 40, 80, 40, 20, 1]               5000  relu                  564.339       0.802261            6.17346      1008.44      0.494402 
-        [20, 40, 80, 40, 20, 1]               5000  selu                  182.719       0.935977            3.9772       1051.1       0.473016 +        [20, 40, 80, 40, 20, 1]               5000  selu                  195.545       0.931483            6.49106       865.301     0.566168 
-        [20, 40, 80, 40, 20, 1]               5000  tanh                 2883.8        -0.0104537           4.30846      2061.24     -0.0334357 +        [20, 40, 80, 40, 20, 1]               5000  tanh                 2869.38       -0.00540068          6.28845      2088.69     -0.0471974 
-        [20, 40, 80, 160, 80, 40, 20, 1]      5000  relu                  396.495       0.861072            4.54245       990.747     0.503274 +        [20, 40, 80, 160, 80, 40, 20, 1]      5000  relu                  530.207       0.814221            6.70275       937.015     0.530213 
-        [20, 40, 80, 160, 80, 40, 20, 1]      5000  selu                  172.284       0.939634            4.68059       898.996     0.549275 +        [20, 40, 80, 160, 80, 40, 20, 1]      5000  selu                  141.506       0.950418            6.77586       998.083     0.499596 
-        [20, 40, 80, 160, 80, 40, 20, 1]      5000  tanh                 2866.53       -0.00440395          4.64644      2096.22     -0.0509744+        [20, 40, 80, 160, 80, 40, 20, 1]      5000  tanh                 2870.34       -0.00573854          6.77296      2086.36     -0.0460281
  
 </sxh> </sxh>
Línea 1785: Línea 1785:
 Ahora vamos a hacer otro mini proyecto usando como base todo el código que hemos creado. Ahora vamos a hacer otro mini proyecto usando como base todo el código que hemos creado.
  
-El problema a resolver es averiguar el precio (en miles de dolaresde una casa en la ciudad de Boston. Este es un clásico problema de Machine Learning. Las características (features o //X//) del problema son:+El problema a resolver es averiguar el precio,en miles de dolaresde una casa en la ciudad de Boston (target o //Y//). Este es un clásico problema de Machine Learning. Las características (features o //X//) del problema son:
  
   - **Criminalidad per cápita**: Representa la tasa de criminalidad por persona en la ciudad. Un valor más alto indica una mayor tasa de criminalidad.   - **Criminalidad per cápita**: Representa la tasa de criminalidad por persona en la ciudad. Un valor más alto indica una mayor tasa de criminalidad.
Línea 1800: Línea 1800:
   - **Proporción de población negra**: Esta variable mide la proporción de la población de raza negra en la zona. Es calculada como 1000 * (proporción de población negra)^2.   - **Proporción de población negra**: Esta variable mide la proporción de la población de raza negra en la zona. Es calculada como 1000 * (proporción de población negra)^2.
   - **Porcentaje de población de bajo estatus socioeconómico**: Representa el porcentaje de la población en la zona con un bajo nivel socioeconómico. Valores más altos indican áreas más desfavorecidas económicamente.    - **Porcentaje de población de bajo estatus socioeconómico**: Representa el porcentaje de la población en la zona con un bajo nivel socioeconómico. Valores más altos indican áreas más desfavorecidas económicamente.
 +
 Con el código que has creado , busca la mejor red neuronal para que dado las características de un casa prediga el precio en miles de dólares de dicha casa Con el código que has creado , busca la mejor red neuronal para que dado las características de un casa prediga el precio en miles de dólares de dicha casa
 +
 Los datos se obtienen de la siguiente forma: Los datos se obtienen de la siguiente forma:
  
Línea 1817: Línea 1819:
 </sxh> </sxh>
  
 +Las redes a probar son:
 +<sxh python>
 +redes_neuronales=[
 +    [[20,1],"relu"],
 +    [[20,1],"selu"],
 +    [[20,1],"tanh"],       
 +    [[20,10,1],"relu"],
 +    [[20,10,1],"selu"],
 +    [[20,10,1],"tanh"],        
 +    [[20,30,10,1],"relu"],
 +    [[20,30,10,1],"selu"],
 +    [[20,30,10,1],"tanh"],  
 +    [[20,40,80,40,20,1],"relu"],
 +    [[20,40,80,40,20,1],"selu"],
 +    [[20,40,80,40,20,1],"tanh"],
 +    [[20,40,80,160,80,40,20,1],"relu"],
 +    [[20,40,80,160,80,40,20,1],"selu"],
 +    [[20,40,80,160,80,40,20,1],"tanh"                              
 +]  
 +</sxh>
 +
 +
 +<sxh base>
 +  Nombre  Capas                               Épocas  Activación                MSE               R²           Tiempo           MSE            R²
 +     Red                                                              Entrenamiento    Entrenamiento    Entrenamiento    Validación    Validación
 +--------  --------------------------------  --------  ------------  ---------------  ---------------  ---------------  ------------  ------------
 +        [20, 1]                               1000  relu                 25.9839       0.700899             6.85148       26.1929     0.642826
 +        [20, 1]                               1000  selu                 15.7143       0.819112             6.9331        19.6104     0.732587
 +        [20, 1]                               1000  tanh                 52.4399       0.396364             7.04929       48.1765     0.343052
 +        [20, 10, 1]                           1000  relu                 13.5203       0.844368             7.39035       18.5331     0.747278
 +        [20, 10, 1]                           1000  selu                 15.3826       0.822931             7.63935       20.3983     0.721844
 +        [20, 10, 1]                           1000  tanh                 27.3344       0.685353             7.49861       32.55       0.556139
 +        [20, 30, 10, 1]                       1000  relu                  9.52126      0.890401             7.80591       14.8094     0.798054
 +        [20, 30, 10, 1]                       1000  selu                  9.10227      0.895224             7.62227       14.83       0.797774
 +        [20, 30, 10, 1]                       1000  tanh                 26.3255       0.696967             7.60604       29.6008     0.596355
 +      10  [20, 40, 80, 40, 20, 1]               1000  relu                  4.13976      0.952347             8.31231       22.1935     0.697363
 +      11  [20, 40, 80, 40, 20, 1]               1000  selu                  2.37718      0.972636             8.40947       17.5333     0.760911
 +      12  [20, 40, 80, 40, 20, 1]               1000  tanh                 17.7842       0.795286             8.34862       27.3635     0.626864
 +      13  [20, 40, 80, 160, 80, 40, 20, 1]      1000  relu                  3.40859      0.960764             9.40943       24.3886     0.66743
 +      14  [20, 40, 80, 160, 80, 40, 20, 1]      1000  selu                  2.96527      0.965867             9.57778       21.5213     0.706529
 +      15  [20, 40, 80, 160, 80, 40, 20, 1]      1000  tanh                 86.8838      -0.000119567          9.52437       74.7763    -0.0196708
 +
 +</sxh>
  
 <note important>**Por último analiza si este dataset sería ético usarlo en una aplicación real.**</note> <note important>**Por último analiza si este dataset sería ético usarlo en una aplicación real.**</note>
clase/iabd/pia/1eval/tema03.1732477993.txt.gz · Última modificación: 2024/11/24 20:53 por admin