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

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

Выбор функции (процесс очистки)

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

Одномерный анализ

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

  • Полнота: можно определить, взяв процент нулей или пустых значений, которые есть у каждой переменной. Когда этот подсчет завершен, мы приступаем к фильтрации каждой переменной с помощью образованного порога: если переменная превышает x% нулей, ее следует удалить из набора данных, следуя идее, что если информации не так много, это не релевантная переменная. затем.
  • Изменчивость.Дисперсия рассчитывается, чтобы определить, насколько большой набор фактических значений принимает рассматриваемая переменная. Если переменная имеет небольшую дисперсию, это означает, что, по сути, весь столбец содержит одинаковую информацию. Например, если вся выборка людей, на которых мы хотим построить модель, состоит из 30-летних, то возможный признак возраста не так важен, и поэтому его следует удалить, поскольку он ничего не добавит к расчету модели.

Многофакторный анализ

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

  • Корреляция: матрица корреляции рассчитывается для удаления переменных, сильно коррелирующих с другими переменными, поскольку во многих случаях это может привести к мультиколлинеарности модели, и ее прогнозы могут оказаться не такими, как ожидалось.

Feature Engineering (Процесс увеличения размерности и стандартизации)

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

  • Создание манекенов (одно горячее кодирование).Это метод преобразования категориальных переменных в числовые значения, чтобы их можно было использовать в моделях без потери информации. Это можно сделать с помощью библиотеки Pandas или Scikit-learn на Python.
  • Стандартизация/масштабирование. Это методы, которые используются для изменения значений числового столбца в общей шкале без искажения или потери информации. Это необходимо для корректной работы некоторых алгоритмов. Максимальное абсолютное масштабирование, минимально-максимальное масштабирование признаков и масштабирование z-показателя — вот некоторые из подходов.
  • Горе Биннинг:Этот метод широко используется в бюро кредитных историй по всему миру, поскольку переменные стандартизированы в отношении зависимой переменной, он работает как для числовых, так и для категориальных переменных.
  • Частотное кодирование: это метод, который используется для кодирования переменных с учетом их частот, что позволяет сохранить информацию о значениях их распределений.
  • Кодирование с исключением одного. Это метод, направленный на кодирование категориальных переменных с использованием зависимой переменной. Идея заключается в следующем: если мы нашли переменную, которая является хорошим предиктором зависимой переменной, то очень вероятно, что их значения больше похожи на зависимую переменную.
  • Полиномиальные свойства: с помощью этой техники мы можем сгенерировать новую матрицу переменных, учитывая все полиномиальные комбинации, возможные в заданной степени. Преимущество этого заключается в том, что возникают невидимые потенциальные взаимосвязи, повышающие производительность модели.

Выбор признаков (процесс уменьшения размерности)

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

  • Отбор ноу-хау. Нет причин отказываться от имеющихся у вас знаний о переменных, если вы являетесь экспертом и знаете свои переменные и модели, которые вы собираетесь использовать, и цель, которую вы собираетесь использовать. вы собираетесь дать ему, выберите переменные, которые вы считаете лучшими, во много раз ваши знания бизнеса могут превзойти математические методы.
  • Рекурсивное удаление признаков. Это метод выбора переменных, используемый при обучении модели, когда более слабые признаки рекурсивно удаляются до тех пор, пока не будет найдено идеальное количество переменных.
  • Выбор анализа основных компонентов:В принципе, PCA — это метод уменьшения размерности, но его можно использовать для выбора лучших переменных, наука, стоящая за ним, заключается в выборе переменных в соответствии с величиной (от наибольшей до наименьшей). в абсолютных значениях) их коэффициентов (нагрузок).
  • Значение функции Xgboost, LightGbm, CatBoost:алгоритмы повышения градиента имеют метод под названием «Важность функции», который можно использовать для выбора лучших переменных. Этот метод можно использовать после обучения модели и упорядочения переменных из более важность меньше по отношению к полученному баллу. После использования этого метода необходимо выбрать пороговое значение для выбора переменных, превышающих его.

Лучшая модель для использования

Не все модели подходят для всех наборов данных. Часто лучшая модель сложна, как нейронная сеть, или проста, как линейная регрессия. По этой причине хорошо провести предварительный опрос, чтобы узнать, какие модели лучше всего подходят для использования анализируемого набора данных. Обычно вы можете запустить несколько моделей scikit, чтобы увидеть, какая из них обеспечивает наилучшую производительность, или вы можете использовать библиотеку h2o python и ее модель AutoML, которая запускает ряд алгоритмов для определенного набора данных и дает сводку, где вы можете увидеть лучшие модель для вашего тестового образца.

Тюнинг

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

  • GridSearch и рандомизированный поиск. Это методы, используемые для выбора наилучшего набора гиперпараметров для выбранной модели. Первое, что он делает, — это тестирует желаемый набор гиперпараметров по порядку и выбирает тот, который лучшее выступление. Что делает рандомизированный, так это выполняет тот же процесс, но выбор порядка выполняется случайным образом.
  • Перекрестная проверка. Чтобы определить, стабильна ли модель в производственной среде, недостаточно разделить выборку на 70/30 и убедиться, что при этих наборах данных ее производительность будет одинаковой. Лучшее, что вы можете сделать, это использовать метод перекрестной проверки, разделить выборку на несколько и получить медиану их поведения. Если медиана перекрестной проверки ведет себя так же, как 70/30, вы можете быть уверены, что такое же поведение будет повторяться в рабочей среде.
  • HyperOpt и байесовская оптимизация. Это методы, которые используются для выбора наилучшего набора гиперпараметров для выбранной модели, в отличие от GridSearch и рандомизированного поиска. Эти методы более эффективны, поскольку они выбирают лучшие параметры для поиска. чтобы минимизировать функцию потерь, поэтому они не должны ждать завершения цикла for, но когда он находит набор гиперметров, которые минимизируют функцию потерь, он останавливается и возвращает наилучшие результаты.

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