Перекрестная проверка: K-кратная и повторная случайная выборка

10

Интересно, какой тип перекрестной проверки модели выбрать для задачи классификации: K-кратная или случайная суб-выборка (выборка с начальной загрузкой)?

Мое лучшее предположение - использовать 2/3 набора данных (который составляет ~ 1000 элементов) для обучения и 1/3 для проверки.

В этом случае K-fold дает только три итерации (сгиба), чего недостаточно, чтобы увидеть стабильную среднюю ошибку.

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

Используемые алгоритмы классификации: случайный лес и логистическая регрессия.

IharS
источник
1
Я предполагаю, что предыдущий вопрос: не зависит ли этот выбор от алгоритма (в основном от его поведения), который оценивается?
Рубенс
1
@Rubens, я обновил вопрос: я
заинтересован
К
Франк Дернонкур

Ответы:

7

Если у вас есть достаточное количество выборок и вы хотите использовать все данные, тогда вам нужно пройти перекрестную проверку в k-кратном порядке. Иметь ~ 1500 - это много, но то, подходит ли оно для перекрестной проверки в k-кратном размере, также зависит от размерности данных (количества атрибутов и количества значений атрибутов). Например, если каждое наблюдение имеет 100 атрибутов, то 1500 наблюдений являются низкими.

Другим потенциальным недостатком перекрестной проверки в k-кратном размере является возможность единственного, экстремального отклонения результатов. Например, если у вас есть один экстремальный выброс, который может сильно сместить ваш классификатор, то при 10-кратной перекрестной проверке будут затронуты 9 из 10 разделов (хотя для случайных лесов я не думаю, что у вас возникнет эта проблема ).

Случайная выборка (например, выборка с начальной загрузкой) предпочтительна, если у вас недостаточно выборки или если у вас есть ситуация выше, когда вы не хотите, чтобы каждое наблюдение появлялось в k-1 сгибах.

bogatron
источник
4

Я предполагаю, что вы говорите, что хотите использовать трехкратную перекрестную проверку, потому что вы знаете что-то о своих данных (что использование k = 10 может привести к переобучению? Мне любопытно ваше рассуждение). Я не уверен, что вы это знаете, если нет, то вы можете просто использовать большее k.

Если вы все еще думаете, что не можете использовать стандартную перекрестную проверку в k-кратном порядке, вы можете немного изменить алгоритм: скажем, что вы разбили данные на 30 сгибов и каждый раз использовали 20 для обучения и 10 для оценки (а затем сдвигали вверх один раз и используйте первые и последние 9 в качестве оценки, а остальные в качестве обучения). Это означает, что вы можете использовать все свои данные.

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

Rhand
источник