Оценка показателей прогнозирования для исходной или преобразованной зависимой переменной - PullRequest
0 голосов
/ 27 июня 2018

Я строю модель машинного обучения для прогнозирования будущих цен в scikit-learn. Цена зависимой переменной обычно не распределяется, поэтому я буду выполнять преобразование журнала только для зависимой переменной price с использованием np.log(price). После этого я разделю полный набор данных на наборы поездов и тестов. Таким образом, y_train и y_test оба теперь являются лог-преобразованными ценами. После подбора модели машинного обучения мне необходимо рассчитать показатели прогнозирования, такие как ошибка MAPE для подобранной модели.

  1. Должны ли данные (price) быть преобразованы обратно в исходную шкалу перед вычислением MAPE с использованием np.exp() для обоих методов model.predict и y_test set?
  2. Или мы должны сначала разбить данные на поезд и проверить, применить преобразование логов только к обучающему набору y_train, после этого применить обратное преобразование к набору model.prediction. Таким образом, y_test set (original) и np.exp(model.predict()) будут использоваться для вычисления MAPE
  3. Или значения метрики MAPE или MAE не зависят от масштабирования переменной отклика y, и MAPE можно сообщать с использованием преобразованных значений журнала зависимой переменной цены?

1 Ответ

0 голосов
/ 27 июня 2018

Я бы сказал, что в ваших обстоятельствах необходимо снизить цены до истинных. Это не абсолютное утверждение, но на самом деле зависит от решения вашей проблемы: если у вас есть истинная цена, равная «1», то ее лог будет «0», и, что бы вы ни прогнозировали для этой единственной точки, вы будете получить неопределенный / бесконечный КАРТА. Так что я бы сказал да, хотя бы уменьшите масштаб до опыта, прежде чем делать это.

Также я не понимаю разницы между «1» и «2»: они кажутся мне идентичными, в «1» вы просто берете журнал цен для тестового набора, а затем снова берете опыт в "2" вы просто избегаете выполнения двух операций ...

Что касается «3», то нет, определенно они не являются независимыми от всех преобразований, в частности, от log. MAPE не зависит только от масштабирования данных с постоянным коэффициентом, MAE путем его смещения с постоянным добавлением.

В этом отношении следует помнить, что никакие меры не дают идеальной истины, и вы можете получить очень плохие результаты, просто применив их. Например, используя MAPE, если у вас есть что-то с ценой в 1 цент и вы оцениваете это в 1 $, вы получите такую ​​же (огромную) ошибку, как если бы она имела цену 1000 $, а вы оценили это в 100k , С другой стороны, поскольку вы берете логи в процессе обучения, это в основном то же правило, которое вы используете для обучения своей модели, поэтому оно может быть не катастрофическим. Просто будьте осторожны, если у вас есть реальные цены, которые очень близки или даже хуже, точно 0.

(MAE, вероятно, хуже в этом случае, потому что он в основном придаст вес нескольким очень дорогим элементам в вашей базе данных, но я не могу точно сказать отсюда)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...