Единицы
1. Введение в искусственный интеллект в науке о данных и аналитике: рабочий процесс, роли, границы, проверка и этика 2. Сбор данных и понимание источников: схема, выборка, качество и осведомленность об утечках 3. Очистка и предварительная обработка данных: отсутствующее значение, выбросы и преобразование типов 4. Исследовательский анализ данных (EDA): распределения, взаимосвязи и первоначальные выводы 5. Разработка функций: создание вариантов, кодирование, масштабирование и предотвращение утечек 6. Построение модели: постановка задачи, выбор алгоритма и разделение обучения/тестирования 7. Оценка модели: метрики, перекрестная проверка и экстремальное обучение 8. Визуализация и рассказывание историй: точная графика, честная графика 9. Генерация кода: анализ с помощью искусственного интеллекта с помощью Python (Pandas) и SQL 10. Утечка данных и воспроизводимость: тихие катастрофы и дисциплина 11. Фонд MLOps, этика, конфиденциальность и ответственная аналитика
Единица 3 / 11

Очистка и предварительная обработка данных: отсутствующее значение, выбросы и преобразование типов

Прибыль:

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

Примерно 60–80 процентов времени специалиста по данным уходит на очистку; В индустрии это полушутя называют «data wrangling» (data wrangling или data cleaning). Потому что реальные данные почти никогда не поступают готовыми для анализа: даты представлены в смешанных форматах, числа хранятся в виде текста, некоторые ячейки пусты, клиент появляется в одной и той же таблице три раза с двумя разными вариантами написания. В этом модуле мы рассмотрим три основных аспекта очистки: пропущенные значения, выбросы и преобразование типа/формата. Искусственный интеллект — необычайно быстрый помощник в этой работе; Но именно вы решаете, что и как чистить, потому что каждый выбор очистки меняет анализ.

Золотое правило уборки: каждое изменение – это решение

Удаление ячейки, заполнение пропущенного значения средним значением, обрезка выброса — ни одна из этих операций не является «нейтральной». Каждый меняет данные и влияет на результат. Итак, золотое правило очистки: записывайте каждое изменение в код, записывайте обоснование, никогда не перезаписывайте исходные данные. ИИ дает вам код быстрой очистки, но вы обязаны понять, что делает этот код; Не запускайте его, не увидев, сколько строк исчезло, когда вы говорите «удалить пустые строки».

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

Отсутствуют значения: почему пусто, что делать

Отсутствующее значение (обычно отображается как NaN — «Не число» в пандах) — это когда ячейка пуста. Но причина разрыва определяет решение. Есть три типичные ситуации. Случайное отсутствие: сенсор не сработал на мгновение; Возможно, имеет смысл его заполнить. Систематическое отсутствие: поле формы запрашивается только для определенных клиентов; Разрыв здесь на самом деле информационный. Значительное отсутствие: если «дата возврата» пуста, клиент не вернулся; Это пространство означает 0 или «нет», оно не заполняется.

Основные стратегии:

Стратегия

Когда это уместно?

риск

Удалить строку

Процент пропусков очень низок (<5%) и случаен.

Потеря данных и представления

Удалить столбец

Большая часть столбца пуста (>60%)

потеря информации

Среднее/среднее заполнение

Числовое, отсутствует случайно

Это уменьшает дисперсию и искажает распределение.

Категория «неизвестно»

Категорическое, систематическое отсутствие

Создает дополнительные категории

Прогнозирование с помощью модели

Сложная, драгоценная колонна

Риск утечки, сложность

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

Выбросы: ошибка или реальность?

Выбросом может быть одно из двух: ошибка данных (999 в столбце возраста) или реальное, но редкое событие (заказ клиента на 2 миллиона долларов). Путать эти два понятия — катастрофа: удалите истинный выброс, и вы выбросите важную информацию; Если вы отпустите ошибку, ваши средние показатели пострадают. Поэтому необходимо сначала изучить выброс, а не удалять его автоматически.

Общие методы обнаружения: метод IQR (межквартильный диапазон; значения, которые более чем в 1,5 раза превышают разницу между 25% и 75% квинтилями данных, считаются выбросами) и z-показатель (количество стандартных отклонений от среднего значения; обычно выброс, если оно больше 3). ИИ пишет код для этих вычислений за секунды; Но прежде чем сказать «удалить», проверьте, что это за значения.

Преобразование типов и форматов: источник скрытых ошибок

Одна из самых больших головных болей — путаница типов данных. Если столбец «сумма» хранится в виде текста, вы не можете добавлять; Программа неправильно считывает число в турецком формате, например «1250,50» вместо «одна тысяча двести пятьдесят». Даты («03.01.2024» день-месяц или месяц-день?), категории («Мужчина»/«мужчина»/«М» - одно и то же?) и единицы измерения (TL или куруш?) молча выдают неверные результаты. Большая часть очистки — это приведение этих несоответствий в стандарт: даты в один формат, категории в одно написание, числа в одно целое.

три мини-кейса

Случай 1. Средняя ловушка. Команда заполнила 320 недостающих значений в столбце дохода средним значением (48 500 долларов США). Но недостатки были систематическими: это был низкодоходный сегмент, который никогда не декларировал доходы. Среднее наполнение сделало эту группу искусственно богатой, а кредитная модель оказалась неправильной. Урок: спросите «почему поле пустое», прежде чем заполнять его.

