Ответ
Оценка ошибки модели — это процесс измерения ее производительности с использованием специальных функций потерь (Loss Functions) на этапе обучения и метрик (Metrics) на этапе валидации/тестирования.
1. Функции потерь (для оптимизации): Эти функции дифференцируемы и используются алгоритмом оптимизации (градиентный спуск) для обновления весов.
- Для регрессии:
- Среднеквадратичная ошибка (MSE):
MSE = (1/n) * Σ(y_true - y_pred)². Сильно штрафует большие ошибки. - Средняя абсолютная ошибка (MAE):
MAE = (1/n) * Σ|y_true - y_pred|. Менее чувствительна к выбросам.
- Среднеквадратичная ошибка (MSE):
- Для классификации:
- Бинарная/категориальная перекрестная энтропия (Binary/Cross-Entropy Loss): Измеряет расхождение между распределением предсказанных вероятностей и истинными метками.
Loss = - Σ y_true * log(y_pred).
- Бинарная/категориальная перекрестная энтропия (Binary/Cross-Entropy Loss): Измеряет расхождение между распределением предсказанных вероятностей и истинными метками.
2. Метрики оценки (для интерпретации): Эти метрики дают понятную человеку оценку качества, но не всегда дифференцируемы.
- Для регрессии:
R²(коэффициент детерминации),RMSE(корень из MSE). - Для классификации:
- Accuracy (Точность): Доля правильных предсказаний. Может быть неинформативна при несбалансированных классах.
- Precision (Точность), Recall (Полнота), F1-Score: Более надежные метрики для несбалансированных данных. F1 — гармоническое среднее Precision и Recall.
- ROC-AUC: Показывает способность модели разделять классы, независимо от порога классификации.
Практический пример сравнения метрик:
from sklearn.metrics import mean_squared_error, r2_score, f1_score
# Для регрессии
y_true_reg = [3.0, 5.0, 2.5, 7.0]
y_pred_reg = [2.5, 5.2, 4.0, 8.0]
print(f"MSE: {mean_squared_error(y_true_reg, y_pred_reg):.2f}")
print(f"R²: {r2_score(y_true_reg, y_pred_reg):.2f}")
# Для бинарной классификации
y_true_clf = [1, 0, 1, 1, 0]
y_pred_clf = [1, 0, 0, 1, 1] # Предсказанные классы (не вероятности!)
print(f"F1-Score: {f1_score(y_true_clf, y_pred_clf):.2f}")
Выбор конкретной функции потерь и метрики строго зависит от бизнес-задачи. Например, в задаче обнаружения мошенничества (где класс "мошенничество" редок) часто максимизируют Recall, чтобы пропустить как можно меньше мошеннических операций.