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

Данные

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

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

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

Мы будем использовать.shape, чтобы увидеть количество записей. Мы видим, что исходный набор данных состоит из 961 строки данных.

В Python отсутствующие значения помечаются маркером отсутствующего значения по умолчанию - «NaN». Поэтому сначала нам нужно пометить отсутствующие значения как NaN, мы можем сделать это с помощью функции replace ().

Подходы к работе с недостающими данными

(i) Удаление строк с отсутствующими данными

Удаление строк с отсутствующими данными - один из самых простых подходов. Мы можем удалить строки с помощью функции pandas dropna (). Шаги, необходимые для удаления недостающих строк:

После удаления недостающей строки у нас есть 830 строк.

Удаление строк - разумный подход, если (i) у нас достаточно данных и (ii) мы не вносим смещения в данные. Однако, если у нас недостаточно данных, следует рассмотреть другие подходы.

(ii) Среднее / медианное замещение

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

Шаги, необходимые для использования метода замены среднего / медианного значения:

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

Наши данные состоят из объектного типа. Нам нужно преобразовать это либо в int, либо в float, прежде чем использовать подход средней замены. мы можем преобразовать данные в числовую функцию, используя pd.to_numeric (аргумент, error = «», downcast = «»). Мы можем выбирать типы ошибок и понижать в зависимости от данных.

Мы преобразовали наш тип данных из объекта в float / int, используя следующий код:

Теперь, если мы проверим наши типы данных и увидим, что типы данных были изменены.

Используя функцию .mean (), мы заменим наше пропущенное значение средними данными.

(iii) Подходы к машинному наклону

(a) KNN (K-ближайший сосед)

Этот подход включает в себя поиск K «ближайших» точек данных с использованием всех не пропущенных значений для точки данных и усреднение их значений для заполнения отсутствующих значений. Чтобы использовать этот подход, нам нужно использовать пакет «fancyimpute» . Мы можем установить этот пакет с помощью

! pip install fancyimpute

Шаги, необходимые для использования подхода KNN:

(б) Регрессия

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

Шаги, необходимые для использования подхода MICE:

Шаги 1 и 2 аналогичны подходу KNN.

MICE выполняет множественную регрессию для данных для вменения. И это считается надежным подходом при работе с недостающими данными.

(в) Глубокое обучение

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

Резюме

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