Сборник методов перекрестной проверки


43

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

Например, я просто наткнулся на библиотеку, которая позволяет мне выбрать одну из следующих стратегий:

  • Протяни
  • начальная загрузка
  • K Перекрестная проверка
  • Оставь один
  • Стратифицированная перекрестная проверка
  • Сбалансированная стратифицированная перекрестная проверка
  • Многослойный Выдержать
  • Многослойная Бутстрап

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

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


Этот великий вопрос был бы еще более полезным, если бы мы могли дать ссылку на объяснения каждого из методов.
mkt - Восстановить Монику

Ответы:


16

Вы можете добавить в этот список:

  • Повторная перекрестная проверка
  • Перекрестная проверка для групповых выходов
  • Вне сумки (для случайных лесов и других моделей в мешках)
  • 632+ самозагрузки

У меня нет особых советов относительно того, как использовать эти методы или когда их использовать. Вы можете использовать пакет caret в R, чтобы сравнить перекрестную проверку CV, Boot, Boot632, «оставь один, выйди из группы» и «вне сумки».

В общем, я обычно использую надстройку, потому что она менее требовательна к вычислительным ресурсам, чем повторное CV в k-кратном формате, или CV с пропуском одного раза. Boot632 - мой алгоритм выбора, потому что он не требует гораздо больших вычислений, чем начальная загрузка, и в некоторых ситуациях показал, что он лучше, чем перекрестная проверка или базовый загрузчик.

Я почти всегда использую оценки ошибок из пакета для случайных лесов, а не перекрестную проверку. Ошибки из пакета обычно беспристрастны, и случайные леса занимают достаточно много времени, чтобы вычислить как есть.


3
Любой совет относительно того, когда использовать каждый из них?
whuber

16

K-кратная перекрестная проверка (CV) случайным образом разбивает ваши данные на K разделов, и вы, в свою очередь, протягиваете одну из этих K частей в качестве контрольного примера, а другие части K-1 объединяете в свои тренировочные данные. Leave One Out (LOO) - это особый случай, когда вы берете свои N данных и делаете N-кратное резюме. В некотором смысле, Hold Out - это еще один особый случай, когда вы выбираете только один из ваших K-сгибов в качестве теста и не поворачиваете все K-сгибы.

Насколько мне известно, 10-кратное резюме является в значительной степени достоинством, поскольку оно эффективно использует ваши данные и помогает избежать неудачного выбора раздела. Hold Out не позволяет эффективно использовать ваши данные, и LOO не такой надежный (или что-то в этом роде), но 10-кратное смещение - это как раз то, что нужно.

Если вы знаете, что ваши данные содержат более одной категории, а одна или несколько категорий намного меньше остальных, некоторые из ваших K случайных разделов могут вообще не содержать ни одной из маленьких категорий, что было бы плохо. Чтобы убедиться, что каждый раздел достаточно репрезентативен, вы используете стратификацию: разбейте данные на категории, а затем создайте случайные разделы, выбирая случайным образом и пропорционально из каждой категории.

Все эти варианты K-fold CV выбирают из ваших данных без замены. Загрузчик выбирает данные с заменой, поэтому один и тот же элемент данных может быть включен несколько раз, а некоторые данные могут быть вообще не включены. (Каждый «раздел» также будет иметь N элементов, в отличие от K-fold, в котором каждый раздел будет иметь N / K элементов.)

(Я должен признать, что я не знаю точно, как будет использоваться начальная загрузка в CV. Принцип тестирования и CV - убедиться, что вы не проверяете данные, на которых вы тренировались, поэтому вы получаете более реалистичное представление о том, как ваша техника + коэффициенты могут работать в реальном мире.)

РЕДАКТИРОВАТЬ: Заменить «Удержание не является эффективным» с «Удержание не позволяет эффективно использовать ваши данные», чтобы помочь разъяснить, в соответствии с комментариями.


1
Когда вы говорите, что «Выдержка не эффективна», я не уверен, что следую. Что вы подразумеваете под эффективностью здесь? В отличие от обычного N-сгиба, Hold Out не вращается через сгибы, поэтому он должен быть быстрее. Ты имеешь в виду, что в борьбе с переобучением он хуже, чем обычное N-кратное резюме?
Амелио Васкес-Рейна

2
Под «эффективным» я подразумеваю, что он не использует ваши данные эффективно. Прелесть K-fold CV в том, что 100% ваших данных используются для обучения, а 100% ваших данных используются для тестирования, что обеспечивает эффективное использование ваших данных. Ключевым моментом, конечно, является то, что все ваши данные не используются одновременно для тестирования и обучения, что приведет к оптимистичным результатам тестирования (переоснащение). Делая статическое разделение, Hold Out говорит, что, скажем, 1/3 ваших данных никогда не будет использоваться для обучения, а 2/3 ваших данных никогда не будут использоваться для тестирования, тратя впустую много информации в ваших данных.
Уэйн

@ Уэйн Асимптотически не объективно ли несогласный оценщик ? Кроме того, простое CV-кратное CV более подвержено ошибке типа II, чем повторное CV-кратное CV.
хл

@CHL: Я считаю, что вы правы в обоих случаях. Я не использовал повторное K-кратное резюме, но оно должно иметь меньшую дисперсию, что помогло бы.
Уэйн

3

Я нашел одну из ссылок, на которые есть ссылки в статье в Википедии, весьма полезной

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.48.529&rep=rep1&type=pdf

«Исследование перекрестной проверки и начальной загрузки для оценки точности и выбора модели», Рон Кохави, IJCAI95

Он содержит эмпирическое сравнение для подмножества методов CV. Версия tl; dr в основном "использует 10-кратное резюме".


1

... и руководство о том, когда использовать каждый из них ...

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

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

Но высокое соотношение поезд-тест может быть хуже для выбора. Представьте, что действительно есть «лучшая» модель, которую вы «должны» выбрать, но ваш набор данных довольно большой. Тогда слишком большие модели, которые слегка подгоняются, будут иметь почти такую ​​же производительность CV, как и «лучшая» модель (потому что вы будете успешно оценивать их паразитные параметры как незначительные). Случайность в данных и процедура CV / расщепления часто заставляют вас выбирать подходящую модель вместо действительно «лучшей» модели.

См. Shao (1993), «Выбор линейной модели путем перекрестной проверки» для более ранней асимптотической теории в случае линейной регрессии. Ян (2007), «Согласованность перекрестной проверки для сравнения процедур регрессии» и Ян (2006), «Сравнение методов обучения для классификации» дают асимптотическую теорию для более общих проблем регрессии и классификации. Но строгий совет конечного образца трудно найти.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.