Как подготовить данные к моделированию: 5 операций Data Preparation

CRISP-DM, статистика, обработка данных, Machine Learning, машинное обучение, Data Mining

CRISP-DM, SEMMA и другие стандарты Data Mining не случайно выделяют подготовку данных в отдельную фазу. Data Preparation — весьма трудоемкий итеративный процесс, который занимает до 80% всех затрат ресурсов и времени в жизненном цикле Data Mining и включает следующие задачи обработки исходных («сырых») данных [1]:

  1. Выборка данных – отбор признаков (features или предикторов) и объектов с учетом их релевантности для целей Data Mining, качества и технических ограничений (объема и типа) [2];
  2. Очистка данных – удаление опечаток, некорректных значений (например, число в строковом параметре и пр.), отсутствующих значений (Missing values или NA), исключение дублей и разных описаний одного и того же объекта, восстановление уникальности, целостности и логических связей [3];
  3. Генерация признаков – создание производных признаков и их преобразование в векторы для модели Machine Learning, а также трансформация для повышения точности алгоритмов машинного обучения [4];
  4. Интеграция – слияние данных из различных источников (информационных систем, таблиц, протоколов и пр.), включая их агрегацию, когда новые значения вычисляются путем суммирования информации из множества существующих записей [2];
  5. Форматирование – синтаксические изменения, которые не меняют значение данных, но требуются для инструментов моделирования, например, сортировка в определенном порядке или удаление ненужных знаков препинания в текстовых полях, обрезка «длинных» слов, округление вещественных чисел до целого и т.д. [2].
CRISP-DM, статистика, обработка данных, Machine Learning, машинное обучение, Data Mining, этапы Data Preparation, подготовка данных
Data Preparation: этапы подготовки данных к моделированию

Почему нужно готовить данные к моделированию?

Далеко не всегда исходные данные получены из корпоративного хранилища или витрины данных и имеют четкую структуру. А, вопреки общественному мнению, машинное обучение не работает автономно и самостоятельно. Для адекватного функционирования этого инструмента, как и любого ИТ-средства, необходимы четко определенные исходные данные и инструкции. Невозможно загрузить в алгоритм Machine Learning все накопленные большие данные разных форматов и получить на выходе корректные результаты. Кроме того, исходные данные зачастую искажены и ненадежны: в них могут присутствовать значения, выходящие за границы допустимых диапазонов (шумы), аномальные значения (выбросы), а также пропуски (отсутствие значений).

Подготовка данных для Data Mining на Python

Код курса
DPREP
Ближайшая дата курса
по запросу
Продолжительность
32 ак.часов
Стоимость обучения
72 000 руб.

К тому же, часто возникает задача предварительной подготовки исходных данных. Например, если стоит задача определения тональности клиентских отзывов, необходимо сначала разбить текст на смысловые выражения (токены), «оцифровать» слова и превратить их в числовые вектора. В географических данных могут встречаться опечатки в адресах и ошибки определения координат из-за особенностей местности, в частности, в подвальных помещениях, среди холмов и т.д. [4]. В числовых рядах могут встречаться значения, выходящие за пределы возможного диапазона, например, цифра 7 в пятибальной шкале оценок. Также числовые значения исходных данных могут сильно варьироваться по абсолютным величинам: от нескольких сотых процентов до десятков тысяч единиц [5]. Подобные погрешности исказят результаты моделирования и не позволят получить модель машинного обучения с приемлемым качеством. 

CRISP-DM, статистика, обработка данных, Data Mining, этапы Data Preparation, подготовка данных
Трансформация данных в процессе Data Mining

Как Data Scientist готовит данные: методы и средства Data Preparation

Перед тем, как применять алгоритмы машинного обучения, данные необходимо преобразовать в табличное представление, которое наиболее распространено в Machine Learning и Data Mining. Получив файл с «сырыми» данными, например, в формате CSV, аналитик сначала просматривает его, чтобы понять характер записей (строк), а также смысл, тип и диапазон значений признаков (столбцов). Затем data scientist формирует выборку (dataset, датасет) – отбирает данные, которые потенциально имеют отношение к проверяемой гипотезе машинного обучения. Например, по номеру телефона можно определить регион абонента, чтобы предложить пользователю обратиться в местный филиал компании.

Далее выполняется очистка данных с помощью встроенных инструментов программных средств Big Data, например Hive, Azure, SQL Server Data Tools и пр. [6]. Иногда исследователь данных самостоятельно пишет скрипт, например, на языке R или Python, чтобы исправить опечатки в текстовых значениях, в частности, «ординатор» вместо «ординатр» и т.д. Аналогично, с помощью встроенных команд среды обработки данных или собственного скрипта, выполняется конвертация типов данных, агрегация признаков, заполняются отсутствующие значения, исправляются шумы и выбросы. Для числовых переменных применяется нормализация данных, чтобы привести их к одинаковой области изменения и использовать их вместе в одной модели Machine Learning [5]. Как правило, нормализация данных означает преобразование исходных числовых значений в новые в диапазоне от 0 до 1, основываясь на начальном минимуме и максимуме.

Определив независимые предикторы и сгенерировав на их основе целевые признаки, data scientist снова проверяет полученный датасет, чтобы исключить мультиколлинеарность факторов, которая повышает размерность модели Machine Learning и может стать причиной ее переобучения. Для этого используются методы отбора признаков (Feature Selection), в частности, главных компонент и ридж-регрессия (ridge regression). 

Интеграция и форматирование датасета, как правило, выполняются средствами СУБД для Big Data или инструментами, предназначенными  для подобных операций: IBM SPSS, SAS. Все эти действия, от выборки до сортировки данных, проводятся несколько раз, до тех пор, пока dataset не станет пригодным для моделирования, с учетом особенностей выбранных алгоритмов машинного обучения и проверяемой гипотезы.

Практический пример анализа данных временных рядов средствами Python и Apache Spark смотрите в нашей новой статье.

Анализ данных с помощью современного Apache Spark

Код курса
SPARK
Ближайшая дата курса
16 декабря, 2024
Продолжительность
32 ак.часов
Стоимость обучения
96 000 руб.

Как на практике подготовить данные к моделированию для использования в системах аналитики больших данных и машинного обучения на специализированных курсах в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве:

Я даю свое согласие на обработку персональных данных и соглашаюсь с политикой конфиденциальности.

Источники

 
  1. https://habr.com/ru/company/lanit/blog/328858/
  2. http://www.machinelearning.ru/wiki/index.php?title=CRISP-DM/Data_Preparation
  3. http://iso.ru/ru/press-center/journal/1789.phtml
  4. https://m.habr.com/ru/company/ods/blog/325422/
  5. https://neuronus.com/theory/nn/925-sposoby-normalizatsii-peremennykh.html
  6. https://docs.microsoft.com/ru-ru/azure/machine-learning/team-data-science-process/prepare-data
7 Comments
  1. […] Также интеллектуальный анализ текстовой информации нужен для определения тональности отзывов о компании или продукте при управлении корпоративной репутацией в интернете (Search Engine Reputation Management, SERM). Сегодня мы расскажем, что такое извлечение признаков из текста и как data scientist выполняет этот этап подготовки данных (Data Preparation). […]

Комментарии закрыты.

Поиск по сайту