Как мы можем рассчитать среднюю абсолютную процентную ошибку (MAPE) наших прогнозов, используя Python и scikit-learn?
Из документов у нас есть только эти 4 метрические функции для регрессий:
- metrics.explained_variance_score (y_true, y_pred)
- metrics.mean_absolute_error (y_true, y_pred)
- metrics.mean_squared_error (y_true, y_pred)
- metrics.r2_score (y_true, y_pred)
predictive-models
python
scikit-learn
mape
Nyxynyx
источник
источник
Ответы:
Как отмечалось (например, в Википедии ), MAPE может быть проблематичным. Наиболее конкретно, это может вызвать ошибки деления на ноль. Я предполагаю, что именно поэтому он не включен в показатели sklearn.
Тем не менее, это просто реализовать.
Используйте как любой другой показатель ...:
(Обратите внимание, что я умножаю на 100 и возвращаю процент.)
... но с осторожностью:
источник
y_pred
сy_true
в знаменателе):return np.mean(np.abs((y_true - y_pred) / y_true)) * 100
check_arrays
был угроблен Сципи Естьcheck_array
в текущем sklearn, но не похоже, что он работает так же.вот обновленная версия:
источник