Распространенные решения, распространенные ошибки: настройка моделей на ваши данные

Четыре ловушки, на которые следует обратить внимание при использовании популярных решений машинного обучения для ваших данных

Допустим, вы хотите обучить классификатор. Вы с радостью применяете популярный учебник, который вы нашли, к вашему набору данных, но разочаровываетесь, когда видите результаты: ваша модель работает плохо. Вы выполнили все шаги реализации, но популярное решение вас не устроило.
Что вы делаете, когда популярное решение в стиле учебника не работает для вашего конкретного варианта использования?

Почему бы не начать с изучения ваших данных?

Проблема с решениями в стиле учебника заключается в том, что большинство из них предполагают, что ваш набор данных подобен набору данных, который они используют. Эндрю Нг, основатель DeepLearning.AI, недавно ввел термин ИИ, ориентированный на данные [1]. Ориентированный на данные подход требует уделять больше внимания вашим данным, чтобы повысить точность ваших моделей машинного обучения. Этот подход становится еще более важным при использовании стандартных решений, так как помогает избежать некоторых распространенных ошибок.

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

Ошибка № 1: случайное назначение обучающих и тестовых наборов

Классическое, полезное предложение — разделить ваши данные на обучение и тестирование случайным образом. Случайное разделение может работать, когда временной порядок ваших данных не имеет значения. Но если ваши данные зависят от времени, случайное назначение может привести к утечке данных.
Например, в Riskified наши функции учитывают прошлые события, чтобы оценить, может ли модель быть ошибочной.
Что делать, если ваши данные зависят от времени?

Зависящие от времени наборы поездов и тестов

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

Начните с конца в виду

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

Ошибка № 2: обучающие данные должны представлять реальное распределение

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

Другими словами, наши данные несбалансированы, и тренировочный набор с реальным распределением также будет несбалансированным.Обучение на несбалансированном тренировочном наборе затруднит изучение редкого класса. Что такое какие-нибудь идеи по обработке несбалансированных данных?

Обучение с несбалансированными данными

В качестве первого шага, почему бы не попытаться сбалансировать классы? Тот факт, что уровень одного класса недостаточен по сравнению с другим, не означает, что он должен быть таким же в вашем тренировочном наборе. Постарайтесь создать более сбалансированное соотношение классов в тренировочном наборе. Соотношение не обязательно должно быть 1:1, но иногда мы обнаруживаем, что балансирование соотношения между классами в тренировочных наборах приводит к лучшему результату. Результаты. Сбалансировав классы, найдите несбалансированные сегменты в своих классах: есть ли недопредставленные сегменты?

Когда определенный сегмент недопредставлен

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

Ловушка № 3: Извлекайте уроки из всех прошлых событий, которые вы можете получить

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

Поддержание ваших данных в актуальном состоянии с учетом тенденций

Простой подход заключается в том, чтобы придавать большое значение более свежим выборкам данных. Поскольку вы упорядочили данные по времени (см. выше), первые выборки будут дальше. Убедитесь, что начало вашего тренировочного сета не слишком далеко. Слишком много «старых» экземпляров могут научить ваших моделей тенденциям, которые сегодня менее актуальны. Другой вариант — избыточная выборка данных из недавнего прошлого.

Итак, мы адаптировались к долгосрочным изменениям в наших данных, но как насчет краткосрочных изменений данных?

Когда следует быть осторожным при использовании последних данных

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

Ошибка № 4: доверяйте всем помеченным данным

Обучение под наблюдением означает обучение на размеченных данных. Классические решения предполагают, что ваши ярлыки заслуживают доверия и не изменятся. Но это не всегда так. В Riskified, если мы по ошибке одобряем мошенническую транзакцию, процесс сообщения может занять некоторое время. Задержанная обратная связь означает, что метка обучающей выборки может измениться.
Что вы можете сделать, если заметите задержку обратной связи с вашими данными?

Когда этикетка может меняться со временем

Начните с построения графика изменения ярлыков с течением времени. Спросите себя: сколько времени требуется для изменения большинства этикеток образцов? Отображение изменений меток с течением времени поможет вам определить минимальное время, необходимое для доверия тегу обучающей выборки. Затем вы можете использовать только образцы с тегами, которые, по вашему мнению, не изменятся, или придать меньшее значение тем, которые могут измениться. Еще одна сложность заключается в том, что отзывы, полученные для наших решений, не всегда надежны. Иногда наши образцы неправильно маркируются. Что вы можете сделать с неправильно помеченными данными?

Когда этикетка ненадежна

Если вы имеете дело с неправильно маркированными данными, попробуйте ранжировать образцы на основе надежности их тегов. Например, возможно, некоторые из ваших образцов имеют более одного источника обратной связи. Если образец получает одинаковую обратную связь из нескольких источников, мы можем быть более уверены в его маркировке. Другой вариант — поручить эксперту в предметной области просмотреть подмножество ваших данных и его меток. Уровень совпадения между экспертным тегом домена и существующим тегом будет указывать на надежность ваших ярлыков. В Riskified мы объединяем экспертную маркировку и контрольную группу — читайте эту запись в блоге для получения более подробной информации.

Подведение итогов: поиск следующей ловушки зависит от вас

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

Если вы заметили какие-либо распространенные ловушки, о которых я забыл упомянуть, дайте мне знать в комментариях!

[1] Беседа с Эндрю о MLOps: от модельно-ориентированного к дата-центричному ИИ