ЭФФЕКТИВНЫЕ МЕТОДЫ ПРЕДОБРАБОТКИ ДАННЫХ: КАК ПОДГОТОВИТЬ ДАННЫЕ ДЛЯ МАШИННОГО ОБУЧЕНИЯ

Хузяханов Егор Илдарович1, Шарко Семён Сергеевич1, Поляков Павел Михайлович1
1Российский технологический университет МИРЭА, студент 3 курса института Информационных технологий

Аннотация
Статья рассматривает эффективные методы предобработки данных для машинного обучения, подчеркивая их важность для успешного применения моделей. Введение освещает значение предобработки данных и влияние качества данных на производительность моделей. Основное внимание уделяется этапам анализа и визуализации данных с использованием инструментов, таких как Pandas и Matplotlib, а также методам очистки данных, включая обработку пропусков, удаление дубликатов и выявление выбросов.
Далее рассматриваются преобразование данных, включая нормализацию, стандартизацию и методы работы с категориальными переменными, такие как одноразрядное кодирование и создание новых признаков. Также объясняется уменьшение размерности с помощью методов PCA, t-SNE и UMAP, что помогает сохранить информацию и улучшить визуализацию.
В заключительной части обсуждаются методы балансировки классов, включая oversampling и undersampling для работы с несбалансированными данными. Приводятся практические примеры, которые демонстрируют каждый из методов предобработки, а также даются советы по выбору методов в зависимости от типа данных и конкретной задачи. В итоге подчеркивается значимость качественной предобработки данных для повышения точности и надежности моделей машинного обучения.

Ключевые слова: , , , , , , , , , , , , ,


Рубрика: 05.00.00 ТЕХНИЧЕСКИЕ НАУКИ

Библиографическая ссылка на статью:
Хузяханов Е.И., Шарко С.С., Поляков П.М. Эффективные методы предобработки данных: как подготовить данные для машинного обучения // Современные научные исследования и инновации. 2024. № 11 [Электронный ресурс]. URL: https://web.snauka.ru/issues/2024/11/102801 (дата обращения: 28.05.2025).

Введение

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

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

Понимание данных

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

Для анализа данных часто используются библиотеки Python, такие как Pandas и Matplotlib.
При помощи Pandas можно удобно манипулировать данными, используя такие методы, как describe(), который предоставляет статистическую информацию о числовых столбцах, и info(), который позволяет получить общее представление о DataFrame. Визуализация данных с помощью Matplotlib и Seaborn помогает графически представить распределение данных, выявить потенциальные аномалии и выявить паттерны, которые могут быть полезны для дальнейшей предобработки.

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

Очистка данных

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

Обработка пропусков

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

1. Удаление строк/столбцов:

  • Если в определенной строке или столбце слишком много пропусков, имеет смысл удалить их. Например, если в столбце содержится более 30% пропусков, его можно исключить из анализа, так как такой объем недостающих данных может сильно исказить результаты. Удаление строк с пропусками также может быть уместным, особенно если потеря информации не критична.

2. Импутация значений:

  • Импутация — это процесс заполнения пропусков определенными значениями [1]. Существует несколько подходов:
    • Среднее значение: наиболее распространенный метод, при котором пропуски заполняются средним значением по этому столбцу. Это удобно, но может быть неэффективно, если данные имеют выбросы.
    • Медиана: лучше подходит для данных с выбросами, так как менее чувствительна к экстремальным значениям. Заполнение пропусков медианой помогает сохранить распределение данных.
    • Модальное значение: этот метод используется для категориальных данных, когда пропуски заменяются наиболее часто встречающимся значением в столбце.

Рисунок 1. Пример импутации пропусков

Удаление дубликатов

Дубликаты в данных могут привести к искажению результатов анализа и моделирования. Методы для обнаружения и удаления дубликатов:
1. Обнаружение дубликатов:

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

2. Удаление дубликатов:

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

