Выбор K в K-кратной перекрестной проверке

136

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

Я часто видел и использовал значение , но мне это кажется совершенно произвольным, и теперь я просто использую по привычке, а не думаю об этом. Мне кажется, что вы получаете лучшую гранулярность по мере того, как улучшаете значение , поэтому в идеале вы должны сделать свой очень большим, но есть и риск быть предвзятым.10 К ККзнак равно1010КК

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

Чарльз Менгу
источник

Ответы:

69

Выбор несколько произвольный. Вот как я решаю k :Кзнак равно10К

  • Прежде всего, чтобы уменьшить дисперсию результата CV, вы можете и должны повторять / повторять CV с новыми случайными разбиениями.
    Это делает аргумент высокого => большего времени вычислений в значительной степени неактуальным, так как вы все равно хотите вычислить много моделей. Я склонен думать в основном об общем количестве рассчитанных моделей (по аналогии с начальной загрузкой). Таким образом, я могу выбрать 100 х 10-кратное резюме или 200 х 5-кратное резюме.К

  • @ogrisel уже объяснил, что обычно большие означают меньшее (пессимистическое) смещение. (Некоторые исключения известны, в частности, для k = n , то есть оставляют один).ККзнак равноN

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

  • Слишком большое означает, что возможно только небольшое количество комбинаций выборок, что ограничивает количество итераций, которые различаются.К

    • Для увольнения: различные комбинации модели / тестового образца. Итерации вообще не имеют смысла.(N1)знак равноNзнак равноК
    • Например, и k = 10 : ( n = 20Nзнак равно20Кзнак равно10различные комбинации модели / тестового образца. Вы можете рассмотреть возможность прохождения всех возможных комбинаций здесь, так как 19 итерацийk-кратного CV или 190 моделей не очень много.(Nзнак равно202)знак равно190знак равно19КК
  • Эти мысли имеют больший вес при малых размерах выборки. С большим количеством доступных образцов не имеет большого значения. Возможное количество комбинаций вскоре становится достаточно большим, поэтому, скажем, 100 итераций 10-кратного CV не рискуют стать дубликатами. Кроме того, большее количество обучающих выборок обычно означает, что вы находитесь на более плоской части кривой обучения, поэтому разница между суррогатными моделями и «реальной» моделью, обученной по всем n выборкам, становится незначительной.КN

cbeleites
источник
6
(+1) для уточнения, но (-1) для количества повторений резюме. Это правда, что риск создания точных дубликатов (с учетом идентификаторов наблюдений) невелик (учитывая достаточно данных и т. Д.), Но риск создания дубликатов структуры / структуры данных очень высок. Я бы не повторял резюме более 10 раз, независимо от того, что такое k ... просто, чтобы избежать недооценки дисперсии.
Штеффен
3
@steffen, разве на это уже не указал Огрисел: что (суррогатные) модели на самом деле не независимы? Я полностью согласен, что это так. На самом деле, я пытаюсь принять это во внимание, интерпретируя результаты с точки зрения стабильности (суррогатных) моделей по отношению к. обмен "несколькими" образцами (которые я не хотел здесь подробно описывать, но смотрите, например, stats.stackexchange.com/a/26548/4598 ). И я не вычислить стандартную ошибку, а сообщить , например , медиану и до 95 т ч процентиля наблюдаемых ошибок более итераций. Я отправлю отдельный вопрос об этом. 5Tчас95Tчас
cbeleites
2
Понимаю. Я согласен с тем, что подход справедлив для оценки стабильности суррогата. Я вспомнил о статистическом тесте для определения того, превосходит ли одна модель другую. Слишком частое повторение cv непредсказуемо увеличивает вероятность альфа-ошибки. Так что я путает внутреннее с внешней проверкой (как Dikran поставил его здесь ).
Штеффен
2
@cbeleites: я согласен с тобой. Дисперсия из-за ограниченного размера выборки обычно доминирует над неопределенностью модели.
jpcgandre
2
@jpcgandre: По крайней мере, для ошибок классификации, таких как чувствительность, специфичность и т. д., можно рассчитать неопределенность из-за общего количества проверенных случаев. Хотя это правда, что это только часть общей дисперсии, по крайней мере, в ситуациях, с которыми я сталкиваюсь в своей работе, эта неопределенность часто настолько велика, что даже приблизительного предположения достаточно, чтобы прояснить, что выводы строго ограничены. И это ограничение остается, оно не исчезнет, ​​если использовать перекрестную проверку в 10 раз вместо 50x 8-кратных или 80-кратных 5-кратных.
cbeleites
37

Чем больше K, тем меньше уклон в сторону переоценки истинной ожидаемой ошибки (так как тренировочные сгибы будут ближе к общему набору данных), но более высокая дисперсия и большее время выполнения (по мере того, как вы приближаетесь к предельному случаю: Leave-One-Out CV).

Если наклон кривой обучения достаточно плоский при training_size = 90% от общего набора данных, то смещение можно игнорировать и K = 10 является разумным.

Кроме того, более высокое K даст вам больше выборок для оценки более точного доверительного интервала по вашей оценке (с использованием либо параметрической стандартной ошибки, предполагающей нормальность распределения ошибок теста CV, либо непараметрической начальной загрузки CI, которая просто делает предположение iid, что на самом деле не очень верно как CV складки не являются независимыми друг от друга).

Изменить: недооценка => завышение истинной ожидаемой ошибки

Изменить: часть этого ответа о более высоких дисперсиях для больших K или LOOCV, вероятно, неправильно (не всегда верно). Более подробно с симуляциями в этом ответе: Смещение и отклонение в проверке перекрестного смещения по принципу « один-на-один» (спасибо Ксавье Бурре Сикотту за эту работу).

ogrisel
источник
1
КNКNК
6
Под дисперсией я подразумеваю дисперсию предполагаемой ожидаемой погрешности теста, полученную путем взятия медианы или среднего значения ошибок сгиба CV относительно «истинного распределения», а не поперек сгибов CV. Когда k большое, вы ближе к LOO-CV, который очень зависит от конкретного обучающего набора, который у вас под рукой: если количество выборок невелико, оно может быть не таким репрезентативным для истинного распределения, как следствие, дисперсии. Когда k большое, k-кратное CV может моделировать такие произвольные жесткие выборки обучающего набора.
огрисел
8
В дополнение: Кохави изучает компромиссную дисперсию в валидации в главе 3 своей кандидатской диссертации . Я очень рекомендую это.
Штеффен
3
КККК
Да, я думаю, что это правильная интуиция.
Огризель
0

Я не знаю, как Kвлияет на точность и обобщение, и это может зависеть от алгоритма обучения, но это определенно влияет на вычислительную сложность почти линейно (асимптотически, линейно) для алгоритмов обучения с алгоритмической сложностью, линейной по числу обучающих экземпляров. Вычислительное время для обучения увеличивается в K-1разы, если время обучения является линейным по количеству обучающих экземпляров. Поэтому для небольших тренировочных наборов я бы рассмотрел аспекты точности и обобщения, особенно учитывая, что нам нужно извлечь максимальную пользу из ограниченного числа учебных примеров.

Однако для больших обучающих наборов и алгоритмов обучения с высокой асимптотической вычислительной сложностью возрастает число обучающих экземпляров (по крайней мере, линейных), я просто выбираю, K=2чтобы не увеличивать вычислительное время для обучающего алгоритма с асимптотической сложностью, линейной по числу. учебных экземпляров.

Серж Рогач
источник
-6

Решение:

K = N/N*0.30
  • N = размер набора данных
  • K = сложить

Комментарий: Мы также можем выбрать 20% вместо 30%, в зависимости от размера, который вы хотите выбрать в качестве тестового набора.

Пример:

Если размер набора данных: N = 1500; К = 1500/1500 * 0,30 = 3,33; Мы можем выбрать значение К как 3 или 4

Примечание:

Большое значение K в перекрестной проверке, связанной с отсутствием одного, может привести к чрезмерной подгонке. Небольшое значение K в перекрестной проверке, связанной с пропуском, может привести к недостаточной подгонке.

Подход может быть наивным, но все же лучше, чем выбрать k = 10 для набора данных разных размеров.

Субхаш Раджагопал
источник
4
NN0,3знак равно10,33,33знак равносоNsT,
K = N / N * 0,3 = 10/3, что является постоянной величиной. Поэтому не логично использовать это значение для каждого условия.
Камаль Тхапа