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

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

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

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

Проверка типов данных

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

Удаление повторяющихся значений

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

Удаление выбросов и аномалий

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

Обработка пропущенных значений

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

Существует несколько способов обработки пропущенных значений. Ниже приведены несколько распространенных примеров:

  1. Удаление. Удаление строк или столбцов с отсутствующими значениями. Обычно это делается, когда процент отсутствующих значений очень мал или когда отсутствующие значения не оказывают существенного влияния на анализ или результаты.
  2. Вменение среднего/медианы: замена отсутствующих значений средним значением, медианой или модой признака. Это следует использовать только для числовых признаков (и иметь в виду только для нормального распределения).
  3. Вменение режима: замена отсутствующих значений режимом или наиболее часто встречающимся значением функции. Это следует использовать только для категориальных объектов, где одна категория является доминирующей.
  4. Заполнение вперед/назад: заполнение пропущенных значений значением из предыдущего или следующего наблюдения в наборе данных. Этот метод используется для данных временных рядов или когда пропущенные значения встречаются в шаблоне.
  5. Импутация регрессии: использование модели регрессии для оценки отсутствующих значений на основе других функций в наборе данных. Этот метод хорошо работает, когда существует сильная корреляция между признаками.
  6. Вменение машинного обучения. Использование модели машинного обучения, такой как K-ближайшие соседи (KNN), или нейронной сети для оценки пропущенного значения.
  7. Наилучшее предположение, основанное на знании предметной области.Отсутствующие значения также можно заменить оценкой, основанной на знании предметной области и понимании бизнеса. Это должно быть сделано с экспертом в предметной области, который понимает предметную область и данные.

Разработка функций

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

Преобразование функций

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

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

Особенности строительства

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

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

Масштабирование функций

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

  • Стандартизация: функции масштабируются так, чтобы среднее значение равнялось 0, а стандартное отклонение равнялось 1, путем вычитания среднего значения и деления на стандартное отклонение. Это полезно для нейронных сетей и других алгоритмов, основанных на градиентном спуске.
  • Нормализация. Масштабирует характеристики в диапазоне от 0 до 1 путем вычитания минимального значения и деления на диапазон. Полезно для алгоритмов, которые полагаются на меры сходства или расстояния, такие как алгоритмы кластеризации, метод k-ближайших соседей (KNN), методы опорных векторов или анализ основных компонентов (PCA).
  • Надежное масштабирование. Подобно нормализации, оно более устойчиво к выбросам, чем другие методы масштабирования. Он масштабирует признаки, используя межквартильный диапазон (IQR) вместо диапазона или стандартного отклонения.
  • Шкала Max-abs: масштабирует объекты от -1 до 1 путем деления каждого объекта на его максимальное абсолютное значение. Некоторыми примерами алгоритмов, которые могут выиграть от масштабирования max-abs, являются нейронные сети и алгоритмы, используемые для обработки изображений.

Выбор функции

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

Методы фильтрации

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

Методы-оболочки

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

Встроенные методы

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

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

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

Разделение данных для моделирования

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

Метод удержания

Самый простой и распространенный метод — случайным образом разделить данные на два непересекающихся набора — обучающий набор и тестовый набор. Можно указать размер тестового набора, а оставшиеся данные используются для обучения модели. Обычно используется разделение 80% обучения и 20% тестирования. Однако можно использовать и другие соотношения.

Разбиение по времени

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

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

Разделение на три набора

Бывают ситуации, когда полезно разделить данные на три набора. Третий набор известен как набор проверки и используется для оценки производительности модели во время настройки гиперпараметров или выбора модели. В этом сценарии данные сначала разбиваются на обучающий набор и набор для тестирования. Затем обучающий набор используется для обучения модели, а тестовый набор используется для оценки окончательной производительности модели.

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

Заключение

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

Как только мы закончим предварительную обработку наших данных, мы можем начать строить наши модели и готовить!