Как разделять набор данных
Как оптимально разделить набор данных на обучающую, валидационную и тестовую выборки?
У каждого подмножества данных есть цель, от создания модели до обеспечения её производительности:
- Обучающий набор — это подмножество данных, которые я буду использовать для обучения модели.
- Валидационная выборка — используется для контроля процесса обучения. Она поможет предотвратить переобучение и обеспечит более точную настройку входных параметров.
- Тестовый набор — подмножество данных для оценки производительности модели.
Чтобы принять решение о размере каждого подмножества, я часто вижу стандартные правила и соотношения. Сталкиваюсь с разделением по правилу 80-20 (80 % для тренировочного сплита, 20% для тестового сплита) или по правилу 70-20-10 (70% для обучения, 20% для проверки, 10% для тестирования) и т.д.
Было несколько дискуссий о том, каким может быть оптимальное разделение, но в целом отсутствие достаточного количества данных как в обучающем, так и в проверочном наборе приведет к тому, что модель будет трудно изучить/обучить или определить, действительно ли эта модель работает хорошо или нет.
В BigQuery, как правило, можно создать только подмножество для обучения и тестирования, потому что проверка может быть выполнена при создании модели с DATA_SPLIT опцией.
Прежде чем разделить набор данных, необходимо знать о некоторых распространённых ловушках:
- Низкокачественные данные: если входные данные, использованные для создания вашей модели, имеют выбросы, это скорее всего негативно повлияет на качество модели.
- Переобучение: когда входных данных недостаточно, но построенная модель хорошо объясняет параметры из обучающей выборки, то считается, что любой выброс или колебания приводят к недостоверным прогнозам.
- Несбалансированный набор данных: представьте, что вы хотите обучить модель, которая предсказывает покупку клиента, но у вас есть 500 тысяч потенциальных покупателей и 300 покупателей. Для начала нужно создать более равный набор данных (используя технику повторной выборки). Исследовательский анализ данных (EDA) поможет выявить несбалансированные данные.
- Утечка данных: означает, что входные данные были изменены (масштабированы, преобразованы) перед созданием обучающего набора данных или во время их разделения.
Для эксперимента у меня есть следующий набор данных, состоящий из 11 тыс. строк и трёх полей идентификатора заказа, даты и связанного значения заказа.
Разделю эту таблицу на обучающую и тестовую подгруппы.
Выбор правильного столбца для разделения
Чтобы сделать правильное разделение, используйте один столбец, который отличает каждую строку вашей базовой таблицы. В противном случае может быть трудно создать равномерно распределённое разделение.
Чтобы добиться уникальности, есть несколько вариантов в практических примерах:
- Создать новое поле с уникальными значениями (например, функция генератора случайных чисел, такая как RAND()или UUID())
- Создать хеш одного уже уникального поля или хеш комбинации полей, которая создает уникальный идентификатор строки
Для второго варианта наиболее распространенной хеш-функцией, является FARM_FINGERPRINT().
Почему именно этот, а не MD5() или SHA()?
Это обусловлено двумя особенностями. Во-первых, он всегда даёт одни и те же результаты для одних и тех же входных данных, а во-вторых, он возвращает INT64 значение (число, а не комбинацию чисел и символов), которым можно управлять с помощью других математических функций, например, MOD () для получения коэффициента разделения.
Создайте уникальный идентификатор строки
Чтобы создать уникальный идентификатор строки, использую FARM_FINGERPRINT() функцию:
То, что я буду продолжать разбивать в нашем наборе данных, это последний столбец (hash_abs_mod).Следующая таблица иллюстрирует каждый шаг процесса хеширования слева направо.
Влияние хеш-функции и функции по модулю на нашу базовую таблицу.
В базовой таблице уже есть уникальный идентификатор значения для каждой строки, это order_id поле. В этом случае мы можем просто хешировать его, а использовать ABS(MOD(x,10)) функции для классификации каждой строки в сегментах от 0 до 9.
Чтобы создать хеш всей строки, то есть всех столбцов, обозначим её bt, затем делаем JSON, используя TO_JSON_STRING (bt).
Затем хешировать? Цель этого метода избежать повторяющихся строк, которые всегда будут попадать в одно и то же разделение.
Создание неповторяемого разделения
Чтобы случайным образом разделить набор данных, можно использовать RAND () функцию. Это вернёт для каждой строки псевдослучайное десятичное число в интервале 0–1, включая 0 и исключая 1.
Эта функция обеспечивает равномерное распределение, что означает, что можно отфильтровать, например, все значения ниже 0,8-80% моих данных.
Но каждый раз, когда запускаем запрос, функция будет возвращать разные числа, поэтому наборы для обучения и тестирования будут разными.
Запущу случайное разделение для 80% обучения и 20% тестирования:
Вы можете увидеть в результатах, что есть число со многими десятичными знаками, сгенерированное RAND () функцией, и метка, заданная IF () оператором.
Но, не сможете воспроизвести точно такое же разделение, если не сохраните результаты как есть.
Разделить на обучение и тестирование с помощью RAND.
Создание повторяемого разделения
Чтобы создать разделение, которое можно использовать повторно, лучше всего использовать комбинацию функций MOD()и FARM_FINGERPRINT(), потому что выходные данные останутся одинаковыми для одних и тех же входных данных.
Использую уникальный ключ (order_id поле). Можно использовать оператор CASE WHEN со следующим диапазоном, чтобы сделать повторяемое разделение 80/10/10:
Разделение на 3 подмножества (обучение, проверка и тестирование).Результат будет таким же, как и для предыдущего неповторяемого разделения, за исключением того, что этот запрос всегда будет производить одно и то же разделение.
Разделить на обучение, проверку и тестирование с помощью MOD() и FARM_FINGERPRINT().
Теперь вы знаете, как лучше разделить набор данных на подмножества, с возможностью повторного использования. Этот метод дает 2 преимущества:
- Одни и те же результаты для входных данных.
- Возвращает значение в виде числа, а не комбинацию чисел и символов, которым можно легко управлять, что позволяет сократить время обработки. Это означает, что необходимо проверить, какой временной диапазон покрывает 80% (в случае разделения 80/20) наших базовых данных.
Кроме того, строки с одной и той же датой имеют тенденцию быть коррелированными, поэтому эти строки должны оставаться в одном разбиении.
40. Проблемы обобщения: от обучающей выборки к валидационной
Предположим, что вы применяете ML в условиях, когда распределение обучающей и валидационной выборок отличаются. Например, обучающая выборка содержит изображения из Интернета + изображения из мобильного приложения, а тестовая и валидационная выборки только из мобильного приложения. При этом алгоритм работает не очень хорошо: он имеет гораздо более высокую ошибку на валидационной и тестовой выборках, чем хотелось бы. Приведем некоторые возможные причины:
- Алгоритм плохо отрабатывает на тестовой выборке и это связано с проблемой высокого (избегаемого) смещения на распределении обучающей выборки
- Алгоритм имеет высокое качество на обучающей выборке, но не может обобщить свою работу на данные, имеющие аналогичное распределение с обучающей выборкой, которые он раньше не видел. Это случай высокого разброса.
- Алгоритм хорошо обобщает свою работу на новые данные из того же распределения, что и обучающая выборка, но не может справиться (обобщить) на распределение валидационной и тестовой выборки, которые получены из другого распределения. Это говорит о несоответствии данных, возникающем из-за отличия распределения обучающей выборки от распределений валидационной и тестовой выборок
Например, предположим, человеческий уровень распознавания кошек является практически идеальным. Ваш алгоритм относительно него показывает:
- 1% ошибки на обучающей выборке
- 1,5% ошибки для данных, взятых из того же распределения, что и обучающая выборка, но которые алгоритму не показывали при обучении
- 10% ошибки на валидационной и на тестовой выборках
В этом случае явно присутствует проблема несоответствия распределений данных. Для ее решения, можно попытаться приблизить распределение обучающей выборки к распределениям валидационной и тестовой. Ниже будут приведены некоторые идеи, как это можно сделать.
Чтобы определить, какое влияние оказывает каждая из трех проблем, описанных выше, будет полезна еще одна выборка. Вместо того, чтобы предоставлять алгоритму все имеющиеся примеры из обучающей выборки, можно разделить ее на два подмножества: обучающую выборку, используемую для обучения алгоритма и отдельную выборку, которую можно назвать «выборка для валидации обучающей», эту выборку не нужно показывать алгоритму при его обучении.
Теперь у вас есть четыре выборки данных:
- Обучающая выборка. Это данные, на которых будет обучаться алгоритм (изображения из Интернета + изображения из мобильного приложения). Эти данные не обязаны иметь такое же распределение, которое для нас является наиболее важным (распределение валидационной и тестовой выборок).
- Выборка для валидации обучающей: эти данные берутся из того же распределения, что и обучающая выборка (изображения из Интернета + изображения из мобильного приложения). Размер этой выборки обычно меньше, чем размер обучающей выборки; но она должна быть достаточно большой, чтобы позволять оценивать и отслеживать прогресс в обучении нашего алгоритма.
- Валидационная выборка: эта выборка имеет то же распределение, что и тестовая, и отражает распределение данных, качество работы на котором определит успешность приложения. (Например, изображения из мобильного приложения)
- Тестовая выборка: ее распределение совпадает с распределением валидационной выборки. (Изображения из мобильного приложения)
Вооружившись этими четырьмя выборками, можно оценить:
- Ошибки алгоритма на обучающей выборке
- Способность алгоритма к обобщению своей работы с обучающей выборки на данные, имеющие такое же распределение, но сокрытые от алгоритма, посредством «выборки для валидации обучающей».
- Эффективность алгоритма для решения задачи, критичной для приложения, посредством оценки качества его работы на валидационной и тестовой выборках.
Большинство рекомендаций из 5-7 глав по выбору размера валидационной выборки также применимы к принятию решения о размере «выборки для валидации обучающей».
41. Выявление смещения, разброса и несоответствия данных
Допустим люди достигают почти идеального качества (ошибка ≈0%) в задаче обнаружения кошек, и, таким образом, оптимальный уровень ошибки для этой задачи составляет около 0%.
Предположим, у нашего алгоритма:
- Ошибка 1% на обучающей выборке.
- Ошибка 5% на «выборке для валидации обучающей».
- Ошибка 5% на валидационной выборке.
О чем это говорит? Можно сделать вывод, что мы имеем дело с высоким разбросом. Методы уменьшения разброса, описанные ранее, должны помочь повысить качество работы алгоритма.
Теперь предположим, что у алгоритма следующие показатели:
- Ошибка 10% на обучающей выборке.
- Ошибка 11% на «выборке для валидации обучающей».
- Ошибка 12% на валидационной выборке.
Это говорит о том, что у алгоритма высокое избегаемое смешение на обучающей выборке. Т.е. алгоритм плохо работает уже на данных из обучающей выборки. Подходы к уменьшению смещения должны помочь в этом случае.
В обоих приведенных примерах алгоритм страдает только высоким избегаемым смещением или высоким разбросом. Однако, алгоритм может иметь как высокое избегаемое смещения, высокий разброс, так и проблемы с несоответствием данных в выборках.
Рассмотрим еще такую ситуацию:
- Ошибка 10% на обучающей выборке.
- Ошибка 11% на «выборке для валидации обучающей».
- Ошибка 20% на валидационной выборке.
В данном случае у алгоритма высокое избегаемое смещение и дополнительно мы имеем дело с несоответствием данных. Однако, нет особых проблем с разбросом на обучающей выборке.
Может быть будет проще понять, как различные типы ошибок связаны друг с другом, если представить их в виде таблицы:
Продолжая рассмотрение примера с детектором кошек, расположим на оси Х два разных распределения данных. На оси Y расположим три типа ошибок: ошибка человека, ошибка на примерах, используемых для обучения алгоритма, и ошибка в примерах, на которых алгоритм не обучался. Мы можем заполнить поля значениями различных типов ошибок, которые мы определили в предыдущей главе.
При желании можно заполнить оставшиеся два поля в этой таблице. Можно заполнить поле в верхнем правом углу (качество человека на изображениях, полученных из мобильного приложения), например, попросив некоторых подписчиков разметить изображения из вашего мобильного детектора котов и измерить их ошибку. Можно заполнить следующую клетку в таблице, взяв изображения кошек из мобильного приложения (распределение B) и поместив их небольшую часть в обучающую выборку, чтобы нейронная сеть обучалась на нем тоже. Затем нужно измерить ошибку алгоритма на этом подмножестве данных. Заполнение приведенных двух дополнительных клеток таблицы даст понимание того, как алгоритм отрабатывает на этих двух различными распределениях данных (Распределение A и B).
Определив, с какими типами ошибок алгоритм испытывает наибольшие трудности, можно более обосновано решить, следует ли сосредоточиться на уменьшении смещения, уменьшении разброса или нужно озадачиться борьбой с несоответствием данных.
Выборка
Выборка (sample, set) — конечный набор прецедентов (объектов, случаев, событий, испытуемых, образцов, и т.п.), некоторым способом выбранных из множества всех возможных прецедентов, называемого генеральной совокупностью.
Если исследователь не имеет возможности управлять выбором прецедентов, то обычно предполагается, что выбор прецедентов случаен. Если же выбором прецедентов можно управлять, то возникают задачи оптимального формирования выборки, см. также активное обучение, планирование экспериментов, выборочное обследование.
По каждому прецеденту собираются (измеряются) некоторые данные (data), образующие описание прецедента. Совокупность описаний всех прецедентов выборки является входной информацией для статистического анализа данных, интеллектуального анализа данных, машинного обучения.
Термины выборка (sample, set) и данные (data) взаимозаменяемы; иногда они употребляются вместе как один термин выборка данных (data set). Поэтому анализ данных можно понимать также как анализ конечных выборок. Основные цели анализа данных:
- проверка гипотез относительно имеющейся выборки данных;
- эмпирическая индукция — выявление общих закономерностей, присущих всей генеральной совокупности, по имеющийся выборке данных;
- прогнозирование — формирование статистически обоснованных предсказаний относительно новых данных, которые ещё не наблюдались.
Вероятностная модель порождения данных
Случайная выборка
Вероятностная модель порождения данных предполагает, что выборка из генеральной совокупности формируется случайным образом. Объём (длина) выборки считается произвольной, но фиксированной, неслучайной величиной.
Формально это означает, что с генеральной совокупностью связывается вероятностное пространство , где — множество всех выборок длины , — заданная на этом множестве сигма-алгебра событий, — вероятностная мера, как правило, неизвестная.
Случайная выборка — это последовательность из прецедентов, выбранная из множества согласно вероятностной мере .
Однородная выборка
Выборка называется однородной, если все её прецеденты одинаково распределёны, то есть выбраны из одного и того же распределения .
Независимая выборка
Выборка называется независимой, если вероятностная мера на представима в виде произведения вероятностных мер на , то есть для любой системы подмножеств
Если на существует плотность распределения , то независимость означает, что -мерная плотность распределения на представима в виде произведения одномерных плотностей:
Простая выборка
Простая выборка — это случайная, однородная, независимая выборка (i.i.d. — independent, identically distributed).
Эквивалентное определение: выборка простая, если значения являются реализациями независимых одинаково распределённых случайных величин.
Простая выборка является математической моделью серии независимых опытов. На гипотезу простой выборки существенно опираются многие методы статистического анализа данных и машинного обучения, в частности, большинство статистических тестов, а также оценки обобщающей способности в теории вычислительного обучения.
Также существует множество методов, не предполагающих однородность и/или независимость выборки, в частности, в теории случайных процессов, в прогнозировании временных рядов. Метод максимума правдоподобия позволяет оценивать значения параметров модели по обучающей выборке, в общем случае не требуя, чтобы выборка была однородной и независимой. Однако в случае простых выборок применение метода существенно упрощается.
Обучающая и тестовая выборка
Обучающая выборка (training sample) — выборка, по которой производится настройка (оптимизация параметров) модели зависимости.
Если модель зависимости построена по обучающей выборке , то оценка качества этой модели, сделанная по той же выборке оказывается, как правило, оптимистически смещённой. Это нежелательное явление называют переобучением. На практике оно встречается очень часто. Хорошую эмпирическую оценку качества построенной модели даёт её проверка на независимых данных, которые не использовались для обучения.
Тестовая (или контрольная) выборка (test sample) — выборка, по которой оценивается качество построенной модели. Если обучающая и тестовая выборки независимы, то оценка, сделанная по тестовой выборке, является несмещённой.
Оценку качества, сделанную по тестовой выборке, можно применить для выбора наилучшей модели. Однако тогда она снова окажется оптимистически смещённой. Для получения немсещённой оценки выбранной модели приходится выделять третью выборку.
Проверочная выборка (validation sample) — выборка, по которой осуществляется выбор наилучшей модели из множества моделей, построенных по обучающей выборке.
Валидация моделей машинного обучения
На связи команда Advanced Analytics GlowByte и сегодня мы разберем валидацию моделей.
Иногда термин «валидация» ассоциируется с вычислением одной точечной статистической метрики (например, ROC AUC) на отложенной выборке данных. Однако такой подход может привести к ряду ошибок.
В статье разберем, о каких ошибках идет речь, подробнее рассмотрим процесс валидации и дадим ответы на вопросы:
- на каком этапе жизненного цикла модели проводится валидация? Спойлер: это происходит больше одного раза;
- какие метрики обычно применяются при валидации и с какой целью?
- почему важно использовать не только количественные, но и качественные метрики?
Расширяем понятие валидации
Что не так с валидацией как вычислением одной точечной статистической метрики на отложенной выборке данных?
Аргумент против № 1: одна метрика не может учесть все аспекты качества модели. Качество модели измеряется не только предсказательной способностью, но и, например, стабильностью во времени.
Аргумент против № 2: количественные оценки не всегда согласуются с бизнес-метриками и поэтому вводятся дополнительные. Например, мы можем разработать модель с хорошей интегральной оценкой, но при попытке интерпретации модели в разрезе отдельных факторов может выясниться, что фактор, который по бизнес-логике при увеличении значения должен снижать прогнозный показатель, в разработанной модели, наоборот, его повышает.
Аргумент против № 3: точечная оценка может варьировать в зависимости от состава валидационной выборки, особенно это касается не сбалансированных выборок (с соотношением классов 1:50 или более значимым перекосом). Поэтому стоит дополнительно делать интервальные оценки.
Аргумент против № 4: актуальные данные могут отличаться от исторических, на которых была построена модель, поэтому валидацию стоит делать и на актуальном срезе данных.
Аргумент против № 5: реальные проекты обычно представляют собой набор неоднородных (по сложности и перечню используемых технологий) скриптов, в которых могут быть неточности или неучтенные варианты поведения. Поэтому для корректной работы всего проекта необходимо проводить дополнительную проверку реализации модели, подготавливаемой к развертыванию, причем стоит учитывать не только зависимости между скриптами в проекте, но и порядок их запуска: при несоблюдении порядка они могут отработать без ошибок, но сформировать абсолютно неверный результат.
Валидация и жизненный цикл модели
Валидация — комплексный процесс, который осуществляется на протяжении всего жизненного цикла модели. Ее можно декомпозировать на составные части в соответствии с этапами жизненного цикла. На схеме ниже обозначено:
- что валидируется на конкретном этапе жизненного цикла модели;
- какие данные необходимы;
- как часто следует проводить валидацию.
Когда модель построена, выполняется первичная валидация, чтобы доказать работоспособность и оценить целесообразность внедрения разработанной модели.
На этапе внедрения проводится два вида проверок.
- Верификация — подтверждение качества модели на актуальном потоке данных и дополнительная проверка репрезентативности данных, использованных при разработке модели.
- IT-валидация — аудит набора скриптов с реализацией модели посредством проверки кода на обработку пропусков, дубликатов и других артефактов данных для снижения риска неожиданного поведения модели. Дополнительно проверяется качество документирования кода. Для этого необходимо заранее подготовить спецификацию. Это документ, который полностью описывает применение модели (порядок запуска скриптов, шаги каждого алгоритма). Он необходим для синхронизации всех сторон (бизнес, разработчики модели, занимающийся внедрением IT-отдел). Когда у вас есть на руках спецификация, вы проверяете, соответствует ли ей код проекта, а также достаточно ли в коде комментариев для воспроизводимости.
Тут может появиться вопрос, чем валидация отличается от мониторинга. Если коротко, то мониторинг — более легковесный процесс, проводимый с большей частотой.
Методика валидации
Все используемые при валидации тесты можно разделить на две группы: количественные и качественные.
В качестве артефакта по результатам валидации предоставляется отчет:
- перечень тестов, отвечающих за отдельные аспекты качества модели (речь о них пойдет далее);
- результат каждого теста в отдельности и интегрально по блокам в виде риск-зон.
Рассмотрим детальнее список тестов для моделей бинарной классификации на примере модели прогноза вероятности дефолта (PD-модели) по кредитному договору (подробнее о PD-моделях см. [1]).
Количественная оценка
К группе относятся расчеты метрик и статистические тесты, которые оценивают качество модели на разных этапах и разных уровнях (перечисляем не все, возможны и другие).
1. Дискриминационная способность модели
После разработки модели первый вопрос, который интересует бизнес-заказчика: а насколько хорошо модель справляется со своей задачей? Если мы построили PD-модель, то этот вопрос звучит так: насколько хорошо модель отделяет клиентов, которые уйдут в дефолт, от тех, кто в дефолт не уйдет, и насколько лучше эта модель, чем случайное угадывание?
Чтобы ответить на это вопрос, проводим тесты:
- коэффициент Джини (подробнее рассмотрен под катом);
- Information value;
- критерий Колмогорова–Смирнова.
2. Оценка стабильности
Мы разработали модель, проверили ее дискриминационную способность, задеплоили, но спустя несколько месяцев показатели нашей модели ухудшились. После выяснения причин оказалось, что для обучения были отобраны нерепрезентативные данные. Вернемся назад во времени, попробуем предотвратить такую ситуацию и добавим еще один блок в отчет о валидации: стабильность.
- Population Stability Index (PSI);
- критерий Колмогорова–Смирнова.
Когда мы убедились в стабильности модели, надо проверить, что уверенность модели в сформированных прогнозах соответствует моделируемым значениям целевого события. Для этого применяется калибровка.
Модель считается хорошо откалиброванной, если фактический уровень целевого события (доля наблюдений с фактическим целевым событием = 1) близок к средней прогнозируемой моделью вероятности. Для оценки качества калибровки модели можно проверять попадание наблюдаемого уровня целевого события в доверительный интервал предсказанных моделью вероятностей целевого события: в целом по модели или в рамках бакетов предсказанной вероятности.
Примеры тестов и метрик:
- точность уровня калибровки по всему портфелю;
- биномиальный тест (подробнее рассмотрен под катом);
- критерий Хосмера–Лемешова.
4. Концентрация
Для формирования итогового решения о стратегии взаимодействия с клиентом может возникнуть необходимость определять разряд по заранее заданной шкале на основе значения вероятности дефолта, спрогнозированного моделью. В таком случае стоит проверить, что в распределении наблюдений по разрядам рейтинговой шкалы отсутствует перекос. Иными словами, чтобы предотвратить попадание большинства всех наблюдений в один-два разряда из всего набора.
Для проверки концентрации используется индекс Херфиндаля–Хиршмана как в целом по выборке, так и в разрезе отдельных сегментов.
Подводя итог этого раздела, приведем пример пороговых значений метрик валидации моделей бинарной классификации и соответствующие им риск-зоны. В таблице для каждой метрики указаны пороговые значения риск-зон.
- При положительной корреляции с качеством модели красный сигнал выставляется при значениях ниже первого порога (столбец «Красная»), желтый – при значениях от первого до второго (столбец «Жёлтая») порога, зеленый – при значениях выше второго порога.
- При отрицательной корреляции с качеством модели красный сигнал выставляется при значениях выше первого порога, желтый – при значениях от первого до второго порога, зеленый – при значениях ниже второго порога.
Также для отдельных моделей могут быть предусмотрены специфические тесты. Например, для LGD-моделей Loss Shortfall.
Качественные тесты
Не все аспекты качества модели можно оценить количественно, поэтому вместе с ними при валидации применяются качественные тесты. Что можно проверять с их помощью?
1. Качество документации модели. Для обеспечения воспроизводимости модели необходима хорошая документация.
Оценить качество документации можно, определив, насколько хорошо задокументированы:
- задачи, решаемые моделью;
- пайплайн работы модели;
- параметры модели и атрибуты для формирования прогноза.
2. Дополнительно можно проверить качество использованных при разработке данных:
- обоснован ли выбор факторов модели (одномерный или многомерный анализ)?
- соответствует ли глубина исторических данных нормативным требованиям?
- соответствует ли определение целевого события нормативным требованиям?
Заказчик может дополнительно запросить интерпретацию модели: если это регрессионная модель, то коэффициенты факторов; если decision tree/decision list, то набор правил; если более сложные модели, то отчет интерпретаторов SHAP/LIME.
Эта информация поможет пройти приемку модели, поскольку наглядно показывает, что все важные фичи, на которых модель делает выводы, подкреплены бизнес-логикой.
Model performance predictor (MPP)
В определенных задачах бывает необходимо прогнозировать события, которые произойдут спустя месяцы. Например, клиент не выполнит свои обязательства по кредитному договору в течение года. Из-за этого лага возникает проблема: как понять, что модель стала хуже работать, до того как мы сможем увидеть это, до получения фактических значений целевого события?
Для решения такой проблемы наряду с основной строится дополнительная модель — Model Performance Predictor (MPP) [6].
Схема обучения MPP-модели
Для разработки MPP-модели используется тестовая выборка основной модели. Шаги по построению MPP-модели.
- Для каждого наблюдения из тестовой выборки выполняется скоринг «основной» моделью.
- На основе прогноза и истинного значения рассчитывается целевая метрика для каждого наблюдения: например, абсолютная ошибка для задачи регрессии или метрика G-score (аналог интегральной метрики Джини, рассчитываемый по координатам наблюдения на ROC-кривой) [7] для задачи бинарной классификации.
- Модель MPP обучается с использованием метрики из п. 2 в качестве целевого события (при этом используя те же атрибуты, что и основная модель).
- Обученная MPP-модель в дальнейшем используется совместно с основной для предсказания метрик качества по наблюдениям, которые участвуют в скоринге. Согласно предсказанным MPP-моделью значениям целевых метрик определяется качество предсказаний основной модели.
- нет необходимости ждать «вызревания» целевого события, чтобы оценить качество модели;
- можно использовать модели любой сложности ввиду отсутствия требований к интерпретируемости модели.
Заключение
В завершение сформулируем принципы, которые гарантируют, что валидация модели будет эффективна:
- кроме статистических тестов и метрик использовать качественные тесты и не забывать о бизнес-назначении модели;
- применять широкий набор метрик, чтобы комплексно оценить модель;
- кроме точечных оценок использовать интервальные оценки для учета волатильности.
Бинарное целевое событие:
Небинарное целевое событие:
/>
Материал подготовили: Илья Могильников (EienKotowaru), Александр Бородин (abv_gbc)