Я использую в -кратной перекрестной проверки несколько раз сейчас , чтобы оценить производительность некоторых алгоритмов обучения, но я всегда был озадачен о том , как я должен выбрать значение .К
Я часто видел и использовал значение , но мне это кажется совершенно произвольным, и теперь я просто использую по привычке, а не думаю об этом. Мне кажется, что вы получаете лучшую гранулярность по мере того, как улучшаете значение , поэтому в идеале вы должны сделать свой очень большим, но есть и риск быть предвзятым.10 К К
Я хотел бы знать, от чего должно зависеть значение , и как я должен думать об этом, когда я оцениваю свой алгоритм. Изменит ли это что-то, если я использую стратифицированную версию перекрестной проверки или нет?
machine-learning
classification
cross-validation
Чарльз Менгу
источник
источник
Ответы:
Выбор несколько произвольный. Вот как я решаю k :k=10 k
Прежде всего, чтобы уменьшить дисперсию результата CV, вы можете и должны повторять / повторять CV с новыми случайными разбиениями.k
Это делает аргумент высокого => большего времени вычислений в значительной степени неактуальным, так как вы все равно хотите вычислить много моделей. Я склонен думать в основном об общем количестве рассчитанных моделей (по аналогии с начальной загрузкой). Таким образом, я могу выбрать 100 х 10-кратное резюме или 200 х 5-кратное резюме.
@ogrisel уже объяснил, что обычно большие означают меньшее (пессимистическое) смещение. (Некоторые исключения известны, в частности, для k = n , то есть оставляют один).k k=n
Если возможно, я использую который является делителем размера выборки или размера групп в выборке, которые должны быть стратифицированы.k
Слишком большое означает, что возможно только небольшое количество комбинаций выборок, что ограничивает количество итераций, которые различаются.К
Эти мысли имеют больший вес при малых размерах выборки. С большим количеством доступных образцов не имеет большого значения. Возможное количество комбинаций вскоре становится достаточно большим, поэтому, скажем, 100 итераций 10-кратного CV не рискуют стать дубликатами. Кроме того, большее количество обучающих выборок обычно означает, что вы находитесь на более плоской части кривой обучения, поэтому разница между суррогатными моделями и «реальной» моделью, обученной по всем n выборкам, становится незначительной.К N
источник
Чем больше K, тем меньше уклон в сторону переоценки истинной ожидаемой ошибки (так как тренировочные сгибы будут ближе к общему набору данных), но более высокая дисперсия и большее время выполнения (по мере того, как вы приближаетесь к предельному случаю: Leave-One-Out CV).
Если наклон кривой обучения достаточно плоский при training_size = 90% от общего набора данных, то смещение можно игнорировать и K = 10 является разумным.
Кроме того, более высокое K даст вам больше выборок для оценки более точного доверительного интервала по вашей оценке (с использованием либо параметрической стандартной ошибки, предполагающей нормальность распределения ошибок теста CV, либо непараметрической начальной загрузки CI, которая просто делает предположение iid, что на самом деле не очень верно как CV складки не являются независимыми друг от друга).
Изменить: недооценка => завышение истинной ожидаемой ошибки
Изменить: часть этого ответа о более высоких дисперсиях для больших K или LOOCV, вероятно, неправильно (не всегда верно). Более подробно с симуляциями в этом ответе: Смещение и отклонение в проверке перекрестного смещения по принципу « один-на-один» (спасибо Ксавье Бурре Сикотту за эту работу).
источник
Я не знаю, как
K
влияет на точность и обобщение, и это может зависеть от алгоритма обучения, но это определенно влияет на вычислительную сложность почти линейно (асимптотически, линейно) для алгоритмов обучения с алгоритмической сложностью, линейной по числу обучающих экземпляров. Вычислительное время для обучения увеличивается вK-1
разы, если время обучения является линейным по количеству обучающих экземпляров. Поэтому для небольших тренировочных наборов я бы рассмотрел аспекты точности и обобщения, особенно учитывая, что нам нужно извлечь максимальную пользу из ограниченного числа учебных примеров.Однако для больших обучающих наборов и алгоритмов обучения с высокой асимптотической вычислительной сложностью возрастает число обучающих экземпляров (по крайней мере, линейных), я просто выбираю,
K=2
чтобы не увеличивать вычислительное время для обучающего алгоритма с асимптотической сложностью, линейной по числу. учебных экземпляров.источник
Решение:
Комментарий: Мы также можем выбрать 20% вместо 30%, в зависимости от размера, который вы хотите выбрать в качестве тестового набора.
Пример:
Если размер набора данных: N = 1500; К = 1500/1500 * 0,30 = 3,33; Мы можем выбрать значение К как 3 или 4
Примечание:
Большое значение K в перекрестной проверке, связанной с отсутствием одного, может привести к чрезмерной подгонке. Небольшое значение K в перекрестной проверке, связанной с пропуском, может привести к недостаточной подгонке.
Подход может быть наивным, но все же лучше, чем выбрать k = 10 для набора данных разных размеров.
источник