Случай 2 — выброс, который не следует удалять. Аналитик розничной торговли удалил из данных о продажах 4 огромных заказа (по 1,8 миллиона турецких лир каждый), посчитав их «ошибками». Однако это были реальные корпоративные заказы и составили 22% от общего оборота. Модель прогнозирования после исключения полностью упустила из виду институциональный спрос. Урок: проверьте выброс перед его удалением.

Случай 3 — Ошибка формата даты. В CSV-файле даты были смешаны: «01.03.2024» и «01.03.2024». Когда код, написанный YZ, был разобран по первому формату, 6400 строк стали NaT как «недействительная дата» и были молча исключены из анализа. Аналитик заметил это только тогда, когда количество строк уменьшилось. Урок: всегда проверяйте количество строк и пробелов после конвертации.

Четыре копируемых шаблона

1) Отсутствует карта значений:

У меня есть панды df. Напишите код, который создает таблицу, показывающую количество и процент отсутствующих данных (NaN) для каждого столбца. Затем перечислите отдельно столбцы, в которых доля отсутствующих элементов превышает 40 %, и столбцы, в которых доля отсутствующих элементов составляет менее 5 %. Просто сгенерируйте этот диагностический код, а не какую стратегию вы предлагаете; Я приму решение.

2) Проверка выбросов (не удаление):

Напишите код, который ОБНАРУЖИВАЕТ (а не удаляет!) выбросы для моего столбца «сумма», используя метод IQR. Поместите внешние строки в отдельный файл df, чтобы я мог проверить их вручную. Также выведите количество выбросов и их долю в общем количестве.

3) Стандартизация типа/формата:

Напишите код, который стандартизирует следующие столбцы: - «дата»: могут быть смешанные форматы («01.03.2024» и «01.03.2024»); конвертируйте их все в datetime, посчитайте непереводимые и сообщите (выбросьте молча). - "пол": "Мужской"/"мужской"/"М" -> "М", "Женский"/"женский"/"Ж" -> "К". - «сумма»: текст в турецком формате («1.250,50») -> десятичное число. Выведите количество строк, затрагиваемых после каждого преобразования.

4) Проверьте до/после чистки:

Напишите код, который сравнивает df.shape, количество отсутствующих данных и сводную статистику (среднее, медиана, минимум, максимум) выбранных столбцов до и после этапа очистки. Цель: посмотреть, что меняет чистка.

Слабая подсказка / Сильная подсказка

Слабая подсказка:

Очистите эти данные.

«Ясно» неоднозначно; ИИ не знает, какие недостающие части следует удалить, что заполнить, какую графу обработать и как. Результат: слепые, необратимые изменения.

Мощная подсказка:

Ваша роль: помощник по очистке данных. Столбцы df: customer_id (целое), Registration_date (текст смешанного формата), Revenue_tl (текст, «1200,00»), city (текст, неправильное написание). Правила: - Изменение исходного df; Работайте над копией с именем df_clean. - Преобразуйте доход_tl в число, подсчитайте то, что невозможно перевести. - Измените запись_дата на дату и время, сообщите об ошибке. - Не удаляйте никакие строки без моего разрешения; Покажите кандидатов отдельно. После каждого шага выведите df_temiz.shape и недостающее число.

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

Распространенные ошибки

  • Заполняем пробелы, не спрашивая «почему пусто?» Заполнение систематических/значительных пропусков средним значением искажает данные.
  • Удаление выброса без его проверки. Отбрасывание реальных, но редких событий уничтожает важную информацию.
  • Вычисление значения заполнения на основе всех данных. Включение тестовых данных создает утечку; просто посчитайте на основе тренировки.
  • Не проверять количество строк/пробелов после преобразования. Строки, которые молча содержат NaT/NaN, исключаются из анализа.
  • Перезапись исходных данных. Возврат и воспроизводимость теряются.
Совет: запустите очистку со сравнением «до и после». Распечатывайте df.shape, количество отсутствующих и сводную статистику критических столбцов после каждого шага. Итак, вы сразу видите, что один шаг неожиданно уничтожает 6000 строк.

В заключение

Очистка — это самый трудоемкий и требующий принятия решений этап науки о данных. Каждое изменение меняет данные, поэтому каждое из них является сознательным решением. В случае пропущенных значений спросите: «Почему оно пусто?» Просмотрите любые выбросы, прежде чем удалять их; Приведите тип и формат к стандарту. Рассчитайте значение заполнения только на основе обучающих данных, сохраните оригинал и отслеживайте влияние каждого шага, подсчитывая его. ИИ — мощный ускоритель в этом бизнесе, но люди решают, что и почему вы чистите.

Задача приложения

Возьмите (или создайте) небольшую таблицу и намеренно вставьте в нее три проблемы: кортеж пропущенных значений, выброс, смешанный формат даты. Запросите код диагностики и стандартизации у AI с помощью вышеуказанных шаблонов; сравнить количество строк и пробелов до/после каждого шага. Попробуйте уловить хотя бы одну «тихую потерю» и отметьте, как вы ее заметили.

контрольный список

  • [ ] Сохранил ли я исходные необработанные данные и работал ли я над копией?
  • [ ] Задавал ли я вопрос «почему здесь пусто» для каждого отсутствующего столбца?
  • [ ] Просматривал ли я выбросы перед их удалением?
  • [ ] Рассчитал ли я значение заполнения только на основе обучающих данных?
  • [ ] Проверяю ли я количество строк/пробелов после каждого шага и исключаю личную потерю?