Herramientas de usuario

Herramientas del sitio


clase:iabd:pia:2eval:tema08.metricas_regresion

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Próxima revisión
Revisión previa
clase:iabd:pia:2eval:tema08.metricas_regresion [2024/12/23 10:24]
admin creado
clase:iabd:pia:2eval:tema08.metricas_regresion [2025/02/02 22:10] (actual)
admin [Selección de métricas de regresión]
Línea 1: Línea 1:
 ====== 8.a Métricas regresión ====== ====== 8.a Métricas regresión ======
- 
-===== Tipos de métricas de regresión ===== 
 Son las métricas que se usan en problemas de regresión. Son casi las mismas que usábamos como funciones de coste.  Son las métricas que se usan en problemas de regresión. Son casi las mismas que usábamos como funciones de coste. 
  
Línea 135: Línea 133:
  
 $$R^{2} = 1- \frac {\sum\limits_{i=1}^{N} (y_{i} - \hat{y_{i}})^2} {\sum\limits_{i=1}^{N} (y_{i} - \bar{y})^2}$$ $$R^{2} = 1- \frac {\sum\limits_{i=1}^{N} (y_{i} - \hat{y_{i}})^2} {\sum\limits_{i=1}^{N} (y_{i} - \bar{y})^2}$$
-$$\bar{y}=\frac {1}{N} \sum\limits_{i=1}^{N} y_{i} - \hat{y_{i}}$$+$$\bar{y}=\frac {1}{N} \sum\limits_{i=1}^{N} y_{i}$$
  
 Siendo: Siendo:
Línea 142: Línea 140:
 Ahora vamos a explicar algunas cosas de R² Ahora vamos a explicar algunas cosas de R²
   * MAE, MSE y RMSE son mejor cuanto menor es el valor, mientras que R² es mejor cuanto más se acerca a 1.   * MAE, MSE y RMSE son mejor cuanto menor es el valor, mientras que R² es mejor cuanto más se acerca a 1.
-  * Un problema de R² es que aumenta su valor cuantas más variables tengamos de entrada (es decir el tamaño del vector de cada muestra) por eso se suele usar la métrica de R² ajustada. Para ello en Keras le pasaremos el argumento ''num_regressors'' a la clase ''RSquare''+  * Un problema de R² es que aumenta su valor cuantas más variables tengamos de entrada (es decir el tamaño del vector de cada muestra) por eso se suele usar la métrica de R² ajustada. 
  
  
 Se define en Keras como: Se define en Keras como:
 <sxh python> <sxh python>
-metrics=[tfa.metrics.RSquare()]+metrics=[tf.keras.metrics.R2Score()]
 </sxh> </sxh>
  
 y se usa como y se usa como
 <sxh python> <sxh python>
-history.history['r_square']+history.history['r2_score']
 </sxh> </sxh>
  
 Mas información: Mas información:
-  * [[https://www.tensorflow.org/addons/api_docs/python/tfa/metrics/RSquare|tfa.metrics.RSquare]]+  * [[https://www.tensorflow.org/api_docs/python/tf/keras/metrics/R2Score|tf.keras.metrics.R2Score]]
   * {{:clase:iabd:pia:2eval:errores_frecuentes_interpretacion_coeficiente_determinacion.pdf|Errores frecuentes en la interpretación del coeficiente de determinación lineal}}   * {{:clase:iabd:pia:2eval:errores_frecuentes_interpretacion_coeficiente_determinacion.pdf|Errores frecuentes en la interpretación del coeficiente de determinación lineal}}
 +
 +===== Coeficiente de determinación ajustado o R²ajustado =====
 +Como acabamos de comentar el Coeficiente de determinación tiene el problema de que tiende a 1 cuantos más características haya es decir cuantas más columnas tenga la hay. 
 +Se suele expresar como que hay una alta dimensionalidad. 
 +
 +Para evitar el problema del cálculo de R² en entornos de alta dimensionalidad (que suele ser lo normal en problemas de IA y Machine Learning) existe una nueva métrica que se llama //R² ajustado// y se escribe $\bar{R^2}$ o $R^2_{ajustado}$
 +
 +La fórmula ahora es:
 +
 +$$
 +\bar{R^2}=1-(1-R^2)\frac{n-1}{n-p-1}
 +$$
 +
 +Siendo:
 +  * $p$: El número de características  ''x.shape[1]''
 +  * $n$: El número de muestras ''s.shape[1]''
 +
 +
 +Para usarlo en keras se usa también ''tf.keras.metrics.R2Score()'' pero se le pasa el argumento ''num_regressors''. Siendo ''num_regressors'' el número de características, es decir ''x.shape[1]''
 +
 +<sxh python>
 +metrics=[tf.keras.metrics.R2Score(num_regressors=x.shape[1])]
 +</sxh>
 +
 +<note tip>
 +Si a ''R2Score()'' no se le pasa ninguna valor a ''num_regressors'' su valor por defecto es 0. Y eso no significa que haya 0 características sino que en ese caso no hay que calcular el valor de $\bar{R^2}$ sino $R^2$
 +</note>
 +
 +
 +
  
  
Línea 167: Línea 195:
       * MAE es mas robusto que MSE ante datos anómalos, es decir que los tiene menos en cuenta       * MAE es mas robusto que MSE ante datos anómalos, es decir que los tiene menos en cuenta
       * MSE eleva el error al cuadrado y la regresión al intentar minimizar dicho error , tiende a ir hacia ese dato anómalo. Por lo que MSE tiene más en cuenta los datos anómalos.       * MSE eleva el error al cuadrado y la regresión al intentar minimizar dicho error , tiende a ir hacia ese dato anómalo. Por lo que MSE tiene más en cuenta los datos anómalos.
-      * Por lo tanto si los datos "anómalos" realmente no son anómalos sino situaciones "normales" pero poco frecuentes, deberíamos usar MSE, mientras que si los datos "anómalos" realmente son cosas "extrañas" que no deberíamos tener en cuenta, es mejor usar MAE.+      * Por contra si los datos "anómalos" realmente no son anómalos sino situaciones "normales" pero poco frecuentes, deberíamos usar MSE
 +  * Mejor usar $R^2$ pero como suele haber mucha característicases mejor usar $\bar{R^2}$ 
 +  * Entre RMSE y $\bar{R^2}$ se debe usar RMSE si estamos comparando distintos modelos con los mismos datos ya que en ese caso no nos afecta que haya alta dimensionalidad. 
 + 
 +<note warning>Recordar que como función de coste es mejor usar MSE que MAE ya que en MAE la derivada es constante.</note>
  
  
  
clase/iabd/pia/2eval/tema08.metricas_regresion.1734945867.txt.gz · Última modificación: 2024/12/23 10:24 por admin