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

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

Понимание бизнес-цели

Нет смысла строить какую-либо модель машинного обучения, не понимая, зачем она нужна. Специалисты по данным должны очень четко понимать, какую бизнес-проблему они решают. Это поможет разработать лучшую модель.

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

В другом случае, когда я работал со своим коллегой над набором данных, который содержит более 5 миллионов записей о рейсах, и бизнес-целью было прогнозирование задержек вылета (проблема регрессии). Приложив большие усилия, я смог получить оценку R2 0,26 (Ссылка: Kaggle Kernel), но мой коллега с гордостью пришел ко мне с оценкой R2 0,92. Я был поражен и начал пересматривать то, что я пропустил. Я обнаружил, что одной из функций, которую использовал мой коллега, была Задержка прибытия, которая имела около 92% корреляции с нашей целевой переменной Задержка отправления. Отлично. Но подождите, бизнес-целью было предсказать задержку вылета. Имеет ли смысл использовать задержку прибытия в качестве функции при прогнозировании задержки отправления !! Точно нет. Задержка прибытия означает, что рейс уже вылетел и прибыл в пункт назначения. Какой смысл предсказывать прошлое. Понимание цели и деловая хватка наиболее важны при работе над проектом ML.

Выбор функций

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

Чтобы упростить эту работу, существует множество статистических методов, инкапсулированных в библиотеках, таких как sklearn. На высоком уровне выделяют 2 группы методик — Одновариантные и Многовариантные. Давайте обсудим некоторые из них:

Функции с низкой дисперсией: этот метод ищет в пространстве выборки функции с нулевой или очень низкой дисперсией и удаляет их из модели. Этот анализ может происходить с переменной без зависимости от других переменных.

Выберите k лучших: этот метод выбирает лучшие k лучших функций, сопоставляя X (независимые переменные) с Y (целевой переменной) и вычисляя оценку на основе предоставленной метрики. Оценка может быть основана на chi2, значении ANOVA F, процентилях и т. д.

SelectPercentile: это очень похоже на выбрать k лучшихс модификацией вместо указания no. функций, мы можем предоставить процентиль. Для построения модели будут выбраны объекты с наивысшей оценкой выше процентиля.

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

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

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

Причины такой спешки

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

  1. Отсутствие надлежащей подготовки/образования в области науки о данных
  2. Большинство инженеров машинного обучения — традиционные программисты. Они привыкли кодировать и проверять результаты без надлежащего дизайна.
  3. Алгоритмы машинного обучения стали очень простыми, и инженеры не могут удержаться от того, чтобы не прыгнуть в них :-)
  4. Нет статистического фона и нет любви к анализу данных
  5. Никакой деловой хватки, не из-за опыта бизнес-аналитика.

Резюме

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