Мне интересно, знает ли кто-нибудь сборник методов перекрестной проверки с обсуждением различий между ними и руководством о том, когда использовать каждый из них. В Википедии есть список наиболее распространенных техник, но мне любопытно, есть ли другие техники и есть ли таксономии для них.
Например, я просто наткнулся на библиотеку, которая позволяет мне выбрать одну из следующих стратегий:
- Протяни
- начальная загрузка
- K Перекрестная проверка
- Оставь один
- Стратифицированная перекрестная проверка
- Сбалансированная стратифицированная перекрестная проверка
- Многослойный Выдержать
- Многослойная Бутстрап
и я пытаюсь понять, что стратифицированные и сбалансированные означают в начальной загрузке, продержаться или резюме.
Мы также можем превратить этот пост в вики сообщества, если захотят, и собрать обсуждение методов или таксономий здесь.
cross-validation
оборота user815423426
источник
источник
Ответы:
Вы можете добавить в этот список:
У меня нет особых советов относительно того, как использовать эти методы или когда их использовать. Вы можете использовать пакет caret в R, чтобы сравнить перекрестную проверку CV, Boot, Boot632, «оставь один, выйди из группы» и «вне сумки».
В общем, я обычно использую надстройку, потому что она менее требовательна к вычислительным ресурсам, чем повторное CV в k-кратном формате, или CV с пропуском одного раза. Boot632 - мой алгоритм выбора, потому что он не требует гораздо больших вычислений, чем начальная загрузка, и в некоторых ситуациях показал, что он лучше, чем перекрестная проверка или базовый загрузчик.
Я почти всегда использую оценки ошибок из пакета для случайных лесов, а не перекрестную проверку. Ошибки из пакета обычно беспристрастны, и случайные леса занимают достаточно много времени, чтобы вычислить как есть.
источник
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 - убедиться, что вы не проверяете данные, на которых вы тренировались, поэтому вы получаете более реалистичное представление о том, как ваша техника + коэффициенты могут работать в реальном мире.)
РЕДАКТИРОВАТЬ: Заменить «Удержание не является эффективным» с «Удержание не позволяет эффективно использовать ваши данные», чтобы помочь разъяснить, в соответствии с комментариями.
источник
Я нашел одну из ссылок, на которые есть ссылки в статье в Википедии, весьма полезной
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.48.529&rep=rep1&type=pdf
«Исследование перекрестной проверки и начальной загрузки для оценки точности и выбора модели», Рон Кохави, IJCAI95
Он содержит эмпирическое сравнение для подмножества методов CV. Версия tl; dr в основном "использует 10-кратное резюме".
источник
К сожалению, эта проблема сложнее, чем кажется. Существует как минимум 2 основных способа перекрестной проверки: выбор модели и оценка производительности модели.
Грубо говоря, если вы используете вариант CV, который разделяет данные с использованием высокого соотношения поезд / тест, это может быть лучше для оценки. Использование большего тренировочного набора будет более точно имитировать производительность подгонки модели к полному набору данных.
Но высокое соотношение поезд-тест может быть хуже для выбора. Представьте, что действительно есть «лучшая» модель, которую вы «должны» выбрать, но ваш набор данных довольно большой. Тогда слишком большие модели, которые слегка подгоняются, будут иметь почти такую же производительность CV, как и «лучшая» модель (потому что вы будете успешно оценивать их паразитные параметры как незначительные). Случайность в данных и процедура CV / расщепления часто заставляют вас выбирать подходящую модель вместо действительно «лучшей» модели.
См. Shao (1993), «Выбор линейной модели путем перекрестной проверки» для более ранней асимптотической теории в случае линейной регрессии. Ян (2007), «Согласованность перекрестной проверки для сравнения процедур регрессии» и Ян (2006), «Сравнение методов обучения для классификации» дают асимптотическую теорию для более общих проблем регрессии и классификации. Но строгий совет конечного образца трудно найти.
источник