В общем:
Делайте свои прогнозы, используя одну модель, обученную на всем наборе данных (так что есть только один набор функций). Перекрестная проверка используется только для оценки прогностической эффективности отдельной модели, обученной для всего набора данных. Жизненно важно при использовании перекрестной проверки, что в каждом сгибе вы повторяете всю процедуру, используемую для подгонки к основной модели, так как в противном случае вы можете получить существенный оптимистический уклон в производительности.
Чтобы понять, почему это происходит, рассмотрим проблему двоичной классификации с 1000 двоичными признаками, но только с 100 случаями, когда все случаи и признаки являются чисто случайными, поэтому между признаками и случаями нет никакой статистической связи. Если мы обучаем первичную модель полному набору данных, мы всегда можем достичь нулевой ошибки в обучающем наборе, поскольку имеется больше возможностей, чем случаев. Мы даже можем найти подмножество «информативных» функций (случайно оказавшихся коррелированными). Если мы затем проведем перекрестную проверку с использованием только этих функций, мы получим оценку производительности, которая лучше, чем случайное предположение. Причина в том, что в каждом из этапов процедуры перекрестной проверки есть некоторая информация о задержанных случаях, использованных для тестирования, поскольку функции были выбраны, потому что они были хороши для прогнозирования, все они, в том числе те, которые продержались. Конечно, истинная частота ошибок будет 0,5.
Если мы примем правильную процедуру и выполним выбор функций в каждом сгибе, то больше не будет никакой информации о задержанных случаях в выборе функций, используемых в этом сгибе. Если вы используете правильную процедуру, в этом случае вы получите ошибку около 0,5 (хотя она будет немного отличаться для разных реализаций набора данных).
Хорошие документы для чтения:
Кристоф Амбруаз, Джеффри Дж. МакЛахлан, «Смещение отбора при экстракции генов на основе данных по экспрессии генов микрочипов», PNAS http://www.pnas.org/content/99/10/6562.abstract
что очень важно для ОП и
Гэвин К. Коули, Никола Л.К. Тэлбот, «О переоснащении при выборе модели и смещении последующего выбора при оценке производительности», JMLR 11 (июль): 2079-2107, 2010 http://jmlr.csail.mit.edu/papers /v11/cawley10a.html
это демонстрирует, что то же самое может легко происходить при выборе модели (например, настройка гиперпараметров SVM, которые также необходимо повторять на каждой итерации процедуры CV).
На практике:
Я бы порекомендовал использовать Bagging и использовать ошибку «из пакета» для оценки производительности. Вы получите модель комитета, использующую много функций, но это на самом деле хорошо. Если вы используете только одну модель, вполне вероятно, что вы переопределите критерий выбора объекта и в итоге получите модель, которая дает более плохие прогнозы, чем модель, которая использует большее количество объектов.
Книга Алана Миллерса о выборе подмножества в регрессии (монографии Чепмена и Холла по статистике и прикладной вероятности, том 95) дает хороший совет (стр. 221), что, если прогнозирующая эффективность является наиболее важной вещью, то не делайте никакого выбора функций , просто используйте вместо этого регрессию гребня. И это в книге о выборе подмножества !!! ; О)