Перекрестная проверка и улучшение - PullRequest
0 голосов
/ 08 марта 2020

Мне было интересно, как процесс перекрестной проверки может улучшить модель. Я совершенно новичок в этой области и стремлюсь учиться. Я понял принцип перекрестной проверки, но не понимаю, как это улучшает модель. Скажем, модель делится на 4 раза, чем если бы я тренировал свою модель на 3 первых четвертых и проверял на последней, модель будет хорошо тренироваться. Но когда я повторяю этот шаг, обучая модель на последних 3-х четвертых и тестируя на первом, большинство обучающих данных уже «проверено» моделью? Модель не улучшится с данными, уже виденными, верно? Является ли это «средним» для моделей, созданных с использованием различных наборов обучающих данных?

Заранее спасибо за потраченное время!

Ответы [ 2 ]

0 голосов
/ 09 марта 2020

Перекрестная проверка на самом деле не улучшает модель, но помогает точно оценить ее производительность.

Допустим, в начале обучения вы делите свои данные на 80% обучающих и 20% тестовых наборов. Затем вы тренируетесь на указанных 80%, тестируете на 20% и получаете показатель производительности c.

Проблема заключается в том, что при разделении данных в начале вы делали это, мы надеемся, случайно или иначе произвольно, и в результате полученная вами производительность модели каким-то образом зависит от генератора псевдослучайных чисел, который вы ' Мы использовали или ваше суждение.

Таким образом, вместо этого вы делите свои данные, например, на 5 случайных равных множеств. Затем вы берете набор 1, откладываете его в сторону, тренируетесь на наборах 2-5, тестируете набор 1 и записываете метрику производительности c. Затем вы откладываете набор 2 и тренируете свободную sh (не обученную) модель на наборах 1, 3-5, проверяете набор 2, записываете метри c и т. Д.

После 5 У вас будет 5 показателей производительности. Если вы возьмете их среднее (наиболее подходящее), это будет лучшим представлением производительности вашей модели, потому что вы «усредняете» случайные эффекты разделения данных.

Я думаю, это хорошо объясняется в это блог с некоторым кодом в Python.

0 голосов
/ 08 марта 2020

С 4-кратной перекрестной проверкой вы эффективно тренируете 4 разные модели. Между моделями нет зависимости, и одна не тренируется поверх другой.

То, что произойдет позже, зависит от реализации. Обычно вы можете получить доступ ко всем обученным моделям, и вам остается, что с этим делать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...