Обзор

A/B-тестирование — это способ сравнения двух моделей друг с другом, чтобы определить, какая из них работает лучше.

Этот блог охватывает следующие моменты:

  • Основы A/B-тестирования
  • Ограничения и проблемы классического A/B-тестирования
  • Плюсы и минусы последовательного A/B-тестирования
  • Формулировка A/B-тестирования в контексте машинного обучения
  • Анализ данных и результаты A/B-тестирования машинного обучения
  • Преимущество использования MLFlow и DVC в эксперименте ML

Основы A/B-тестирования и варианты его использования

A/B-тестирование, также известное как групповое тестирование, представляет собой эксперимент, в котором два варианта продуктов демонстрируются пользователям случайным образом, а затем используются различные методы статистического анализа, чтобы определить, какой вариант приводит к большему количеству конверсий.

Подобный анализ проводится по разным областям дисциплины. Ниже приведены некоторые из вариантов использования,

  • Редизайн веб-сайтов
  • Изменение услуг, функций или плагинов
  • Изменение цены товаров или услуг

Технически A/B-тестирование — это форма статистической проверки гипотез с двумя выборками. Статистическая проверка гипотез — это тип A/B-тестирования, при котором данные выборки сравниваются с данными населения. Принимая во внимание, что проверка гипотезы с двумя выборками является мерой различия между двумя выборками, является статистически значимой или нет.

Несмотря на то, что A/B-тестирование имеет множество вариантов использования, здесь мы обсудим применение в области науки о данных, в частности, в проекте рекламной кампании.

Проект выполняет A/B-тестирование гипотез на данных, полученных от рекламной компании, о реакции пользователей на рекламу. В проекте я провел три вида A/B-тестирования:

  • Классическое A/B-тестирование
  • Последовательное A/B-тестирование
  • Машинное обучение для A/B-тестирования

Классическое A/B-тестирование

Классическое A/B-тестирование — это в основном тестирование, проводимое в отношении рассчитанного размера выборки. Размер выборки рассчитывается на основе пороговых эффектов, которые, как я ожидаю, обнаружит тест.

Ограничения и проблемы классического A/B-тестирования

Основное ограничение классического A/B-тестирования заключается в том, что для получения хорошего результата требуется очень большой набор данных, а проведение такого рода тестирования с небольшим объемом данных приводит к ненадежным результатам.

Последовательное A/B-тестирование

Последовательное A/B-тестирование — это тип тестирования, при котором я проверяю нашу гипотезу, используя небольшой фрагмент данных.

Последовательная процедура работает следующим образом:

  1. Сначала я выбираю размер выборки 𝑁N.
  2. Назначьте субъектов случайным образом для лечения и контроля с вероятностью 50% для каждого.
  3. Отслеживайте количество входящих успехов от лечебной группы. Звоните по этому номеру 𝑇T.
  4. Отслеживайте количество входящих успехов от контрольной группы. Позвоните по этому номеру 𝐶C.
  5. Если 𝑇−𝐶T−C достигает 2𝑁‾‾√2N, тест останавливают. Объявите лечение победителем.
  6. Если 𝑇+𝐶T+C достигает 𝑁N, остановите тест. Объявить победителя нет.

Плюсы и минусы последовательного A/B-тестирования

Плюсы:

  • Тратьте меньше времени на эксперимент
  • Снизить расходы на трафик
  • снизить вероятность ошибки
  • Сократите количество необходимых конверсий

Минусы

  • Информация потеряна из-за использования данных небольшой выборки
  • Повышенная сложность

Формулировка A/B-тестирования в контексте машинного обучения

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

В этом проекте я использовал 5-кратную перекрестную проверку по четырем различным алгоритмам для обучения модели. Это;

  • Логистическая регрессия
  • Древо решений
  • XGBoost
  • Случайный лес

Анализ данных и результаты A/B-тестирования машинного обучения

Данные, которые я использовал, имеют девять функций и 8077 экземпляров и собраны в ходе рекламной кампании компании.

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

Снимок данных представлен ниже:

Получив базовую информацию о данных, я изучил уникальные значения каждой функции и визуализировал их на графиках.

  1. Эксперимент

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

2. Дата

По сюжету я могу сделать вывод, что в первый день было больше всего посетителей по сравнению с остальными днями.

3. Час

Час 15 был самым загруженным, так как трафик посетителей был очень высоким, почти в 3 раза больше, чем в остальные часы.

3. Платформа ОС

ОС с пометкой «6» используется большинством пользователей из данных.

4. Браузер

Браузер Chrome является наиболее часто используемым браузером среди пользователей.

5. Да

6. No

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

Затем я получил следующие данные в качестве вывода

После кодирования меток я разделил данные на наборы данных для обучения, тестирования и проверки, чтобы выполнить обучение.

Затем я использовал обучающие данные для обучения модели по четырем упомянутым ранее алгоритмам и получил следующую точность вывода.

При обучении модели я интегрировал MLFlow и DVC. Я использовал MLFlow для записи информации о тренировках и ее отслеживания, а DVC — для обработки разных версий данных.

Преимущество использования MLFlow и DVC в эксперименте ML

Использование MLFlow и DVC очень важно при выполнении множественного анализа имеющихся у нас данных. MLFlow помогает нам регистрировать модель и отслеживать различия и улучшения по сравнению с экспериментом. В то время как DVC помогает нам управлять различными версиями данных, используемых в эксперименте.

Во время этого проекта я использовал оба инструмента и помог мне легко справляться с вышеуказанными трудностями и визуализировать свое обучение во времени.

Ограничение исследования

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