Правильный порядок подготовки данных в машинном обучении

Вопрос или проблема

Для упомянутых ниже шагов подготовки данных

  • Обнаружение/обработка выбросов
  • Импутация данных
  • Масштабирование/стандартизация данных
  • Балансировка классов

Есть два под Questions

  1. Должны ли каждый из этих шагов выполняться после разделения на обучающую/тестовую выборку?
  2. Должен ли он выполняться на тестовых данных?

Буду признателен за объяснение каждого шага по отдельности.

Обработка данных – это современное искусство. Вам нужна интуиция, чтобы создать хорошую модель. Сначала необходимо выполнить очистку данных. Мусор ВХОДИТ = Мусор ВЫХОДИТ. Если вы не очистите данные, ваша модель будет мусором. Data Scientist тратят 20%-30% времени на очистку данных. Нет строгих правил для очистки данных. Но вы можете следовать нескольким рекомендациям по очистке данных.

  1. Удаление дублирующихся значений: – Вам нужно быть художником, чтобы разобраться в дублирующихся данных. Вы можете удалить дублирующиеся записи и оставить только одну запись из всех дублирующихся. pandas.DataFrame.drop_duplicates выполнит очистку данных за вас.
  2. Целостность данных: – необходимо убедиться, что данные точны. Если в некоторых полях столбца Возраст указаны Мужской или Женский, это на самом деле не имеет смысла. Или, скажем, возраст составляет 200 лет для человека, которому на самом деле 20 лет. Вы также можете рассматривать это как обнаружение выбросов. Но это не обязательно является выбросом.
  3. Пустые значения (Импутация данных): – Вы можете использовать библиотеку sklearn или pandas для этого. Обе имеют свои особенности. Совет: Используйте KNNImputer последней версии. Импутация для заполнения недостающих значений с использованием ближайших соседей. Это дает намного лучшие результаты. Ссылка

ВЫПОЛНИТЕ РАЗДЕЛЕНИЕ СЕЙЧАС :-

Чтобы избежать утечек данных, это должно быть сделано. Стандартизация данных перед разделением означает, что ваши обучающие данные содержат информацию о ваших тестовых данных.

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

ПРИМЕЧАНИЕ: Разделение выполняется до масштаба признаков (стандартизации). StandardScaler адаптируется и преобразуется на обучающих данных, а только преобразуется на тестовых данных.


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

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

В качестве наилучшей практики рекомендуется изначально разделить ваши данные на обучающую и тестовую выборку. Уберите тестовую выборку и не трогайте ее, пока не будете готовы оценить модель. Например, как это сделать: вы примените все ваши преобразования или изменения к тестовой выборке на основе наблюдений, сделанных из обучающей выборки. Например: стандартизация переменных в обучающей и тестовой выборках, используя моменты, оцененные с помощью обучающей выборки (пример – см. вариант 3). Это даст вам лучшее представление о том, как ваша модель будет работать с невиданными примерами.

Ответ или решение

Правильный порядок подготовки данных для машинного обучения

Подготовка данных является ключевым этапом в процессе разработки моделей машинного обучения. Неправильная обработка данных может привести к недостаточно качественным результатам. Рассмотрим все основные шаги подготовки данных и их правильный порядок.

1. Обнаружение и обработка выбросов

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

  • Методы обнаружения выбросов: использование визуализации (гистограммы, коробчатые диаграммы) или статистических методов (например, Z-оценки).
  • Обработка: можно удалить выбросы или заменить их средним/медианным значением, в зависимости от контекста и важности.

2. Импутация данных

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

  • Методы импутации: использование алгоритма KNN (K-ближайших соседей), среднее значение, медиана или наиболее частое значение могут быть подходящими.
  • Пример: библиотека KNNImputer из Scikit-learn может дать лучшие результаты по сравнению с простыми статистическими методами, так как учитывает наличие корреляций.

3. Масштабирование/стандартизация данных

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

  • Стандартизация: переводит данные так, чтобы они имели среднее 0 и стандартное отклонение 1.
  • Масштабирование: иногда целесообразно использовать диапазон значений (0–1), особенно для алгоритмов, зависящих от расстоянй (например, SVM).

4. Балансировка классов

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

  • Oversampling: увеличение числа образцов меньшего класса (например, метод SMOTE).
  • Undersampling: уменьшение числа образцов более крупного класса.

Подход к данным после разбиения на обучающую и тестовую выборки

1. Нужно ли выполнять указанные шаги после разбиения на обучающую и тестовую выборки?

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

2. Нужно ли выполнять эти шаги на тестовых данных?

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

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...