Calculates the Mean Absolute Error (MAE) between ground truth (observed) and predicted values. MAE measures the absolute difference between true values and predicted values. Equation: MAE = (1/n) * Σ(abs(y_true - y_pred)) Reference: https://en.wikipedia.org/wiki/Mean_
(y_true: np.ndarray, y_pred: np.ndarray)
| 364 | |
| 365 | |
| 366 | def mean_absolute_error(y_true: np.ndarray, y_pred: np.ndarray) -> float: |
| 367 | """ |
| 368 | Calculates the Mean Absolute Error (MAE) between ground truth (observed) |
| 369 | and predicted values. |
| 370 | |
| 371 | MAE measures the absolute difference between true values and predicted values. |
| 372 | |
| 373 | Equation: |
| 374 | MAE = (1/n) * Σ(abs(y_true - y_pred)) |
| 375 | |
| 376 | Reference: https://en.wikipedia.org/wiki/Mean_absolute_error |
| 377 | |
| 378 | Parameters: |
| 379 | - y_true: The true values (ground truth) |
| 380 | - y_pred: The predicted values |
| 381 | |
| 382 | >>> true_values = np.array([1.0, 2.0, 3.0, 4.0, 5.0]) |
| 383 | >>> predicted_values = np.array([0.8, 2.1, 2.9, 4.2, 5.2]) |
| 384 | >>> bool(np.isclose(mean_absolute_error(true_values, predicted_values), 0.16)) |
| 385 | True |
| 386 | >>> true_values = np.array([1.0, 2.0, 3.0, 4.0, 5.0]) |
| 387 | >>> predicted_values = np.array([0.8, 2.1, 2.9, 4.2, 5.2]) |
| 388 | >>> bool(np.isclose(mean_absolute_error(true_values, predicted_values), 2.16)) |
| 389 | False |
| 390 | >>> true_labels = np.array([1.0, 2.0, 3.0, 4.0, 5.0]) |
| 391 | >>> predicted_probs = np.array([0.3, 0.8, 0.9, 5.2]) |
| 392 | >>> mean_absolute_error(true_labels, predicted_probs) |
| 393 | Traceback (most recent call last): |
| 394 | ... |
| 395 | ValueError: Input arrays must have the same length. |
| 396 | """ |
| 397 | if len(y_true) != len(y_pred): |
| 398 | raise ValueError("Input arrays must have the same length.") |
| 399 | |
| 400 | return np.mean(abs(y_true - y_pred)) |
| 401 | |
| 402 | |
| 403 | def mean_squared_logarithmic_error(y_true: np.ndarray, y_pred: np.ndarray) -> float: |