Мой вопрос: должен ли я делать резюме даже для относительно большого набора данных?
У меня относительно большой набор данных, и я буду применять алгоритм машинного обучения для набора данных.
Так как мой компьютер не быстрый, CV (и поиск по сетке) иногда занимает слишком много времени. В частности, SVM никогда не заканчивается из-за большого количества параметров настройки. Таким образом, если я делаю резюме, то мне нужно выбрать относительно небольшие данные.
С другой стороны, набор проверки должен быть также большим, поэтому я думаю, что было бы неплохо использовать набор проверки, который имеет тот же (или больший) размер, что и обучающий набор. (А именно вместо CV я использую большой набор проверки для настройки параметров.)
Так что теперь у меня есть как минимум два варианта.
- сделать резюме на небольшой набор данных.
- используйте относительно большой обучающий набор и проверочный набор без резюме.
- другая идея.
Какая самая лучшая идея? Теоретические или практические мнения приветствуются.
источник
Ответы:
В общем, вам не нужно постоянно использовать перекрестную проверку. Цель CV - получить более стабильную оценку обобщения вашего классификатора, которую вы получили бы, используя только один набор тестов. Вам не нужно использовать CV, если ваш набор данных огромен, поэтому добавление данных в ваш обучающий набор не сильно улучшит вашу модель, и несколько ошибочных классификаций в вашем тестовом наборе по случайной случайности не изменит вашу метрику производительности. ,
Имея небольшой тренировочный набор и большой набор тестов, ваша оценка будет предвзятой. Таким образом, это, вероятно, будет хуже, чем то, что вы получите, используя больше обучающих данных и оптимальные гиперпараметры, которые, как вы обнаружили, могут отличаться для большего набора данных, просто потому, что больше данных потребует меньше регуляризации.
Однако получение оптимальных гиперпараметров в любом случае не является важной частью, и это не приведет к значительному повышению производительности. Вы должны сосредоточить свою энергию на понимании проблемы, создании хороших функций и получении данных в хорошем состоянии.
Вот несколько вещей, которые вы можете рассмотреть, чтобы ускорить процесс:
и даже с более медленным компьютером вы можете:
источник
Перекрестная проверка - это инструмент для оценки дисперсии вашей метрики производительности из-за случайности в данных (и, возможно, в алгоритме обучения, если он не является детерминированным).
Таким образом, если вы используете только один сплит, например, тест 80% тренинга + 20% и сообщаете о своей метрике производительности из этого одного эксперимента, есть хорошие шансы, что любой, кто попытается воспроизвести ваш эксперимент с использованием точно таких же параметров, найдет другую цифру производительности (иногда очень другой). Если, конечно, вы не предоставите тот же точный раскол, который не имеет смысла.
Чтобы вернуться к вашему вопросу, я думаю, что вы обязательно должны использовать CV, чтобы сообщить о своей эффективности (например, сделать 10-кратное резюме и сообщить среднее и стандартное отклонение показателя производительности). Теперь для настройки вашего алгоритма вы можете использовать гораздо меньший проверочный набор, выбранный из обучающего набора (убедитесь, что он не включен в тестовый набор).
Если вы боитесь, что вы не найдете лучшие гиперпараметры с использованием небольшого набора, вы, вероятно, подгоните свой алгоритм к специфике набора данных. Если вы не можете найти конфигурацию с использованием небольшой выборки, которая дает приемлемую производительность среди всех сгибов, то алгоритм, вероятно, не очень полезен на практике.
Также имейте в виду, что некоторые алгоритмы слишком медленны / плохо масштабируются в некоторых конфигурациях. Это также часть практического выбора модели.
Поскольку вы упоминаете SVM, конечно, большинство реализаций будет медленным при попытке найти параметры для нелинейных ядер с помощью поиска по сетке. Поиск по сетке имеет экспоненциальную сложность, поэтому используйте его с очень небольшим количеством параметров. Также имейте в виду, что большинство библиотек предоставляют разумные параметры по умолчанию (или, по крайней мере, вы устанавливаете один параметр, а для других задаются эвристики).
источник