Пайплайн – 1. Последовательные стадии работы с данными, включающие как извлечение данных, скраббинг (очистку), Разведочный анализ данных (EDA), моделирование, интерпретацию и пересмотр. 2. Класс библиотеки Scikit-learn, последовательно применяющий к исходным данным настраиваемые преобразования. 3. Автоматизируемая последовательность обучения и оптимизации модели в PyTorch и других библиотеках.
Пайплайн как последовательность:
Извлечение
Этот этап включает сбор данных из Интернета или баз данных и конвертация в определенные форматы.
Например, приложение Apple. Здоровье позволяет экспортировать свои медданные в формате .xml, и чтобы взаимодействовать с данными в дальнейшем, мы можем использовать библиотеку applehealthdata и конвертировать их в .csv:
Скраббинг
Это очистка данных, самый трудоемкий этап, и он требует наибольших усилий. Он делится на два этапа:
Изучение
- Выявление ошибок
- Поиск Пропусков (Omission)
- Поиск повреждений данных
Очистка
- Замена или заполнение отсутствующих значений
- Исправление повреждений
Разведочный анализ данных
Когда данные достигают этого этапа, они не содержат ошибок и пропущенных значений и, следовательно, подходят для поиска закономерностей с использованием визуализации.
Великолепная библиотека для всестороннего разведочного анализа – pandas_profiling. На изображении ниже отдельно взятый признак Датасета (Dataset) о клиентах банка – длительность телефонного разговора, выраженный Вещественным числом (Real Number), исследуется с разных точек зрения: количества уникальных значений (Distinct), пропусков (Missing), Слишком удаленных значений (Infinite), Среднего арифметического (Mean), Минимума (Minimum), Максимума (Maximum), нулевых значений (Zeros), используемой признаком памяти (Memory size).
Моделирование
Это этап обработки, где на сцену выходит Машинное обучение (ML). Модели (Model) – это не что иное, как обнаруженные статистические закономерности, которые используются для принятия лучших бизнес-решений.
На изображении ниже – Модель Хольта-Винтера (Holt-Winters' Model), предсказывающая энергопотребление с помощью Датасета (Dataset) компании Duquesne Light Company. Прежде чем использовать модель на реальных задачах, мы производим оценку ее предсказательной способности. Мы производим предсказание для прошлого (в данном случае, 2017 - 2018 гг.) и сравниваем с реальным энергопотреблением. Предсказание, обозначенное розовым, довольно сильно отличается от объективной реальности (Ground Truth), так что модель предстоит перенастраивать. Нередко для самых актуальных проблем современности удается добиться лишь посредственной предсказательной способности (70-80%), и каждый следующий процент Дата-сайентистам (Data Scientist) приходится отвоевывать.
Интерпретация
Это перефразирование Инсайтов (Insight) Вашей модели, ключевой этап, на котором с использованием психологических методов, специфических знаний о бизнесе и навыков презентации Вы можете преподнести свою модель заказчику и широкой аудитории вообще.
Пересмотр
По мере изменения бизнес-ситуации появляются новые переменные, которые могут снизить качество существующих моделей. Потому периодические обновления – неотъемлемая часть работы.
Наука о данных – это не просто уникальные алгоритмы Машинного обучения, но и решения, которые вы предоставляете на их основе. Очень важно убедиться, что пайплайн выдержит возможные незначительные изменения формы данных, и Вы точно определяете бизнес-проблематику, чтобы впоследствии предлагать точные решения.
Пайплайн Scikit-learn
В узком смысле пайплайн – это модуль sklearn.pipeline, который позволяет автоматизировать предварительные преобразования данных перед обучением модели. Посмотрите, как использует пайплайны @baghern с целью идентифицировать авторов по их стилю (оригинал на английском). Импортируем все необходимые библиотеки:
Импортируем данные, которые для Вашего удобства залиты на Dropbox. Чтобы повторить это позднее, установите параметр dl=1 после вопросительного знака в конце ссылки, это разрешит скачивание файла:
Для того, чтобы сконцентрировать внимание на пайплайнах, мы будем использовать датасет с выполненным Конструированием признаков (Feature Engineering). Последнее добавило Датафрейму (Dataframe) следующие признаки:
- PROCESSED (тот же текст, но без ругани)
- LENGTH (количество символов)
- WORDS (количество слов)
- WORDS_NOT_STOPWORDS (количество небранных слов)
- AVG_WORD_LENGTH (Средняя длительность слова)
- COMMAS (Количество запятых)
Как просто, на первый взгляд, определить авторский стиль! Всего-то определить, насколько автор склонен ругаться, да подсчитать запятые... Но все не так просто. Мы будем работать с таким датафреймом:
Тренировочные данные подобраны случайным образом, и это становится заметно с помощью индекса:
Зададим вспомогательные функции, выбирающие из датафрейма текстовые и числовые признаки для автоматизации преобразований в пайплайнах:
Создадим пайплайн, последовательно выбирающий каждый столбец, затем выполним преобразование в матрицу TF-IDF только для этого столбца и вернем результат. Для каждого использованного слова мы определим Меру оценки его важности в контексте документа (TF-IDF):
Компилятор уведомляет нас, что матрица существенно выросла и состоит из 13 с лишним тысяч столбцов вещественных чисел, причем некоторые ячейки пустуют (sparse). В сжатом виде ячеек, несущих значения, чуть больше 148 тысяч.
Стандартизуем признак "длина" [поста] с использованием селектора числовых признаков:
Пайплайн показывает нам, что ряд, прошедший Стандартизацию (Standartization), выглядит так:
Объединим признаки, характеризующие стиль автора, с помощью FeatureUnion:
Теперь прогоним объединение признаков, характеризующих уникальность автора, через пайплайн:
Несмотря на то, что форма матрицы осталась прежней, ее наполненность увеличилась до 213+ тысяч:
Используем сгенерированные признаки, характеризующие авторский стиль, для предсказания# с помощью классификатора "случайный лес":
Аккуратность (Accuracy) достигла 67%, и для начала это хороший результат. Но для реальных проектов этого недостаточно. Интуитивное ощущение, что такого скромного набора метаданных для идентификации автора среди миллионов других, оказалось верным.
Ноутбук, не требующий дополнительной настройки на момент написания статьи, можно скачать здесь.
Понравилась статья? Поддержите нас, поделившись статьей в социальных сетях и подписавшись на канал. И попробуйте наши курсы по Машинному обучению на Udemy.