Прогноз кругов Формулы E — часть 2

В предыдущей Часть 1 этого руководства мы обсуждали, как внедрить инженерию данных для подготовки подходящих наборов данных, обеспечивая дальнейшие этапы моделирования. А теперь сосредоточимся на том, как использовать библиотеку OptimalFlow(Документация | GitHub) для реализации Всеобъемлющее автоматизированное машинное обучение.

Почему мы используем OptimalFlow? Вы можете прочитать другую историю его введения: Автоматизированное машинное обучение Omni-ансамбля — OptimalFlow.

Шаг 1: Установите OptimalFlow

Настройте рабочую среду с помощью Python 3.7+ и установите OptimalFlowс помощьюкоманды Pip. В настоящее время самая последняя версия — 0.1.7. Более подробную информацию о пакете можно найти на PyPI.

pip install OptimalFlow

Шаг 2. Перепроверьте отсутствующие значения

После подготовки данных в части 1 этого руководства большинство функций готовы для использования в процессе моделирования. Отсутствующие значения в характеристиках категорий не приветствуются, когда поток данных поступает в autoPP (модуль предварительной обработки автоматических характеристик OptimalFlow). Поэтому нам нужно перепроверить очищенные данные и применить очистку данных к функциям с отсутствующими значениями. Для этой проблемы я обнаружил, что функция ГРУППА имеет отсутствующее значение и использует следующий код для ее преобразования.

Шаг 3: Пользовательские настройки

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

В приведенном ниже коде мы настроили алгоритм масштабирования и кодирования для autoPP (модуль предварительной обработки автоматических функций OptimalFlow); селекторы для autoFS (модуль автоматического выбора функций OptimalFlow); оценщики для модуля autoCV.

Для выбора функций и выбора модели с оценкой мы настраиваем селекторы и оценщики в пространстве поиска.

ОБРАТИТЕ ВНИМАНИЕ: разреженность и кол-во столбцов — это два ограничения, которые вы можете установить, чтобы сузить количество комбинаций наборов данных. Обычно, когда разреженность набора данных слишком низкая, дисперсия признаков будет низкой, что означает низкую ценность информации. Вы можете попробовать разные значения этих двух параметров в зависимости от допустимого количества наборов данных, которые будут проходить через процесс экспериментов по обходу кластера конвейера (PCTE), чтобы найти оптимальную модель с рабочим процессом конвейера. Конечно, чем больше комбинаций наборов данных сгенерировано модулем autoPP, тем больше времени потребуется для дальнейших процессов в автоматизированном машинном обучении OptimalFlow. И наоборот, когда ни одна комбинация наборов данных не может соответствовать ограничениям по разреженности и количеству столбцов, следующий процесс не может продолжаться. Итак, будьте осторожны и попробуйте некоторые значения с этими настройками.

Шаг 4: Эксперименты по обходу кластера конвейера (PCTE)

Основная концепция/улучшение в OptimalFlow — это эксперименты по обходу кластера конвейера (PCTE), которые представляют собой теорию структуры, впервые предложенную Тони Донгом в Genpact. Конференция GVector 2020, посвященная оптимизации и автоматизации рабочего процесса машинного обучения с использованием алгоритма ансамблевых конвейеров.

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

Для реализации процесса PCTE OptimalFlowпредоставляет для этого модуль autoPipe. Больше примеров и деталей функций можно найти в документации.

Вот атрибуты, которые мы установили в модуле autoPipe:

  • для модуля autoPP: присвойте ему пользовательские параметры, которые мы установили выше; установите столбец прогноза как «Total_Lap_Num» и выберите тип модели как «регрессия» (предотвратите ловушку фиктивных переменных);
  • для правила разделения: установите 20% проверки, 20% проверки и 60% данных обучения;
  • для модуля autoFS: установить 10 основных функций, 5 папок перекрестной проверки;
  • для модуля autoCV: используйте класс fastRegressor, 5 папок перекрестной проверки.

