Перейти к содержимому

Подготовка данных

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

Например, столбец Отдел может содержать значения IT, Продажи и HR. Человеку их смысл понятен, но перед передачей модели эти категории нужно представить числами. Проблемой могут стать и пропущенные значения: неизвестный возраст, незаполненная зарплата или неуказанная категория. Большинство моделей не умеет работать с ними напрямую.

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

Упрощённо процесс выглядит так:

DataFrame -> подготовка признаков -> Matrix -> модель

На этапе подготовки данных:

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

Обработка пропусков показывает, как использовать Imputer, чтобы заменить пустые значения средним, медианой или константой.

Кодирование категорий объясняет, как преобразовать строковые категории в числа с помощью OrdinalEncoder и OneHotEncoder.

Масштабирование признаков показывает, зачем нужен StandardScaler и почему некоторые модели чувствительны к разному масштабу чисел.

При подготовке данных используются два уровня.

  • На уровне DataFrame выполняются начальные преобразования: выбор столбцов, обработка пропусков и кодирование категорий.
  • На уровне Matrix преобразуются числовые данные, подготовленные для передачи модели машинного обучения.
  • Преобразования выполняются последовательно: сначала — на уровне DataFrame, затем — на уровне Matrix.

Например, Imputer, OrdinalEncoder и OneHotEncoder работают с таблицей:

df := imputer.FitTransform(df);
df := encoder.FitTransform(df);

А StandardScaler применяется к матрице признаков:

var X := df.ToMatrix(['Возраст', 'Зарплата', 'Отдел']);
var Xscaled := scaler.FitTransform(X);

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