Баннер мобильный (3) Пройти тест

Что такое кросс-валидация: объясняем на котиках

Зачем нужна перекрестная проверка и как ее проводят

Разбор

24 июля 2024

Поделиться

Скопировано
Что такое кросс-валидация: объясняем на котиках

Содержание

    Нейросети знают ответ на любой вопрос, могут выдать прогноз погоды и даже помочь советом в трудной ситуации. Но почему мы так уверены, что они нас не обманывают? Потому что есть надежные системы проверки, например кросс-валидация. Что это такое и как работает — объясняем на котиках.

    Как работает машинное обучение 

    Machine Learning — процесс создания и обучения компьютерных систем. В обычном программировании компьютер принимает решение согласно прописанному заранее алгоритму. В машинном обучении он действует почти как человек: анализирует данные, прошлый опыт, ищет закономерности и дает наиболее вероятный ответ или прогноз. 

    Чтобы создавать и обучать компьютерные системы, используют методы математической статистики, матанализа, теорию вероятностей, теории графов. При этом разработчик не дает четкие инструкции, которые учитывают все возможные комбинации. Поиск решений и классификацию объектов машина проводит самостоятельно. 

    Яркий пример использования машинного обучения — распознавание объектов по камерам видеонаблюдения или по фото.

    Инфографика, как работает машинное обучение
    Как происходит машинное обучение. Источник

    Что такое кросс-валидация

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

    Если мы используем все данные на обучение, то в момент предсказания нам придется проверять модель на тех же данных, на которых она обучалась. Такой способ оценки не показательный, модель будет предсказывать намного лучше, чем в боевых условиях. Чтобы повысить качество проверки, используют кросс-валидацию — данные разделяют на тестовую и обучающую выборку. В этом случае оценка качества модели получается более достоверной, так как алгоритм проверяют на тех данных, которые он еще не видел.

    Ольга Белоглазова,
    специалист по ML и DA,
    ментор Skillfactory по направлению DS и DA.

    Пример кросс-валидации

    Представьте, у нас есть данные о длине шерсти и хвостов у 50 кошек. Мы хотим научить ИИ определять породу животных по этим параметрам. Можно разделить данные на несколько частей, например на пять. Тогда первые 40 кошек будут использоваться для обучения (группы Train), а оставшиеся 10 —  для контрольного теста (группа Test).

    Этот процесс повторяется несколько раз, чтобы каждая из частей выступила и в роли и Train, и в роли Test. В конце выводится средняя оценка. Это помогает понять, как хорошо модель справляется с задачей, а также сравнить результаты нескольких моделей и выбрать лучшую.

    Инфографика как работает кросс-валидация
    Деление данных на группы при кросс-валидации. Источник

    Типы кросс-валидации

    Выделяют несколько типов перекрестной проверки:

    • Валидация на отложенных данных (Hold-Out Cross-Validation)

    Самый простой способ: данные делят на тренировочные и тестовые. Первые используются для обучения модели, а тестовые — для оценки производительности. 

    Кросс-валидация Hold-Out — это универсальная быстрая проверка. Мы делим данные на Train и Test, чтобы посмотреть предварительные результаты оценки модели. И далее принимаем решение о замене модели или ее доработке. Но если видим, что данных для обучения мало или, наоборот, система переобучается, то применяем более сложные методы кросс-валидации.

    Ольга Белоглазова,
    специалист по ML и DA,
    ментор Skillfactory по направлению DS и DA.
    • K-блочная кросс-валидация (K-Fold Cross-Validation)

    Данные делятся на несколько равных частей (К): одна используется для проверки, остальные — для обучения. Процесс повторяется столько раз, на сколько частей мы поделили данные. Каждый блок должен быть использован как тестовый набор.

    После окончания обучения результаты тестов приводят к среднему значению. Это позволяет получить более надежную оценку производительности.

    • Стратифицированная K-блочная кросс-валидация (Stratified K-Fold Cross-Validation)

    Проводится аналогично K-блочной кросс-валидации, но с учетом пропорции классов в каждом блоке. Используется, когда данные имеют несбалансированные классы. Например, 80% примеров относятся к классу A (кошки женского пола), а 20% — к классу B (коты мужского пола). Мы разбиваем данные на группы таким образом, чтобы каждый блок содержал одинаковое количество примеров каждого класса (8 кошек и 2 кота).

    • Оставить-P-выборок (Leave-P-Out Cross-Validation)

    При этом типе валидации в каждой итерации из датасета удаляется P объектов для тестирования, например два, а остальные используются для обучения. Если P = 2, то 48 примеров мы используем для обучения, а 2 оставим для проверки. Процесс повторяется со всеми возможными комбинациями.

    Метод P-Out относится к исчерпывающим, когда нужно получить более точную оценку надежности модели, например в ветеринарии для определения болезни животного. Однако этот метод довольно увесистый в плане системных требований и времени, так как создает все возможные комбинации, используя Р записей для тестового набора.

    Ольга Белоглазова,
    специалист по ML и DA,
    ментор Skillfactory по направлению DS и DA.
    • Кросс-валидация на временных рядах (Time Series Cross-Validation)

    В отличие от обычной K-блочной кросс-валидации, где данные делятся случайным образом на обучающие и тестовые группы, здесь учитывается их временная структура. Например, график температуры в Москве с 1780 до 2021 года — на основе этих данных система может дать прогноз, какой будет погода в следующем году или через пять лет.

    График температуры в Москве с 1780 года. Источник

    Главная сложность кросс-валидации на временных рядах в том, что данные не должны пересекаться по времени: тренировочные данные должны идти строго до тестовых. Например, чтобы оценить, как модель предскажет погоду на 2001 год, можно брать для обучения все данные с 1974 до 2000 года. 

    Пример кросс-валидации на временных рядах
    Кросс-валидация на временных рядах. Источник

    Главное о кросс-валидации

    Cross-Validation — это инструмент в аналитике и машинном обучении, с помощью которого проверяют производительность модели и оценить, насколько хорошо она справляется с поставленной задачей.

    При кросс-валидации данные делятся на несколько частей, часть из которых используется обучения, а оставшаяся часть — для проверки. Это позволяет получить надежную оценку, так как для проверки используются данные, которые модель еще не видела.

    Основная проблема большинства методов кросс-валидации — это вычислительная сложность. Можно провести быструю проверку, один раз разделив данные на Train и Test. Но когда мы повторяем этот процесс N раз, это требует гораздо больших ресурсов — и временных, и системных. Если данных слишком много или модель довольно сложная, такой метод может занять много времени, что в реальной жизни не всегда удобно. Но чтобы получить стабильный результат и адекватно оценить модель, без кросс-валидации не обойтись. Особенно если данных мало или модель уходит в переобучение. В этом случае модель подстраивается под тренировочные данные и на тесте показывает худший результат. Поэтому самое важное — правильно выбрать метод кросс-валидации, который будет оптимальным по ресурсам и результату.

    Ольга Белоглазова,
    специалист по ML и DA,
    ментор Skillfactory по направлению DS и DA.

    Разбор

    Поделиться

    Скопировано
    0 комментариев
    Комментарии