Наука о данных

Наука о данных 101: Руководство по использованию конвейеров в Python

Полное руководство по использованию конвейеров в Python

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

Образец: процесс начинается с выборки данных, т. е. выбора подходящего набора данных для моделирования.

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

Изменить: преобразовать данные → Создать новые атрибуты и ввести отсутствующие значения.

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

Оценка: сравните разные модели и выберите ту, которая лучше всего соответствует вашим данным и имеет максимальную точность.

Каждый раз, когда мы добавляем данные в нашу модель, они должны пройти шаги 1, 2 и 3, прежде чем их можно будет добавить в существующую или новую модель. Вместо того, чтобы проходить эти три этапа каждый раз, когда вы хотите использовать другой набор данных, вы можете автоматизировать эти этапы подготовки данных с помощью «Конвейера». В этой статье я создам конвейер и протестирую его, используя данные Boston Housing Property за 2019 год. Я буду использовать тот же конвейер для подготовки данных Boston Housing Property за 2020 год. Когда я начал изучать Pipeline, у меня было несколько источников, которые обладали всей информацией в одном место. Эта статья предоставит исчерпывающее руководство по конвейерам, включая подготовку числовых, категориальных переменных, объединение их в один этап и, наконец, подготовку данных для анализа.

В качестве первого шага мы загрузим набор данных Boston Housing Property. Наша цель - подготовить данные Boston Housing Property за 2020 год, чтобы можно было прогнозировать цены на дома на одну семью.

Мы создадим 2 отдельных конвейера: один для выбора строк, относящихся к домам на одну семью, а другой для подготовки данных для анализа.

A) Конвейер 1. Выберите строки, необходимые для анализа:

Для выбора строк, необходимых для анализа, мы создадим настраиваемую функцию для выбора строк и используем функцию FunctionTransformer для вызова этой настраиваемой функции (select_rows), как показано ниже. Наконец, мы будем использовать функцию Конвейер, чтобы добавить эти шаги в конвейер. Этот конвейер будет иметь только один шаг, но вы можете добавить несколько шагов в каждый конвейер, как вы увидите в следующем разделе.

Б) конвейер 2: подготовка данных

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

  1. Числовые переменные: жилая площадь, количество ванн, камин и т. д.

Глядя на данные, переменные имеют некоторые пропущенные значения. Мы будем вменять их среднему значению столбца. Для этого мы будем использовать функцию SimpleImputer с стратегией = ‘mean’, как показано ниже. Я создам num_pipeline для применения этих преобразований.

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

2) Категориальные переменные: «STRUCTURE_CLASS», R_ROOF_TYP, R_EXT_CND и т. д.

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

3) Категориальная переменная: Стиль ванной и кухни.

Далее мы создадим конвейер для стилей кухни и ванной. Это категориальные переменные, но нам нужен отдельный конвейер, поскольку мы должны вменять отсутствующие значения с помощью «NA» вместо режима. Подобно последнему шагу, мы будем использовать onehotencoder () для кодирования переменной.

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

Наконец, мы загрузим набор данных Boston Housing Property 2020 и пропустим его через оба конвейера, как показано ниже. В первом конвейере будут выбраны строки, относящиеся к домам на одну семью. Затем мы передадим вывод этого конвейера через Полный конвейер, чтобы подготовить данные для анализа.

Заключение:

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

Вы можете найти полный код здесь!

Ссылки:

  1. Документация Sklearn


2. Ссылка на Github: https://github.com/evjanaki/DataPreperation/blob/master/Medium_Pipeline_DataPrep.ipynb