единици
1. Въведение в изкуствения интелект в науката за данните и анализа: работен процес, роли, граници, валидиране и етика 2. Събиране на данни и разбиране на източника: схема, вземане на проби, качество и информираност за течове 3. Почистване и предварителна обработка на данни: Липсваща стойност, отклонение и преобразуване на типа 4. Проучвателен анализ на данни (EDA): Разпределения, връзки и първоначални прозрения 5. Инженеринг на функции: Генериране на варианти, кодиране, мащабиране и избягване на изтичане 6. Изграждане на модел: дефиниране на проблем, избор на алгоритъм и разделяне на обучение/тест 7. Оценка на модела: показатели, кръстосано валидиране и екстремно обучение 8. Визуализация и разказване на истории: точни графики, честни графики 9. Генериране на код: AI-подпомогнат анализ с Python (pandas) и SQL 10. Изтичане на данни и възпроизводимост: тихи бедствия и дисциплина 11. Фондация MLOps, етика, поверителност и отговорен анализ
единица 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 пише кода за тези изчисления за секунди; Но преди да кажете „изтриване“, проверете какви са тези стойности.

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

Едно от най-главоболията е объркването на типа данни. Ако колона "сума" е съхранена като текст, не можете да добавите; Програмата неправилно чете число във формат на турски като "1,250.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"); конвертирайте ги всички в datetime, пребройте непреводимите и докладвайте (изхвърлете тихо). - "пол": "Мъжки"/"мъжки"/"М" -> "М", "Женски"/"женски"/"Ж" -> "К". - "сума": текст във формат на турски ("1.250,50") -> десетично число. Отпечатайте колко реда са засегнати след всяко преобразуване.

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

Напишете код, който сравнява df.shape, липсващ брой и обобщена статистика (средно, средно, мин., макс.) на избрани колони преди и след стъпка за почистване. Цел: да видите какво се променя при почистване.

Слаба подкана / Силна подкана

Слаба подкана:

Изчистете тези данни.

„Ясно“ е двусмислено; AI не знае кои липсващи части трябва да бъдат изтрити, какво да попълни, коя колона да обработи и как. Резултатът: слепи, необратими промени.

Мощна подкана:

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

Тук източникът е защитен, всяка трансформация се отчита, изтриването е оставено на човека.

Често срещани грешки

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

В обобщение

Почистването е най-отнемащата време и изискваща вземане на решения фаза от науката за данните. Всяка промяна променя данните, така че всяка е съзнателно решение. За липсващи стойности попитайте "защо е празно?" Прегледайте всички отклонения, преди да ги изтриете; Приведете типа и формата към стандарта. Изчислете стойността на запълване само от данните за обучение, запазете оригинала и проследете въздействието на всяка стъпка, като я преброите. AI е огромен ускорител в този бизнес, но хората решават какво почиствате и защо.

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

Вземете (или създайте) малка таблица и съзнателно вмъкнете три проблема в нея: кортеж с липсваща стойност, отклонение, смесен формат на дата. Поискайте код за диагностика и стандартизация от AI с горните шаблони; сравнете броя на редовете и празните места преди/след всяка стъпка. Опитайте се да уловите поне една „тиха загуба“ и отбележете как сте я забелязали.

контролен списък

  • [ ] Запазих ли оригиналните необработени данни и работя ли върху копието?
  • [ ] Задавах ли въпроса "защо е празен" за всяка липсваща колона?
  • [ ] Прегледах ли отклоненията, преди да ги изтрия?
  • [ ] Изчислих ли стойността на подплънките само от данни за обучение?
  • [ ] Проверявам ли броя на редовете/празните места след всяка стъпка и премахвам ли безшумната загуба?