Как создать k-кратный перекрестный проверочный тест?
У меня есть данные от датчика загрязнения, которые я хочу проверить. Я сравниваю это с данными из londonair.org.uk, чтобы сравнить это. Я создал простую модель линейной регрессии с данными моего датчика по оси X и данными Londonair по оси Y и смог получить простую модель (в виде y=mx + c). Мой профессор попросил меня проверить модель, используя перекрестную проверку по k-кратному критерию, но я не уверен, как это сделать.
В чем я не уверен, так это в каком наборе данных для выполнения теста. Должно ли это быть на необработанных данных, взятых с датчика, или я должен взять данные, рассчитанные с помощью регрессионной модели?
1 ответ
Мини-введение в перекрестную проверку K-Fold
Перекрестная проверка K-Fold разделяет набор обучающих данных на k различных равных участков, также известных как "сгибы". Каждый фолд по очереди считается тестовым набором (также известным как "набор валидации"), в то время как остальные k - 1 блоки становятся тренировочным набором. Модель обучается путем итерации по k - 1 блокам и тестирует полученную модель в блоке набора проверок, где измеряется некоторая метрика, например, точность, стандартное отклонение и т. Д. Процесс повторяется k раз, после чего среднее значение всех оценок модели рассчитывается для определения итоговой оценки модели.
Подводя итог, K-кратная перекрестная проверка может быть достигнута в следующие шаги:
Перемешать случайным образом начальный набор данных.
- Разбить данные на k сгибов.
Для каждого сгиба:
(a) Установите первый сгиб в качестве набора данных тестирования.
(b) Установите оставшиеся сгибы в качестве набора тренировочных данных.
(c) Используйте обучающий набор для развития модели и используйте модель для оценки набора данных тестирования.
(г) Повторите k раз.
Вычислить среднее из оценок модели для k тестов оценки набора данных.
Вы проверяете свою модель, то есть пытаетесь понять, насколько хорошо ваша модель смогла уловить основные шаблоны и отношения в ваших необработанных данных - поэтому данные, которые вы используете для обучения, будут вашими необработанными данными (обучение означает, что вы вводить его в вашу модель, чтобы он мог учиться), в то время как данные проверки - это данные, которые вы вводите в свою модель, чтобы увидеть, насколько хорошо она усвоила обучающие данные. Основная идея перекрестной проверки в k-кратном виде состоит не в том, чтобы проверять модель на данных, которые она уже видела во время обучения.
Конкретно ваш случай
У вас есть данные с метками, каждый из которых представляет собой "пару": данные о загрязнении -> данные londonair. Допустим, у вас есть 100 уникальных пар - вы должны добавить, например, 80 таких пар в свою модель для обучения (если значение загрязнения необработанных данных a
, лондонский лейбл b
), а остальные 20 вы бы использовали для проверки - вы подаете в модель данные о загрязнении и проверяете, что модель возвращает правильную метку данных londonair, соответствующую данным о загрязнении (если значение загрязнения необработанных данных равно a
какой должна быть этикетка в соответствии с моделью?). Повторите процесс, как описано выше во введении, затем усредните результаты, и это будет отражать точность вашей модели.