Всегда ли полезно тренироваться с полным набором данных после перекрестной проверки ? Другими словами, можно ли тренироваться со всеми образцами в моем наборе данных и не иметь возможности проверить, подходит ли этот конкретный пример ?
Некоторые предыстории проблемы:
Скажем, у меня есть семейство моделей, параметризованных . Скажем также, что у меня есть набор из точек данных и что я делаю выбор модели с перекрестной проверкой в k-кратном порядке, чтобы выбрать модель, которая лучше всего обобщает данные. N
Для выбора модели я могу выполнить поиск (например, поиск по сетке) в , например, запустив перекрестную проверку по k-кратному критерию для каждого кандидата. В каждой из перекрестных проверок я получаю изученную модель . βα
Смысл перекрестной проверки заключается в том, что для каждой из этих складок я могу проверить, была ли изученная модель более подходящей, проверяя ее на «невидимых данных». В зависимости от результатов я мог выбрать модель изученную для параметров которые лучше всего обобщались при перекрестной проверке в поиске по сетке.→ α лучший
Теперь, говорят , что после выбора модели , я хотел бы использовать все те точек в моем наборе данных , и мы надеемся узнать лучшую модель. Для этого я мог бы использовать параметры соответствующие модели, которую я выбрал при выборе модели, а затем, после обучения полному набору данных, я получил бы новую изученную модель . Проблема в том, что, если я использую все точки в моем наборе данных для обучения, я не смогу проверить, переходит ли эта новая изученная модель на какие-либо невидимые данные. Как правильно обдумать эту проблему?→ & alpha ; б е с т β е у л л β е у л л
источник
Ответы:
Способ перекрестной проверки заключается в оценке производительности, полученной с использованием метода построения модели, а не оценки производительности модели.
Если вы используете перекрестную проверку для оценки гиперпараметров модели ( s), а затем используете эти гиперпараметры для подгонки модели ко всему набору данных, тогда это нормально, если вы признаете, что оценка перекрестной проверки производительности, вероятно, будет (возможно, существенно) с оптимистической предвзятостью. Это связано с тем, что часть модели (гиперпараметры) была выбрана для минимизации эффективности перекрестной проверки, поэтому, если статистика перекрестной проверки имеет ненулевую дисперсию (и она будет), существует вероятность переопределения критерий выбора модели.α
Если вы хотите выбрать гиперпараметры и оценить производительность полученной модели, то вам нужно выполнить вложенную перекрестную проверку, где внешняя перекрестная проверка используется для оценки производительности модели, а в каждом сгибе - перекрестная проверка. валидация используется для определения гиперпараметров отдельно в каждом сгибе. Вы строите окончательную модель, используя перекрестную проверку для всего набора, чтобы выбрать гиперпараметры, а затем строите классификатор для всего набора данных, используя оптимизированные гиперпараметры.
Это, конечно, вычислительно дорого, но оно того стоит, поскольку смещение, вызванное неправильной оценкой производительности, может быть большим. Смотри мою статью
GC Cawley и NLC Talbot, Чрезмерная подгонка при выборе модели и последующая систематическая ошибка выбора при оценке производительности, Journal of Machine Learning Research, 2010. Research, vol. 11, с. 2079-2107, июль 2010 г. ( www , pdf )
Тем не менее, при выборе модели все еще возможна избыточная подгонка (вложенная перекрестная проверка просто позволяет проверить ее). Метод, который я нашел полезным, состоит в том, чтобы добавить термин регуляризации к ошибке перекрестной проверки, который штрафует значения гиперпараметров, которые могут привести к чрезмерно сложным моделям, см.
GC Cawley и NLC Talbot, Предотвращение чрезмерной подгонки при выборе модели с помощью байесовской регуляризации гиперпараметров, Journal of Machine Learning Research, том 8, страницы 841-861, апрель 2007 г. ( www , pdf )
Таким образом, ответы на ваш вопрос таковы: (i) да, вы должны использовать полный набор данных для создания вашей окончательной модели, поскольку чем больше данных вы используете, тем выше вероятность того, что вы сможете хорошо обобщать, но (ii) убедитесь, что вы получите объективную оценку производительности с помощью вложенной перекрестной проверки и, возможно, рассмотрит возможность штрафовать статистику перекрестной проверки, чтобы в дальнейшем избежать чрезмерного соответствия при выборе модели.
источник
Просто чтобы добавить к ответу @ mark999,
caret
пакет Макса Куна (Обучение классификации и регрессии) является наиболее полным источником в R для выбора модели, основанного на перекрестной проверке при начальной загрузке или N-кратном CV, а также некоторых других схемах.Не пренебрегать величием
rms
пакета, ноcaret
позволяет вам подходить практически ко всем методам обучения, доступным в R, тогда какvalidate
работает только сrms
методами (я думаю).caret
Пакет представляет собой единую инфраструктуру предварительно данные процесса, подходят и оценить все популярные модели, поэтому он прост в использовании для всех методов и обеспечивает графическую оценку многих показателей эффективности (то , что рядом с overfit проблема может повлиять на выбор модели значительно , как хорошо) по вашей сетке и переменной важности.Посмотрите виньетки пакетов, чтобы начать (это очень просто использовать)
Предварительная обработка данных
Выбор переменных с помощью каретки
Создание модели с каретой
Значение переменной
Вы также можете просмотреть веб-сайт каретки для получения дополнительной информации о пакете и конкретных примерах реализации:
Официальный сайт каретки
источник
train
), есть ли способ тренироваться с полным набором данных?Я полагаю, что Фрэнк Харрелл рекомендовал бы валидацию, а не перекрестную валидацию. Проверка с помощью начальной загрузки позволит вам проверить модель, вписанную в полный набор данных, и будет более стабильной, чем перекрестная проверка. Вы можете сделать это в R, используя пакет
validate
Харреллаrms
.См. Книгу «Стратегии регрессионного моделирования» Харрелла и / или «Введение в бутстрап» Эфрона и Тибширани для получения дополнительной информации.
источник
Я думаю, что у вас есть куча разных вопросов:
Дело в том, что вы можете использовать (один) шаг проверки только для одной цели: либо для оптимизации параметров, (x), либо для оценки эффективности обобщения.
Таким образом, если вы выполняете оптимизацию параметров путем перекрестной проверки (или любого другого вида определения параметров на основе данных), вам нужны тестовые образцы, независимые от этих обучающих и оптимизационных образцов. Дикран называет это вложенной перекрестной проверкой, другое имя - двойной перекрестной проверкой. Или, конечно, независимый набор тестов.
Использование одной из моделей перекрестной проверки обычно хуже, чем обучение на полном наборе (по крайней мере, если ваша кривая обучения = f (nsamples) все еще увеличивается. На практике это так: если бы это было не так, вы, вероятно, установили бы кроме независимого тестового набора.)
Если вы наблюдаете большие различия между моделями перекрестной проверки (с одинаковыми параметрами), то ваши модели нестабильны. В этом случае агрегирование моделей может помочь и на самом деле лучше, чем использование одной модели, обученной на целых данных.
Обновление: эта агрегация является идеей создания пакетов, применяемых к повторной выборке без замены (перекрестная проверка) вместо повторной выборки с заменой (проверка при начальной загрузке / вне начальной загрузки).
Вот статья, где мы использовали эту технику:
Beleites, C. & Salzer, R .: Оценка и улучшение стабильности хемометрических моделей в ситуациях с небольшим размером выборки, Anal Bioanal Chem, 390, 1261-1271 (2008).
DOI: 10.1007 / s00216-007-1818-6
Будучи очень консервативным со степенями свободы, допускающими «лучшую» модель, то есть принимая во внимание (случайную) неопределенность в результатах перекрестной проверки оптимизации. Если df действительно подходят для моделей перекрестной проверки, велики шансы, что их не слишком много для большого тренировочного набора. Подводный камень в том, что оптимизация параметров - это множественное тестирование. Вы должны остерегаться случайно выглядящих наборов параметров.
источник
...If you observe a large variation between the cross validation models (with the same parameters), then your models are unstable. In that case, aggregating the models can help...
Можете ли вы объяснить это немного больше? Например, если я использую логистическую регрессию в 10-тысячной перекрестной проверке и в итоге получаю 10 наборов коэффициентов, вы рекомендуете агрегировать оценки коэффициентов для формирования окончательной модели? Если так, как это можно сделать, просто взяв средства?If the d.f. are actually appropriate for the cross validation models
. В моем понимании вы утверждаете, что наборы поезда / проверки не очень велики по сравнению с полным набором данных, я прав?То, что вы делаете, это не перекрестная проверка, а какая-то стохастическая оптимизация.
Идея CV состоит в том, чтобы смоделировать производительность на невидимых данных, выполнив несколько этапов построения модели на подмножестве объектов и тестирования на оставшихся. Несколько усредненные результаты всех раундов являются приближением производительности модели, обученной на всем наборе .
В вашем случае выбора модели вы должны выполнить полное резюме для каждого набора параметров и, таким образом, получить приблизительное значение производительности для каждой установки, так что, казалось бы, то, что вы хотели получить.
Однако обратите внимание, что вовсе не гарантируется, что модель с наилучшей аппроксимированной точностью будет на самом деле лучшей - вы можете провести перекрестную проверку всей процедуры выбора модели, чтобы увидеть, что существует некоторый диапазон в пространстве параметров, для которого различия в Точность модели не значительна.
источник