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

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

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

Ограничения типа данных

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

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

Числовой или категориальный?

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

Ограничения диапазона данных

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

Как быть с данными вне диапазона?

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

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

Повторяющиеся значения

Полные дубликаты.

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

Дубликаты с расхождениями.

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

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

Как обрабатывать повторяющиеся значения?

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

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

Категории и ограничения членства (ограничения уникальности).

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

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

Почему у нас могут быть несоответствия в наших категориальных данных?

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

Как мы лечим эти проблемы?

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

наличие слишком большого количества категорий, которые можно было бы свернуть в несколько (согласованность значений).

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

Сворачивание данных в категории.

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

Больше пояснений

Чистые текстовые данные.

Cleaning text data and regular expressions.

Общие проблемы с текстовыми данными включают обработку несоответствий, обеспечение определенной длины текстовых данных, опечатки и другие. Удалите дополнительные полосы и специальные символы, такие как тире, например, номера телефонов выравниваются, чтобы начинаться с 00. А как насчет более сложных примеров? Что, если телефонные номера могут содержать ряд символов, включая знаки плюс, тире, скобки и, возможно, больше?!

А как насчет более сложных задач в текстовых данных?!

Как на этом рисунке.

Здесь на помощь приходят регулярные выражения.

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

Однородность агрегата.

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

Проверка единообразия единиц необходима для проведения точного анализа.

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

Даты в нескольких форматах.

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

Как лучше всего унифицировать форматы неоднозначных значений, таких как 2019–04–07?!

распространенной проблемой являются неоднозначные даты с нечеткими форматами. Например, 03–08–2021 — это значение даты установлено в марте или августе? К сожалению, нет четкого способа обнаружить это несоответствие или устранить его.

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

Кросс-полевая проверка.

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

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

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

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

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

Что делать, когда мы обнаруживаем несоответствия с межполевой проверкой?

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

Полнота и недостающие данные.

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

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

the missingno package allows to create useful visualizations of our missing data.

Типы отсутствия

Это приводит нас к типам отсутствия. существует множество типов отсутствующих данных.

• Случайно отсутствующие данные:

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

• Случайно отсутствующие данные:

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

• Отсутствует не случайно:

Существует систематическая связь между отсутствующими значениями столбца и ненаблюдаемыми значениями.

Как быть с отсутствующими данными?

Существует множество способов работы с отсутствующими данными.

1- удаление недостающих данных.

2-вменение им статистических показателей, таких как среднее значение, медиана или мода.

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

Each missingness type requires a specific approach, and each type of approach has drawbacks and positives.