irene.py
from sklearn import metrics import numpy as np def errores(reales, observados): mse = metrics.mean_squared_error(observados, reales) rmse = np.sqrt(mse) mae = metrics.mean_absolute_error(observados, reales) mape = metrics.mean_absolute_percentage_error(observados, reales) * 100 # Multiplicamos por 100 para porcentaje r2 = metrics.r2_score(observados, reales) max_error = metrics.max_error(observados, reales) return { "mse":mse, "rmse":rmse, "mae":mae, "mape":mape, "r2":r2, "max_error":max_error } def mostrar_resultados(resultados): print(f"Error Medio Cuadrático (MSE): {resultados["mse"]:.2f}") print(f"Raíz del error Medio Cuadrático (RMSE): {resultados["rmse"]:.2f}") print(f"Error Absoluto Medio (MAE): {resultados["mae"]:.2f}") print(f"Porcentaje de Error Absoluto Medio (MAPE): {resultados["mape"]:.2f}%") print(f"Coeficiente de Determinación (R²): {resultados["r2"]:.2f}") print(f"Error Máximo: {resultados["max_error"]:.2f}")
Caso de uso:
import irene as ir # Datos medicion = [43, 61, 37, 35, 79, 37, 60, 38, 30, 69, 88, 82, 95, 72, 71, 30, 74, 39, 91, 36, 65, 46, 74, 31, 94, 36, 71, 98, 89, 54] reales = [44, 66, 38, 39, 81, 40, 62, 39, 33, 71, 88, 85, 99, 73, 71, 34, 77, 44, 94, 40, 69, 51, 76, 33, 96, 36, 75, 99, 91, 57] # Calculo el error err=ir.errores(medicion,reales) # Imprimimos los resultados ir.mostrar_resultados(err)