Обработка выбросов

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

  • Используйте графики для выявления выбросов. Гистограммы и диаграммы размаха помогут вам наглядно увидеть, какие значения значительно отклоняются от остальных.

2. Удаление по порогу:

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

3. Замена выбросов:

  • Если выбросы были обнаружены, замените их на медиану или другое приемлемое значение, чтобы сохранить общее распределение данных.

Рисунок 2. Пример обработки выбросов

Преобразование данных

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

Нормализация

Нормализация — это приведение числовых признаков модели к одинаковому масштабу или диапазону. Данный процесс используют для того, чтобы все признаки (переменные) в данных были “на одном уровне”. Это предотвращает влияние на модель таких ситуаций, когда один признак выражается в тысячах, а другой — в единицах. [2]

Самым простым случаем нормализации является Min-Max Scaling.

Min-Max Scaling — это метод нормализации данных, при котором каждый элемент данных преобразуется в новое значение в определённом диапазоне, обычно от 0 до 1. Формула для применения Min-Max Scaling следующая:

где:

  • x – исходное значение данных;
  • - нормализованное значение;
  • min(x) — минимальное значение в выборке;
  • max(x) — максимальное значение в выборке.

Представим визуализацию примера использования данной нормализации на Рисунке 3.

Рисунок 3. Данные до и после нормализации

Как мы видим, интервал значений преобразовался от [0;70] до [0;1].

Стандартизация

Нормализация используется, когда возникает необходимость привести данные к одинаковому для всех признаков диапазону (например, [0, 1]).

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

Стандартизация — это процесс, при котором данные преобразуются таким образом, чтобы каждый из признаков имел среднее значение 0 и стандартное отклонение 1.

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

Примером стандартизации является Z-score Normalization.

Z-score — это метод нормализации данных, который помогает привести данные к стандартному нормальному распределению, где среднее значение μ равно 0, а стандартное отклонение σ — 1. Такой подход используется, когда нужно, чтобы данные были “приведены к одинаковому масштабу”, но с сохранением их распределения. Формула данной стандартизации следующая:

где:

  • x — исходное значение;
  • — нормализованное значение (Z-score);
  • μ — среднее значение выборки;
  • σ — стандартное отклонение выборки.

Пример стандартизации представлен на Рисунке 4.

Рисунок 4. Данные до и после стандартизации

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

Преобразования категориальных переменных

Категориальные переменные — это такие переменные, которые представляют собой категории или группы. Например, “цвет” может быть категориальной переменной с такими значениями как “красный”, “синий” и “зелёный”.

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

Рисунок 5. Данные до и после преобразования категориальных переменных

Создание новых признаков

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

Приведем пример: если у нас есть количество покупок, которые клиент делает в месяц, мы можем создать новый признак, умножив это число на 12, чтобы получить количество покупок в год. Таким образом новый признак позволяет создать предсказания на протяжении долгого времени.

Уменьшение размерности

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

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

Рассмотрим основные методы уменьшения размерности.

  • PCA — это линейный метод, который преобразует данные в новое пространство, выбрав новые оси (компоненты), которые максимизируют вариацию (дисперсию) данных. Эти новые оси называются главными компонентами.
  • t-SNE — это метод уменьшения размерности, который хорошо работает с данными, имеющими нелинейные зависимости. Основная цель t-SNE — сохранить локальную структуру данных, то есть сохранять расстояния между похожими точками в низкоразмерном пространстве.
  • UMAP — это метод уменьшения размерности, который похож на t-SNE, но с рядом преимуществ. Он предназначен для сохранения как локальной, так и глобальной структуры данных, при этом он более эффективен по времени и может работать с более большими наборами данных.

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

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

