Как создать k-кратный перекрестный проверочный тест?

У меня есть данные от датчика загрязнения, которые я хочу проверить. Я сравниваю это с данными из londonair.org.uk, чтобы сравнить это. Я создал простую модель линейной регрессии с данными моего датчика по оси X и данными Londonair по оси Y и смог получить простую модель (в виде y=mx + c). Мой профессор попросил меня проверить модель, используя перекрестную проверку по k-кратному критерию, но я не уверен, как это сделать.

В чем я не уверен, так это в каком наборе данных для выполнения теста. Должно ли это быть на необработанных данных, взятых с датчика, или я должен взять данные, рассчитанные с помощью регрессионной модели?

1 ответ

Решение

Мини-введение в перекрестную проверку K-Fold

Перекрестная проверка K-Fold разделяет набор обучающих данных на k различных равных участков, также известных как "сгибы". Каждый фолд по очереди считается тестовым набором (также известным как "набор валидации"), в то время как остальные k - 1 блоки становятся тренировочным набором. Модель обучается путем итерации по k - 1 блокам и тестирует полученную модель в блоке набора проверок, где измеряется некоторая метрика, например, точность, стандартное отклонение и т. Д. Процесс повторяется k раз, после чего среднее значение всех оценок модели рассчитывается для определения итоговой оценки модели.

Подводя итог, K-кратная перекрестная проверка может быть достигнута в следующие шаги:

Перемешать случайным образом начальный набор данных.

  1. Разбить данные на k сгибов.
  2. Для каждого сгиба:

    (a) Установите первый сгиб в качестве набора данных тестирования.

    (b) Установите оставшиеся сгибы в качестве набора тренировочных данных.

    (c) Используйте обучающий набор для развития модели и используйте модель для оценки набора данных тестирования.

    (г) Повторите k раз.

  3. Вычислить среднее из оценок модели для k тестов оценки набора данных.

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

Конкретно ваш случай

У вас есть данные с метками, каждый из которых представляет собой "пару": данные о загрязнении -> данные londonair. Допустим, у вас есть 100 уникальных пар - вы должны добавить, например, 80 таких пар в свою модель для обучения (если значение загрязнения необработанных данных a , лондонский лейбл b), а остальные 20 вы бы использовали для проверки - вы подаете в модель данные о загрязнении и проверяете, что модель возвращает правильную метку данных londonair, соответствующую данным о загрязнении (если значение загрязнения необработанных данных равно a какой должна быть этикетка в соответствии с моделью?). Повторите процесс, как описано выше во введении, затем усредните результаты, и это будет отражать точность вашей модели.

Другие вопросы по тегам