Есть много слов, которые нужно выучить для Data Science. Вот краткая сводка по импутации данных менее чем за 5 минут.

Что это такое и зачем нам это нужно?

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

На что обращать внимание

Прежде всего, нам нужно взглянуть на наши данные - есть ли тенденция к отсутствию данных?

Есть 3 основные категории недостающих данных:

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

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

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

Итак, что мы можем сделать с недостающими данными?

Я собираюсь обрисовать несколько общих методов работы с недостающими данными. Есть еще много чего, но это просто представление о некоторых вещах, которые вы можете сделать.

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

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

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

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

Еще кое-что, о чем следует подумать

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

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

Забрать домой сообщение

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