Я подготовил кадр данных, который выглядит следующим образом:
+------------+--------+-----------+
| Date | Actual | Predicted |
+------------+--------+-----------+
| 2020-01-01 | XX | XX |
+------------+--------+-----------+
| 2020-01-02 | XX | XX |
+------------+--------+-----------+
| 2020-01-03 | XX | XX |
+------------+--------+-----------+
| 2020-01-04 | XX | XX |
+------------+--------+-----------+
| 2020-01-05 | XX | XX |
+------------+--------+-----------+
| 2020-01-06 | XX | XX |
+------------+--------+-----------+
| ... | ... | ... |
+------------+--------+-----------+
MAPE = [Σ (| Actual - Predicted | / Actual)] / * 100 / N
(формула также доступна здесь: https://ibf.org/knowledge/glossary/mape-mean-absolute-percentage-error-174)
N будет количество строк.
Сейчас я делаю очень ручной труд, добавив дополнительный столбец, который вычисляет | Actual - Predicted |, еще один столбец, который вычисляет (| Actual - Predicted | / Actual), и затем суммирую вверх по этому столбцу, умножьте на 100, а затем разделите на количество строк.
Мне интересно, есть ли для меня более элегантный способ сделать это, написав функцию, которая поможет мне автоматизировать этот процесс вычисления MAPE .
Я предполагаю, что входными данными будут фрейм данных, два столбца с именами «фактические» и «прогнозируемые», а выходные данные будут вычисляться MAPE.
Большое спасибо за вашу помощь!