Как делать проекты

Это краткое описание, того как и какие можно делать проекты в результате, назовем так, освоения этого курса. Оно будет обустроено по этапам анализа данных (CRISP-DM который), и в каждом пункте будут расписаны возможные действия аналитика.

Понимание задачи

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

  2. Опишите, что означает, что достигнутый результат - хороший. В чем это измеряется? Как будет понятно, что этот результат достигнут?

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

Разведочный анализ

  1. Начните с описания данных. Сколько вообще примеров, что они собой представляют, есть ли пропущенные значения (сколько?), какие есть признаки у примеров, в каком диапазоне что они собой представляют. Нужна ли чистка данных, важны ли примеры с пропущенными значениям?

  2. Исследуйте данные визуально. Если их очень много - то несколькими случайными выборками. Постройте простые гипотезы о зависимостях в данных, как минимум о наличии или отсутствии связи. Может какие-то признаки лишние? Или наоборот, их слишком мало?

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

Подготовка данных

  1. Подготовьте данные в виде, который могут понимать алгоритмы.

  2. Отложите тестовую часть данных, достаточную для того, чтобы можно было убедиться в качестве работы алгоритмов. Используйте train_test_split, так как он может стратифицировать примеры при классификации.

  3. Если нужна предобработка признаков - например отбор, снижение размерности, или дополнительный инжиринг, - реализуйте в коде. На этом этапе подгонка алгоритмов должна производиться только на тренировочном множестве.

Моделирование

  1. Определите метрики качества работы алгоритмов для ваших данных и задачи.

  2. Обучите модели с помощью алгоритмов.

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

Оценка качества

  1. Оцените и сравните метрики на тренировочном и тестовом множествах. Проверьте, не переобучились ли или недообучились модели. Если надо, вернитесь на предыдущие шаги.

  2. Используйте кросс-валидацию, чтобы оценить качество на всех данных.

  3. Реализуйте подсчет бизнес-метрик и рассчитайте их. Сделайте вывод о пригодности модели.

Внедрение модели

  1. По возможности, дополните модель и прогнозы интерпретациями.

  2. Презентуйте исследование, можно в некотором интерактивном виде.

  3. Реализуйте способ получения прогнозов от модели при необходимости.

Мониторинг работы

  1. Устройте журналирование ответов модели.

  2. Определите метрики качества работы модели по более широкому контексту её применения.

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