Вот простое описание этого автоматизированного процесса:

  • Основываясь на наших предыдущих пользовательских настройках, модуль autoPP будет генерировать всего #256 комбинаций наборов данных (на основе наших пользовательских настроек ограничения sparsity и cols). И наш процесс PCTE пройдет через все из них. Он автоматически выберет 10 лучших функций с помощью модуля autoFS. И поиск лучшей модели с настроенными гиперпараметрами, чтобы, наконец, найти оптимальную модель с конвейерным рабочим процессом в конвейерном кластере.

Вы найдете всю информацию журнала процесса PCTE в автоматически сгенерированных файлах журнала, созданных модулем autoFlow компании OptimalFlow. .

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

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

Я понимаю, что именно таким должен быть НАСТОЯЩИЙ процесс автоматизированного машинного обучения. OptimalFlow должен выполнять все эти задачи автоматически.

Выходные данные процесса Экспериментов обхода кластера конвейера (PCTE) включают информацию об алгоритмах предварительной обработки, примененных к подготовленным комбинациям наборов данных (DICT_PREP_INFO), выбранных основных функциях для каждой комбинации наборов данных (DICT_FEATURE_SELECTION_INFO), результатах оценки моделей (DICT_MODELS_EVALUATION). , комбинация разделенных наборов данных (DICT_DATA), таблица ранжирования результатов выбора модели (models_summary).

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

Шаг 5. Сохраните кластер конвейера с оптимальными моделями

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

Шаг 6: интерпретация результатов моделирования

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

Совершенно очевидно, что алгоритм KNN с настроенными гиперпараметрами работает лучше всего. И мы могли получить весь рабочий процесс конвейера из выходных данных PCTE.

В частности:

Оптимальный конвейер состоит из алгоритма KNN с использованием Dataset_214, Dataset_230 в комбинациях 256 наборов данных с лучшими параметрами [('веса': 'расстояние'),('n_neighbors': '5'),('алгоритм': ' kd_tree')]. R-квадрат равен 0,971, MAE — 1,157, MSE — 5,928, RMSE — 5,928, а показатель задержки — 3,0.

Все 256 результатов оценки производительности конвейера наборов данных могут быть сгенерированы с помощью динамической табличной функции модуля autoViz(более подробную информацию и другие существующие примеры визуализации можно найти здесь), и вы можете найти ее по адресу ./temp-plot.html.

10 лучших функций, выбранных модулем autoFS:

Детали предварительной обработки функции для набора данных_214, набора данных_230: Winsorization с выбросами по верхним 10% и нижним 10%; Кодирование функций «match_name» и «DATE_ONLY» с использованием метода среднего кодирования; Функция кодирования «ГРУППА» с помощью подхода кодирования OneHot; Ни один масштабатор не участвует в этапе предварительной обработки.

Это все. Мы создали наш первый проект OptimalFlowавтоматизированного машинного обучения. Просто и легко, правда? 😎

* Необходимо учитывать еще несколько вещей:

Наш главный конвейер модели имеет очень высокое значение R-Squared, которое превышает 0,9. Для большинства физических процессов это значение может быть неудивительным, однако, если мы предсказываем поведение человека, оно несколько завышено. Поэтому нам также необходимо учитывать другие показатели, такие как MSE.

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

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

  • Высокое значение R-квадрата обычно означает переоснащение. Так что отбросьте больше функций, чтобы предотвратить это;
  • Агрегация — хорошая идея для сбора данных, но она также позволяет нам потерять информацию о дисперсии по кругу и по времени;
  • Подход к масштабированию также важен для предотвращения переобучения, мы могли бы переместить «Нет» из нашего custom_pp и добавить какой-либо другой подход к масштабированию (например, minmax, робастный) на шаге 3;

Вкратце:

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

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

«Алгоритмист не смотрит на бесплатный обед». — Калберсон

И последнее, но не менее важное: как специалисты по данным, мы всегда должны помнить: независимо от того, какие алгоритмы автоматизированного машинного обучения, «теорема о бесплатном обеде» всегда применяется.

Похожие материалы по теме OptimalFlow:

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

Выбор и оценка модели ансамбля в машинном обучении с использованием OptimalFlow — простой способ выбора оптимальной модели с помощью простого кода

Создание модели автоматизированного машинного обучения без кода с помощью веб-приложения OptimalFlow

Обо мне:

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

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

Вы можете связаться со мной в LinkedIn или GitHub.