На самом деле это нормально, чтобы выполнить неконтролируемый выбор функции перед перекрестной проверкой?

9

В «Элементах статистического обучения» я нашел следующее утверждение:

Существует одна квалификация: начальные неконтролируемые этапы скрининга могут быть выполнены до того, как образцы будут опущены. Например, мы могли бы выбрать 1000 предикторов с наибольшей дисперсией во всех 50 выборках перед началом перекрестной проверки. Поскольку эта фильтрация не включает метки классов, она не дает предикторам несправедливого преимущества.

Это действительно верно? Я имею в виду, что, предварительно фильтруя атрибуты, мы не имитируем обучающие данные / новую среду данных - значит ли это, что фильтрация, которую мы выполняем, не контролируется? Не лучше ли на самом деле выполнить все этапы предварительной обработки в процессе перекрестной проверки? Если это не так, то это означает, что вся неконтролируемая предварительная обработка может быть выполнена заранее, включая нормализацию функций / PCA и т. Д. Но, выполняя это для всего обучающего набора, мы фактически пропускаем некоторые данные в обучающий набор. Я могу согласиться с тем, что при относительно стабильном наборе данных эти различия, скорее всего, должны быть очень незначительными, но это не значит, что их не существует, верно? Как правильно думать об этом?

Matek
источник

Ответы:

2

Как этап, выполняемый перед перекрестной проверкой, неконтролируемый выбор функции в некоторой степени похож на нормализацию функции:

  1. С точки зрения специфического сгиба в перекрестной проверке, данные поезда посмотрели на тестовые данные (хотя только в независимых переменных).

  2. Это выглядывает относительно мягким.

Нормализация функций до перекрестной проверки обсуждалась в этом вопросе . Цитирую ответ там Дикран Marsupial

Перекрестная проверка лучше всего рассматривать как метод оценки эффективности статистической процедуры, а не статистической модели. Таким образом, чтобы получить объективную оценку производительности, вам нужно повторять каждый элемент этой процедуры отдельно в каждом сгибе перекрестной проверки, что включает в себя нормализацию.

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

Однако, как говорят ответы на этот вопрос, на практике изменение порядка, вероятно, ничего не изменит. Конечно, нет существенного несправедливого преимущества, которое дает выбор, зависящий от . ИМХО, это интерпретация цитаты из элементов статистического обучения .y

Ами Тавори
источник
Ну, это в основном совпадает с моими мыслями, и последнее предложение здесь является кратким ответом на мой вопрос. Спасибо, я сделаю это принятым ответом.
Матек
1
Эффект может быть небольшим, но это не может быть , что мало. Как вы говорите, это похоже на предварительное масштабирование ваших независимых переменных перед CV, в котором будет использоваться «будущее» (тестовые данные), чтобы помочь масштабировать «настоящее» (обучающие данные), чего не произойдет в реальном мире. Если у вас есть случайные сгибы (без использования временных рядов, стратификации и т. Д.), Это менее эффективно, но зачем преодолевать барьер Train / Test и все?
Уэйн
@Wayne Я, конечно, согласен с вами, что, когда это возможно, лучше не преодолевать барьер поезда / теста. Лично я никогда не сталкивался с реальными случаями, когда это имело значение (без ФС и / или нормализации), но я сталкивался со случаями, когда было абсолютно невозможно сделать выбор функции «правильным способом» (т.е. внутри каждого раза). Тем не менее, из вашего прекрасного ответа (который я голосую) я вижу, что вы столкнулись с противоположным случаем, поэтому, очевидно, оба сценария существуют.
Ами Тавори
Я не уверен, что сталкивался с результатами CV, где нормализация тоже имела значение, что я приписываю обычно 10-кратному CV, что означает, что тестовый сгиб составляет всего 10%, что снижает его эффект. Я видел разницу с чем-то вроде 67/33 или даже 75/25 без CV.
Уэйн
9

Я позволю себе не согласиться в этом вопросе с мнением @ AmiTavory, а также с элементами статистического обучения.

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

В моей области это было бы чаще всего PCA для уменьшения размерности перед обучением классификатора. Хотя я не могу показать данные здесь, я видел, что PCA + (перекрестная проверка LDA) и перекрестная проверка (PCA + LDA) недооценивают частоту ошибок примерно на порядок . (Обычно это показатель того, что PCA нестабилен.)

Что касается аргументации «несправедливого преимущества» Элементов, то при рассмотрении дисперсии тестов taining + мы получаем функции, которые хорошо работают как с обучающими, так и с тестовыми примерами. Таким образом, мы создаем самоисполняющееся пророчество, которое является причиной чрезмерного оптимизма. Этот уклон низкий, если у вас достаточно удобные размеры выборки.

Поэтому я рекомендую подход, который немного более консервативен, чем Элементы:

  • Расчеты предварительной обработки, которые учитывают более одного случая, должны быть включены в валидацию: т.е. они рассчитываются только на соответствующем обучающем наборе (а затем применяются к данным испытаний)
  • Шаги предварительной обработки, которые рассматривают каждый случай отдельно (я - спектроскопист: примерами могут быть базовая коррекция и нормализация интенсивности, которая является построчной нормализацией), могут быть извлечены из перекрестной проверки, если они находятся перед первым шагом, который рассчитывает для нескольких случаев.

При этом перекрестная оценка также является лишь кратчайшим путем для проведения правильного валидационного исследования. Таким образом, вы можете поспорить с практичностью:

  • Вы можете проверить, дает ли рассматриваемая предварительная обработка стабильные результаты (вы можете сделать это, например, путем перекрестной проверки). Если вы найдете его совершенно стабильным уже с меньшими размерами выборки, ИМХО вы можете утверждать, что при выводе его из перекрестной проверки не будет большого смещения.

  • Однако, чтобы процитировать предыдущего руководителя: Время расчета не является научным аргументом.
    Я часто провожу предварительный просмотр нескольких сгибов и нескольких итераций для перекрестной проверки, чтобы убедиться, что весь код (включая сводку / графики результатов), а затем оставляю его на ночь или на выходные или около того на сервере для более мелкозернистая перекрестная проверка.

cbeleites недоволен SX
источник