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

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

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

Вменение отсутствующих данных

Данные в реальном мире редко бывают чистыми и однородными. Обычно это происходит по следующим причинам

  1. Поврежденные данные
  2. Не удалось загрузить информацию
  3. Неполное извлечение
  4. Шумно и непоследовательно
  5. Неполные данные

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

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

«Здравый смысл» здесь неуместен. По моему опыту, два наиболее часто рекомендуемых способа работы с отсутствующими данными на самом деле не точны.

Они есть:

  1. Удаление наблюдений с отсутствующими значениями
  2. Вменение пропущенных значений на основе других наблюдений

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

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

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

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

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

  1. MCAR (полностью случайное отсутствие), где характер отсутствия статистически не зависит от записи данных. Пример: у вас есть набор данных на листе бумаги, и вы проливаете кофе на бумагу, уничтожая часть данных.
  2. MAR (Missing At Random), где распределение вероятности шаблона отсутствия функционально зависит от наблюдаемого компонента в записи. MCAR является частным случаем MAR. Пример: у вас есть вопрос в опросе о том, является ли участник опроса наркоманом, и еще один вопрос о том, употребляет ли участник опроса менее одной порции алкоголя в год. Предположим, что ответ на вопрос об алкогольном напитке всегда поддается наблюдению, тогда вероятность того, что кто-то не сможет ответить на вопрос о наркомане, скорее всего, функционально зависит от его ответа на вопрос об алкогольном напитке.
  3. MNAR (Missing Not at Random), который определяется как случай, который НЕ является MAR. В случае MNAR могут возникнуть ситуации, когда в одной и той же записи отсутствуют вопросы о наркомании и алкогольном опьянении. Другой пример — это случай, когда на вопрос: «Какой у вас пол?» Предположим, что женщины реже отвечают на этот вопрос, чем мужчины. Это еще один пример вопроса MNAR, потому что вероятность наблюдаемого ответа условно зависит от ненаблюдаемого компонента записи данных.

Важные стратегии:

  1. Мы никогда не должны вставлять среднее значение, режим, медиану, максимум, минимум или что-либо еще для пропущенных значений. То есть избегайте детерминированного вменения, даже несмотря на то, что оно широко используется и доступно в большинстве программных пакетов. Он недооценивает и искажает статистические закономерности (например, недооценивает дисперсию), присутствующие в выборке данных.
  2. Если записи данных являются MCAR, то вы можете удалить записи с отсутствующими данными.
  3. Если записи данных представляют собой MCAR, то иногда вы можете стохастически вменить пропущенные значения, а не детерминистически вменить их. Таким образом, это означает, что если вы укажете предельное распределение вероятности отсутствующего значения как гауссовское с некоторым известным средним значением и некоторой известной дисперсией, вы можете выбрать из этого распределения, чтобы вставить значения в набор данных. Нам нужно быть осторожными и провести дополнительные исследования и анализ данных, полностью понять бизнес и принять взвешенное решение.
  4. Если данные представляют собой MAR, то для обработки отсутствующих наблюдений можно использовать такой алгоритм, как максимизация ожидания.
  5. Если данные представляют собой MNAR, мы можем включить в запись данных двоичные индикаторы, которые явно определяют, когда переменная недоступна для наблюдения. Проблема с этим подходом заключается в том, что необходимо разработать сильно нелинейную модель для правильной интеграции этой информации соответствующим образом. Это может работать в алгоритме машинного обучения, где бинарные индикаторы «отключают» влияние предикторов, которые не наблюдаются. Следовательно, теория MNAR (т. е. теория совместного распределения полной записи данных и шаблона отсутствующих данных) реализуется в вероятностной модели обучающейся машины ее статистической среды.

Отсутствуют числовые данные

Для отсутствующих числовых данных мы должны отметить и заполнить значения.

  1. Отметьте наблюдение индикаторной переменной отсутствия.
  2. Во-вторых, заполните исходное отсутствующее значение 0, чтобы выполнить техническое требование отсутствия пропущенных значений.

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

Отсутствуют категориальные данные

Лучший способ справиться с отсутствующими данными для категориальных функций — просто пометить их как «Отсутствует»!

  1. По сути, мы добавляем новый класс для функции.
  2. Это сообщает алгоритму, что значение отсутствует.
  3. Это также позволяет обойти техническое требование об отсутствии пропущенных значений.

1. Полный анализ случая

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

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

Преимущества

  • Легко реализовать
  • Один и тот же набор данных используется для всех анализов (без обработки данных)
  • Сохраняет распределение переменных (если данные представляют собой MCAR, то распределение переменных сокращенного набора данных должно совпадать с распределением в исходном наборе данных)

Недостатки

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

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

Вывод

Если вы только собираетесь начать свое машинное обучение и хотите учиться с нуля, я буду делать эту серию, которая будет длиться 5–6 минут о машинном обучении и некоторых побочных проектах в конце каждой главы, так что следите за обновлениями и будьте счастливы обучение

Это мое личное исследование, если у вас есть какие-либо комментарии, пожалуйста, свяжитесь со мной.

Добро пожаловать на мою среднюю страницу

Github, LinkedIn, Захра Эльхамрауи, Upwork