Добивки:
- Способност да се разликува причината за исчезнатите вредности (случајни, систематски, значајни) и да се избере соодветна стратегија и да се пресмета пополнетата вредност само од обуката
- Способност да се испитаат надворешноста пред да се избришат и да се направи разлика помеѓу грешка во податоците и вистински редок настан
- Способност да се спречи тивко губење со следење на влијанието на секој чекор врз бројот на линии/празни места, притоа доведувајќи ги недоследностите на типот и форматот на стандардот
Приближно 60-80 проценти од времето на еден научник за податоци оди на чистење; Во индустријата, ова на половина шега се нарекува „спорење на податоци“ (спорење податоци или чистење податоци). Бидејќи податоците од реалниот свет речиси никогаш не се подготвени за анализа: датумите се во мешани формати, броевите се зачувуваат како текст, некои ќелии се празни, клиентот се појавува три пати во иста табела со два различни правописи. Во оваа единица ќе опфатиме три основни аспекти на чистењето: вредности што недостасуваат, оддалечени и конверзија на тип/формат. Вештачката интелигенција е извонредно брз асистент во оваа работа; Но, вие одлучувате што да чистите и како, бидејќи секој избор за чистење ја менува анализата.
Златното правило за чистење: секоја промена е одлука
Бришење ќелија, пополнување на вредноста што недостасува со средната вредност, отсекување на оддалеченост - ниту една од овие не е „неутрална“ операција. Секој ги менува податоците и влијае на резултатот. Значи, златното правило за чистење: запишете ја секоја промена во кодот, забележете го образложението, никогаш не презапишувајте ги оригиналните податоци. AI ви дава код за брзо чистење, но ваша одговорност е да разберете што прави тој код; Не пуштајте го без да видите колку линии исчезнале кога ќе кажете „избриши празни линии“.
Внимание: Никогаш не ги менувајте оригиналните необработени податоци. Напишете ја исчистената верзија во посебна датотека/табела. На овој начин, ако забележите грешка, можете да се вратите на прво место и да ја одржите репродуктивноста.
Недостасуваат вредности: зошто е празно, што да правам
Недостасува вредност (обично се појавува како NaN - „Не е број“ кај пандите) е кога ќелијата е празна. Но, причината за јазот го одредува решението. Постојат три типични ситуации. Случајно недостасува: сензорот не работеше ниту еден момент; Можеби е разумно да го пополните. Систематски недостасува: полето за формулар се бара само за одредени клиенти; Јазот овде е всушност информацијата. Значително недостасува: ако „датумот на враќање“ е празен, клиентот не се вратил; Ова место значи 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 - Outlier што не треба да се избрише. Малопродажен аналитичар избриша 4 огромни нарачки (по 1,8 милиони TL) во податоците за продажбата, мислејќи дека се „грешки“. Сепак, тоа беа реални корпоративни нарачки и беа 22% од вкупниот промет. Моделот за прогноза по бришењето целосно ја промаши институционалната побарувачка. Поука: испитајте го оддалеченото пред да го избришете.
Случај 3 - Катастрофа во формат на датум. Во CSV, датумите беа измешани и во „2024-03-01“ и „01.03.2024“. Кога кодот напишан од YZ беше анализиран според првиот формат, 6.400 линии станаа NaT како „неважечки датум“ и беа тивко исклучени од анализата. Аналитичарот тоа го забележа дури кога се намали бројот на линии. Лекција: секогаш проверувајте го бројот на линии и празни места по конверзијата.
Четири шаблони за копирање
1) Карта на вредност што недостасува:
Имам панди df. Напишете код кој произведува табела која го прикажува бројот и процентот на исчезнати (NaN) за секоја колона. Потоа, одделно наведете ги колоните со стапка на недостиг што надминува 40% и оние со стапка на недостиг под 5%. Само генерирајте го овој код за дијагноза, а не каква стратегија ја предлагате; Јас ќе ја донесам одлуката.
2) Надворешна инспекција (не бришење):
Напишете код што ОТКРИВА (не брише!) оддалечени за мојата колона „износ“ користејќи го методот IQR. Ставете ги оддалечените редови во посебен df за да можам рачно да ги испитам. Исто така, отпечатете го бројот на оддалечените и нивното учество во вкупниот број.
3) Стандардизација на тип/формат:
Напишете код кој ги стандардизира следните колони: - „датум“: може да има мешани формати („2024-03-01“ и „01.03.2024“); претворете ги сите во datetime, пребројте ги оние што не можат да се преведат и пријавете (фрлете го тивко). - "пол": "Машки"/"машки"/"М" -> "М", "Женски"/"женски"/"Ф" -> "К". - "износ": турски форматиран текст ("1.250,50") -> децимален број. Отпечатете колку редови се засегнати по секоја конверзија.
4) Проверете пред/по чистењето:
Напишете код што ги споредува df.shape, броењето што недостасува и сумата статистика (средна, средна, мин, макс) на избраните колони пред и по чекорот за чистење. Цел: да се види што се менува чистењето.
Слаб промпт / Силен промпт
Слаба навестување:
Исчистете ги овие податоци.
„Јасно“ е двосмислено; ВИ не знае кои делови што недостасуваат треба да се избришат, што да пополни, која колона да обработи и како. Резултат: слепи, неповратни промени.
Моќен потсетник:
Вашата улога: асистент за чистење податоци. df колони: customer_id (int), register_date (текст во мешан формат), приход_tl (текст, „1.200,00“), град (текст, неконзистентен правопис). Правила: - Промена на оригиналниот df; Работете на копијата со име df_clean.- Претворете го приходот_tl во број, броете што не може да се преведе.- Променете го record_date во datetime, пријавете ја грешката.- Не бришете ниеден ред без мое одобрение; Покажете ги кандидатите одделно. По секој чекор, испечатете го df_temiz.shape и бројот што недостасува.
Овде изворот е заштитен, секоја трансформација се брои, бришењето се остава на човекот.
Вообичаени грешки
- Пополнување на празнините без да се праша "зошто е празно?" Пополнувањето на систематско/значајно промашување со средната вредност ги искривува податоците.
- Бришење на оддалеченоста без да се испита. Отфрлањето на вистински, но ретки настани уништува важни информации.
- Пресметување на вредноста на полнењето од сите податоци. Вклучувањето на податоците од тестот создава истекување; само пресметај од тренинг.
- Не се проверува бројот на редови/празни места по конверзијата. Редовите кои се тивко NaT/NaN се исклучени од анализата.
- Препишување на оригиналните податоци. Враќањето и репродуктивноста се изгубени.
Совет: Исчистете го со споредба „пред-после“. Печатете df.shape, броење што недостасува и резиме статистика на критичните колони по секој чекор. Така, веднаш гледате дека еден чекор неочекувано уништува 6.000 редови.
Сумирано
Чистењето е фазата на науката за податоци која одзема многу време и бара одлуки. Секоја промена ги менува податоците, така што секоја е свесна одлука. За вредностите што недостасуваат, прашајте "зошто е празно?" Прегледајте ги сите оддалечени пред да ги избришете; Донесете го типот и форматот во стандард. Пресметајте ја вредноста на пополнувањето само од податоците за обуката, чувајте го оригиналот и следете го влијанието на секој чекор со броење. ВИ е огромен забрзувач во овој бизнис, но луѓето одлучуваат што чистите и зошто.
Задача за апликација
Земете (или креирајте) мала табела и намерно вметнете три проблеми во неа: торка со вредност што недостасува, откачено, мешан формат на датум. Побарајте код за дијагноза и стандардизација од ВИ со горенаведените шаблони; споредете го бројот на редови и празни места пред/по секој чекор. Обидете се да фатите барем една „тивка загуба“ и забележете како сте ја забележале.
листа за проверка
- [ ] Дали ги задржав оригиналните необработени податоци и работев на копијата?
- [ ] Дали го поставив прашањето „зошто е празно“ за секоја колона што недостасува?
- [ ] Дали ги прегледав оддалечените пред да ги избришам?
- [ ] Дали ја пресметав вредноста на полнењето само од податоците за обуката?
- [ ] Дали го проверувам бројот на линии/празни по секој чекор и го елиминирам тивкото губење?