Работа с отсутствующими данными требует знаний в области бизнеса и дополнительной работы.

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

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

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

Пример: прогнозирование ценности жизненного цикла клиента

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

В эту модель входит около 80 различных функций, в том числе поведенческие функции, например, сколько раз клиент совершал покупку за последние 2 месяца или сколько раз клиент просматривал определенный продукт за последние 7 дней.

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

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

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

В таких случаях нужен более правильный подход.

Использование бизнес-знаний для заполнения недостающих функций

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

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

Однако другие ситуации могут быть немного сложнее.

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

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

Работа специалиста по данным — знать данные

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

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

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

Использовали ли вы когда-нибудь бизнес-правила для заполнения отсутствующих функций? Если это так, я хотел бы услышать об этом, оставьте комментарий ниже!