Преобразовываю ли я все свои данные или сгибы (если применяется CV) одновременно? например
(allData - mean(allData)) / sd(allData)
Преобразовать ли наборы поездов и наборы тестов отдельно? например
(trainData - mean(trainData)) / sd(trainData)
(testData - mean(testData)) / sd(testData)
Или я преобразую поездный набор и использую вычисления на тестовом наборе? например
(trainData - mean(trainData)) / sd(trainData)
(testData - mean(trainData)) / sd(trainData)
Я считаю, что 3 правильный путь. Если 3 правильно, нужно ли беспокоиться о том, что среднее значение не равно 0 или диапазон не находится между [0; 1] или [-1; 1] (нормализация) тестового набора?
R
? Смотрите этот вопрос: stackoverflow.com/questions/49260862/…Ответы:
Третий способ правильный. Почему это подробно описано в «Элементах статистического обучения» , см. Раздел «Неправильный и правильный способ перекрестной проверки», а также в заключительной главе « Изучение данных» в примере с фондовым рынком.
По сути, процедуры 1 и 2 просачивают информацию либо об ответе, либо из будущего, из вашего набора данных, оставшихся в процессе обучения, или оценки вашей модели. Это может вызвать значительный уклон оптимизма в вашей оценке модели.
Идея проверки модели состоит в том, чтобы имитировать ситуацию, в которой вы бы находились, когда ваша модель принимает производственные решения, когда у вас нет доступа к истинному ответу. Следствием этого является то, что вы не можете использовать ответ в наборе тестов ни для чего, кроме как для сравнения с вашими предсказанными значениями.
Другой способ подойти к этому - представить, что у вас есть доступ только к одной точке данных из вашего времени ожидания (обычная ситуация для производственных моделей). Все, что вы не можете сделать в этом предположении, вы должны с большим подозрением относиться. Ясно, что одну вещь, которую вы не можете сделать, - это агрегировать по всем новым точкам данных в прошлом и будущем, чтобы нормализовать производственный поток данных - поэтому выполнение того же для проверки модели недопустимо.
Вам не нужно беспокоиться о том, что среднее значение вашего набора тестов не равно нулю, это лучшая ситуация, чем смещение ваших оценок производительности. Хотя, конечно, если тест действительно взят из того же базового распределения, что и ваш поезд (существенное предположение в статистическом обучении), среднее значение должно быть примерно равно нулю.
источник
Clearly, one thing you cannot do is aggregate over all new data-points past and future to normalize your production stream of data
, Почему нет?