дружественное руководство по конвейерам обучения scikit
Введение :
Хорошо! Кто бы не хотел построить базовую модель в производственной среде, легко выполнять итерации поверх нее и развертывать один и тот же код для всех, верно!
Итак, в этом сообщении в блоге я собираюсь поделиться своим опытом использования конвейера обучения scikit для создания продуктового кода, чтобы вы не тратили больше времени, как я :)
Чем это будет полезно: я упомянул полный итеративный процесс при построении пайплайнов, чтобы он дал общую картину, и вы могли начать программировать вместо того, чтобы тратить больше времени на исследования.
Основы:
Во-первых, давайте проясним некоторые концепции.
Все функции в scikit Learn сгруппированы в две группы, и Sklearn так красиво разработал их, чтобы иметь одинаковый интерфейс Transformers & Estimators.
Трансформеры:
Он используется для подготовки данных и реализует функцию подгонки и преобразования.
Все функции предварительной обработки данных из scikit Learn следуют этой архитектуре.
Пример: для стандартного отклонения функция подгонки изучает среднее значение, а затем применяется к любым данным, переданным в функцию преобразования.
Если для какого-либо варианта использования преобразователей scikit learning недостаточно, мы можем создать собственный преобразователь, расширив базовые классы.
Оценщики:
Используется для моделирования и имеет функции, называемые подгонкой и прогнозированием.
Все алгоритмы моделирования из scikitlearn следуют этой архитектуре.
Пример: метод подбора логистической регрессии находит коэффициенты в формуле регрессии, а преобразование делает прогнозы на основе сохраненных коэффициентов.
Если вы хотите понять, как они устроены, вы можете выбрать свои любимые преобразователи/оценщики и посмотреть исходный код в scikitlearn.
Теперь любой типичный цикл машинного обучения включает в себя вызов преобразователей в разных столбцах и объединение их вместе, чтобы получить готовый вектор признаков, а затем передать его оценщику для обучения и прогнозирования. Таким образом, чтобы упростить этот процесс, конвейеры пригодятся.
См. здесь для хорошего введения.
С этого момента содержит вопросы и ссылки, которые быстро заставляют вас думать о различных возможностях.
Объединение функций и перенос столбцов
Ссылка ссылка
Подводя итог, можно сказать, что преобразователь столбцов принимает имена столбцов напрямую, но для объединения функций мы должны пройти через пользовательский преобразователь, который выполняет внутреннюю фильтрацию.
Функциональный преобразователь против пользовательских преобразователей
Что ж, если вы уже определили функции для очистки данных и просто хотите использовать их в конвейере, вы можете написать функцию-оболочку (см. здесь) и передать все свои функции в соответствующий конвейер.
И если вы просто выполняете преобразование и никакие параметры не сохраняются при преобразовании, лучше использовать функциональный преобразователь.
Практические советы:
- Трансформатор столбца — имеет атрибут остатка, который поможет решить, что делать с оставшимися столбцами (прохождение, отбрасывание) и т. д.
- Преобразователь столбца — атрибут столбца принимает строку столбца или список столбцов для передачи данных преобразователям с 1d и 2d соответственно, поэтому выберите соответствующий формат на основе исключений входного преобразователя.
- Порядок преобразователей определяет порядок признаков в конце вектора признаков, так что будьте осторожны.
- Выход трансформатора всегда представляет собой двумерную матрицу, поэтому мы всегда можем получить кадр данных в конце каждого преобразования.
- Если для некоторого столбца требуется несколько преобразований, используйте конвейер с несколькими преобразователями и передайте его преобразователю столбца.
Подробное описание некоторых из упомянутых советов см. здесь.
Я надеюсь, что это послужит справочным руководством при использовании конвейера обучения scikit, спасибо !!.