Существует несколько стратегий для борьбы с дисбалансом:

  1. Oversampling (увеличение меньшинства) – заключается в увеличении числа примеров меньшинства. Один из популярных методов – SMOTE (Synthetic Minority Over-sampling Technique), который синтетически создает новые примеры на основе имеющихся данных. [3]
  2. Undersampling (уменьшение большинства) – уменьшение числа примеров большинства, чтобы сбалансировать распределение классов. Этот метод уменьшает выборку класса, который доминирует, тем самым уменьшая общий объем данных.

Оба подхода имеют свои преимущества и недостатки. Oversampling может привести к переобучению, так как модель увидит несколько “клонированных” примеров, а undersampling рискует потерять важную информацию из большинства.

Данные до и после балансировки

На изображении представлено распределение данных до и после применения методов балансировки. До балансировки видно значительное преобладание основного класса, из-за чего модель плохо распознаёт редкий класс. После балансировки, с использованием методов, таких как SMOTE и RandomUnderSampler, оба класса представлены более равномерно. Это улучшает способность модели распознавать примеры редкого класса, что особенно важно для задач с несбалансированными данными.

Рисунок 6. Данные до и после балансировки

На столбчатой диаграмме показано, как балансировка данных с помощью SMOTE и RandomUnderSampler улучшает Recall и F1-score для редкого класса по сравнению с результатами без балансировки. Без балансировки модель демонстрирует низкий Recall (0.18) и F1-score (0.29), что отражает её слабую способность распознавать редкий класс, поскольку основная масса предсказаний относится к более частому классу.

После применения SMOTE Recall увеличивается до 0.69, а F1-score — до 0.35, что показывает улучшение точности и полноты для редкого класса. Метод RandomUnderSampler повышает эти показатели ещё больше, до 0.71 и 0.37 соответственно. Оба подхода значительно улучшают классификацию редкого класса, что особенно важно в задачах, требующих точного выявления малочисленных категорий, таких как аномалии или медицинская диагностика.

Рисунок 7. Метрики до и после балансировки

Практические советы:

  • SMOTE подходит для данных с высоким количеством признаков, так как создает новые синтетические данные. Однако его следует использовать осторожно в задачах, где важна интерпретируемость данных, так как сгенерированные примеры могут усложнить их анализ.
  • Undersampling рекомендуется применять, когда количество данных велико, и потеря части выборки не приведет к значительной потере информации. Он может быть особенно полезен при ограниченных ресурсах для обучения модели.

Заключение

Балансировка классов – важный шаг в предобработке данных, который позволяет улучшить качество моделей машинного обучения в задачах с дисбалансом данных. Использование методов oversampling и undersampling дает возможность корректировать несбалансированные выборки, что положительно сказывается на результатах.

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


Библиографический список
  1. Абраменкова И. В., Круглов В. В. Методы восстановления пропусков в массивах данных // Программные продукты и системы. 2005. №2. URL: https://cyberleninka.ru/article/n/metody-vosstanovleniya-propuskov-v-massivah-dannyh (дата обращения: 18.11.2024).
  2. Никулин Владимир Николаевич, Канищев Илья Сергеевич, Багаев Иван Владимирович Методы балансировки и нормализации данных для улучшения качества классификации // КИО. 2016. №3. URL: https://cyberleninka.ru/article/n/metody-balansirovki-i-normalizatsii-dannyh-dlya-uluchsheniya-kachestva-klassifikatsii (дата обращения: 18.11.2024).
  3. Махсотова Цагана Валентиновна Исследование методов классификации при несбалансированности классов // Научный журнал. 2017. №5 (18). URL: https://cyberleninka.ru/article/n/issledovanie-metodov-klassifikatsii-pri-nesbalansirovannosti-klassov (дата обращения: 18.11.2024).


Все статьи автора «Хузяханов Егор Илдарович»


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

Связь с автором (комментарии/рецензии к статье)

Оставить комментарий

Вы должны авторизоваться, чтобы оставить комментарий.

Если Вы еще не зарегистрированы на сайте, то Вам необходимо зарегистрироваться: