одиниці
1. Вступ до штучного інтелекту в науці про дані та аналітиці: робочий процес, ролі, межі, перевірка та етика 2. Збір даних і розуміння джерела: схема, вибірка, якість і усвідомлення витоків 3. Очищення та попередня обробка даних: відсутнє значення, перетворення викидів і типів 4. Дослідницький аналіз даних (EDA): розподіли, взаємозв’язки та початкове розуміння 5. Розробка функцій: генерація варіантів, кодування, масштабування та уникнення витоку 6. Побудова моделі: визначення проблеми, вибір алгоритму та розділення на навчання/тест 7. Оцінка моделі: показники, перехресна перевірка та екстремальне навчання 8. Візуалізація та оповідання: точна графіка, чесна графіка 9. Генерація коду: аналіз за допомогою ШІ за допомогою Python (pandas) і SQL 10. Витік даних і відтворюваність: тихі катастрофи та дисципліна 11. MLOps Foundation, етика, конфіденційність і відповідальна аналітика
одиниця 3 / 11

Очищення та попередня обробка даних: відсутнє значення, перетворення викидів і типів

Прибуток:

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

Приблизно 60-80 відсотків часу спеціаліста з обробки даних витрачається на очищення; У індустрії це напівжартома називають «переборки даних» (data wrangling або data cleaning). Оскільки дані реального світу майже ніколи не готові для аналізу: дати мають змішані формати, числа зберігаються як текст, деякі клітинки порожні, клієнт з’являється тричі в одній таблиці з двома різними варіантами написання. У цьому розділі ми розглянемо три основні аспекти очищення: відсутні значення, викиди та перетворення типу/формату. Надзвичайно швидким помічником у цій роботі є штучний інтелект; Але ви вирішуєте, що і як чистити, тому що кожен вибір очищення змінює аналіз.

Золоте правило прибирання: кожна зміна – це рішення

Видалення клітинки, заповнення пропущеного значення середнім значенням, обрізання викиду — жодна з цих операцій не є «нейтральною». Кожен змінює дані та впливає на результат. Отже, золоте правило очищення: записуйте кожну зміну в код, запам’ятовуйте обґрунтування, ніколи не перезаписуйте вихідні дані. AI надає вам швидкий код очищення, але ви повинні зрозуміти, що цей код робить; Не запускайте його, не побачивши, скільки рядків зникло, коли ви скажете «видалити порожні рядки».

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

Відсутні значення: чому порожній, що робити

Відсутнє значення (зазвичай відображається як NaN — «Не число» в pandas) — це коли клітинка порожня. Але причина розриву визначає рішення. Є три типові ситуації. Випадкова відсутність: датчик на мить не працював; Можливо, доцільно його заповнити. Систематична відсутність: поле форми запитується лише для певних клієнтів; Прогалиною тут є фактично інформація. Значний пропущений: якщо «дата повернення» пуста, клієнт не повернувся; Це місце означає 0 або «немає», воно не заповнене.

Основні стратегії:

Стратегія

Коли це доречно?

ризик

Видалити рядок

Рівень пропусків дуже низький (<5%) і випадковий

Втрата даних і представлення

Видалити стовпець

Більша частина стовпця порожня (>60%)

втрата інформації

Середнє/середнє заповнення

Число, випадково пропущене

Це зменшує дисперсію та спотворює розподіл

Категорія "невідомий"

Категоричність, систематичність відсутні

Створює додаткові категорії

Прогнозування з моделлю

Складна, дорогоцінна колона

Ризик витоку, складність

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

Викиди: помилка чи реальність?

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

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

Перетворення типів і форматів: тихе джерело помилок

Однією з головних болів є плутанина типів даних. Якщо стовпець "сума" зберігається як текст, ви не можете додати; Програма неправильно читає число у турецькому форматі, наприклад «1250,50», замість «одна тисяча двісті п'ятдесят». Дати ("01/03/2024" день-місяць чи місяць-день?), категорії ("Чоловік"/"чоловічий"/"М" одне й те саме?) та одиниці (TL чи kuruş?) мовчки дають неправильні результати. Велика частина очищення полягає в тому, щоб перенести ці невідповідності в стандарт: дати в один формат, категорії в одне написання, числа в одну одиницю.

три міні-чохла

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

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

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

Чотири шаблони, які можна копіювати

1) Відсутня карта значень:

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

2) Перевірка викидів (не видалення):

Напишіть код, який ВИЯВЛЯЄ (а не видаляє!) викиди для мого стовпця "сума", використовуючи метод IQR. Помістіть віддалені рядки в окремий df, щоб я міг перевірити їх вручну. Також надрукуйте кількість викидів та їх частку в загальній сумі.

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

Напишіть код, який стандартизує такі стовпці:- «дата»: можуть мати змішані формати («2024-03-01» і «01.03.2024»); перетворити їх усіх на дату й час, підрахувати неперекладні та повідомити (викинути мовчки). - "стать": "Чоловічий"/"чоловічий"/"М" -> "М", "Жіночий"/"жіночий"/"Ж" -> "К". - "сума": текст у турецькому форматі ("1.250,50") -> десяткове число. Виведіть кількість рядків, на які впливає кожне перетворення.

4) Перевірте до/після очищення:

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

Слабка підказка / Сильна підказка

Слабка підказка:

Очистіть ці дані.

«Очистити» — багатозначне; ШІ не знає, які відсутні частини потрібно видалити, що заповнити, яку колонку обробити і як. Результат: сліпі, незворотні зміни.

Потужна підказка:

Ваша роль: помічник з очищення даних. Стовпці df: customer_id (int), registration_date (текст у змішаному форматі), earning_tl (текст, "1,200.00"), city (текст, непослідовне написання). Правила:- Зміна оригінального df; Попрацюйте над копією df_clean.- Перетворіть earning_tl на число, підрахуйте те, що не можна перекласти.- Змініть record_date на datetime, повідомте про помилку.- Не видаляйте жодних рядків без мого дозволу; Показати кандидатів окремо. Після кожного кроку виведіть df_temiz.shape і відсутнє число.

Тут джерело захищене, кожна трансформація враховується, видалення залишається за людиною.

Поширені помилки

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

Підсумовуючи

Очищення є найбільш трудомістким етапом науки про дані, який потребує прийняття рішень. Кожна зміна змінює дані, тому кожна зміна є свідомим рішенням. Для відсутніх значень запитайте "чому він порожній?" Перегляньте всі викиди, перш ніж видаляти їх; Приведіть тип і формат до стандарту. Обчисліть значення заповнення лише на основі даних навчання, збережіть оригінал і відстежуйте вплив кожного кроку, підраховуючи його. Штучний інтелект є чудовим прискорювачем у цьому бізнесі, але люди вирішують, що ви чистите і чому.

Аплікаційне завдання

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

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

  • [ ] Я зберіг оригінальні необроблені дані та працював над копією?
  • [ ] Чи ставив я запитання «чому він порожній» для кожного відсутнього стовпця?
  • [ ] Чи переглядав я викиди перед видаленням?
  • [ ] Чи я розрахував значення заповнення лише на основі навчальних даних?
  • [ ] Чи перевіряю я кількість рядків/пробілів після кожного кроку та усуваю тихі втрати?