Мне интересно, как выбрать прогностическую модель после выполнения перекрестной проверки по K-кратному критерию.
Это может быть неловко сформулировано, поэтому позвольте мне объяснить более подробно: всякий раз, когда я запускаю кросс-проверку K-кратных данных, я использую K подмножеств данных обучения и в конечном итоге получаю K различных моделей.
Я хотел бы знать, как выбрать одну из моделей K, чтобы я мог представить ее кому-то и сказать: «Это лучшая модель, которую мы можем изготовить».
Можно ли выбрать одну из моделей K? Или существует какая-то передовая практика, например, выбор модели, которая достигает медианной ошибки теста?
cross-validation
model-selection
Берк У.
источник
источник
Ответы:
Я думаю, что вы упускаете что-то еще в вашем понимании цели перекрестной проверки.
Давайте проясним некоторую терминологию, обычно, когда мы говорим «модель», мы ссылаемся на конкретный метод для описания того, как некоторые входные данные связаны с тем, что мы пытаемся предсказать. Обычно мы не называем отдельные экземпляры этого метода различными моделями. Таким образом, вы можете сказать «У меня есть модель линейной регрессии», но вы не назвали бы два разных набора обученных коэффициентов разными моделями. По крайней мере, не в контексте выбора модели.
Таким образом, когда вы выполняете перекрестную проверку K-кратности, вы проверяете, насколько хорошо ваша модель может пройти обучение по некоторым данным, а затем предсказывает данные, которых она не видела. Мы используем перекрестную проверку для этого, потому что если вы тренируетесь, используя все имеющиеся у вас данные, у вас не останется ни одного для тестирования. Вы можете сделать это один раз, скажем, используя 80% данных для обучения и 20% для тестирования, но что если 20%, которые вы выбрали для тестирования, содержат множество точек, которые особенно просты (или особенно трудны)? предсказывать? Мы не будем предлагать наилучшую возможную оценку способности моделей учиться и предсказывать.
Мы хотим использовать все данные. Таким образом, чтобы продолжить приведенный выше пример разделения 80/20, мы бы провели 5-кратную перекрестную проверку, обучив модель 5 раз на 80% данных и протестировав на 20%. Мы гарантируем, что каждая точка данных попадает в тестовый набор 20% ровно один раз. Поэтому мы использовали каждую точку данных, которая нам нужна, чтобы понять, насколько хорошо наша модель выполняет задачу обучения на основе некоторых данных и прогнозирования некоторых новых данных.
Но цель перекрестной проверки не состоит в том, чтобы придумать нашу окончательную модель. Мы не используем эти 5 экземпляров нашей обученной модели, чтобы делать какие-либо реальные прогнозы. Для этого мы хотим использовать все данные, которые нам нужны, чтобы создать наилучшую возможную модель. Целью перекрестной проверки является проверка модели, а не построение модели.
Теперь, скажем, у нас есть две модели, скажем, модель линейной регрессии и нейронная сеть. Как мы можем сказать, какая модель лучше? Мы можем выполнить перекрестную проверку в K-кратном порядке и посмотреть, какая из них окажется лучше при прогнозировании контрольных точек теста. Но как только мы использовали перекрестную проверку для выбора более эффективной модели, мы обучаем эту модель (будь то линейная регрессия или нейронная сеть) для всех данных. Мы не используем фактические экземпляры модели, которые мы обучили во время перекрестной проверки для нашей окончательной прогнозной модели.
Обратите внимание, что существует метод, называемый агрегацией начальной загрузки (обычно сокращаемый до «пакетирования»), который каким-то образом использует экземпляры модели, созданные способом, аналогичным перекрестной проверке, для построения модели ансамбля, но это расширенный метод, выходящий за рамки вашего вопроса здесь.
источник
For that we want to use all the data we have to come up with the best model possible.
- Означает ли это, что при выполнении поиска по сетке с перекрестной проверкой по K- образному критерию вы будете использовать лучшие параметры, найденные при поиске по сетке, и подгонять модель ко всем данным обучения, а затем оценивать эффективность обобщения с помощью набора тестов?Позвольте мне добавить несколько моментов в дополнение к ответу Богдановиста.
Теперь есть некоторые предположения в этом процессе.
Конечное число случаев означает, что измерение производительности будет подвержено случайной ошибке (дисперсии) из-за конечного числа тестовых случаев. Этот источник отклонений отличается (и, следовательно, добавляет) от дисперсии нестабильности модели.
Различия в наблюдаемой производительности обусловлены этими двумя источниками дисперсии.
«Выбор», о котором вы думаете, - это выбор набора данных: выбор одной из суррогатных моделей означает выбор подмножества обучающих выборок и утверждение, что это подмножество обучающих выборок приводит к превосходной модели. Хотя это может быть правдой, обычно «превосходство» является ложным. В любом случае, поскольку выбор «лучшей» из суррогатных моделей является оптимизацией на основе данных, вам необходимо будет проверить (измерить производительность) эту выбранную модель с новыми неизвестными данными. Набор тестов в рамках этой перекрестной проверки не является независимым, поскольку он использовался для выбора суррогатной модели.
Возможно, вы захотите взглянуть на нашу статью, речь идет о классификации, где ситуация обычно хуже, чем при регрессии. Тем не менее, это показывает, как эти источники дисперсии и смещения складываются.
Beleites, C. и Neugebauer, U. и Bocklitz, T. и Krafft, C. и Popp, J .: Планирование размера выборки для классификационных моделей. Anal Chim Acta, 2013, 760, 25-33.
DOI: 10.1016 / j.aca.2012.11.007
принята рукопись на arXiv: 1211.1323
источник
picking "the best" of the surrogate models is a data-driven optimization, you'd need to validate (measure performance) this picked model with new unknown data. The test set within this cross validation is not independent as it was used to select the surrogate model.
и он говорит,But once we have used cross-validation to select the better performing model, we train that model (whether it be the linear regression or the neural network) on all the data.
что это довольно часто, и очень важно, чтобы был определен стандартизированный подходЯ нашел эту прекрасную статью « Как обучить окончательной модели машинного обучения» очень полезной для прояснения всех моих заблуждений относительно использования CV в машинном обучении.
По сути, мы используем CV (например, 80/20 split, k-fold и т. Д.), Чтобы оценить, насколько хорошо ваша целая процедура (включая обработку данных, выбор модели (т. Е. Алгоритм) и гиперпараметры и т. Д.) Будет выполняться в будущем невидимым. данные. И как только вы выбрали выигрышную «процедуру», подходящие модели из CV выполнили свою задачу и теперь могут быть выброшены. Затем вы используете ту же самую выигрышную «процедуру» и тренируете свою окончательную модель, используя весь набор данных.
источник
Это очень интересный вопрос. Чтобы было понятно, мы должны понимать разницу между моделью и оценкой модели. Мы используем полный тренировочный набор для построения модели, и мы ожидаем, что эта модель будет наконец использована.
Оценка K кратного кросса создаст K моделей, но все будет отброшено. K модели просто используются для оценки. и он только дал метрики, чтобы сказать вам, насколько хорошо эта модель соответствует вашим данным.
Например, вы выбираете алгоритм LinearRegression и выполняете две операции с одним и тем же обучающим набором: одну с 10-кратной перекрестной проверкой, а другую с 20-кратной. модель регрессии (или классификатора) должна быть одинаковой, но коэффициент корреляции и относительная квадратная ошибка корня различны.
Ниже приведены два прогона для 10-кратной и 20-кратной перекрестной проверки с помощью weka.
1-й пробег с 10-кратным
2-й пробег с 20-кратным
источник
Я не уверен, что приведенная выше дискуссия является полностью правильной. В перекрестной проверке мы можем разделить данные на тренинг и тестирование для каждого прогона. Используя только обучающие данные, необходимо подобрать модель и выбрать параметры настройки в каждом классе рассматриваемых моделей. Например, в нейронных сетях параметры настройки - это количество нейронов и выбор функции активации. Для этого нужно провести перекрестную проверку только в данных обучения .
Как только лучшая модель в каждом классе найдена, модель наилучшего соответствия оценивается с использованием тестовых данных. «Внешний» цикл перекрестной проверки может использоваться для лучшей оценки эффективности тестовых данных, а также оценки изменчивости. Затем обсуждение может сравнить производительность теста для разных классов, скажем, Neural Nets против SVM. Выбран один класс модели с фиксированным размером модели, и теперь все данные используются для изучения наилучшей модели.
Теперь, если в рамках вашего алгоритма машинного обучения вы хотите постоянно выбирать лучший класс модели (скажем, каждую неделю), то даже этот выбор должен быть оценен в данных обучения! Измерение тестовых данных не может быть использовано для оценки выбора класса модели, если это динамическая опция.
источник
Почему мы используем перекрестную проверку в k-кратном размере?
Перекрестная проверка - это метод оценки мастерства метода на невидимых данных. Вроде использования поезда-теста.
Перекрестная проверка систематически создает и оценивает несколько моделей в нескольких подмножествах набора данных. Это, в свою очередь, обеспечивает совокупность показателей эффективности .
Это также полезно для обеспечения более детального сравнения одной процедуры с другой, когда вы пытаетесь выбрать, какой алгоритм и процедуры подготовки данных использовать.
Кроме того, эта информация неоценима, так как вы можете использовать среднее значение и разброс, чтобы дать доверительный интервал ожидаемой эффективности процедуры машинного обучения на практике.
ссылка
источник