Бірліктер
1. Деректер ғылымы мен аналитикадағы жасанды интеллектке кіріспе: жұмыс процесі, рөлдер, шекаралар, тексеру және этика 2. Деректерді жинау және дереккөзді түсіну: схема, сынама алу, сапа және ағып кету туралы хабардар болу 3. Деректерді тазалау және алдын ала өңдеу: жоқ мән, шектен тыс мән және түр түрлендіру 4. Зерттеу деректерін талдау (EDA): таратулар, қарым-қатынастар және бастапқы түсініктер 5. Инженерлік мүмкіндіктер: нұсқаларды жасау, кодтау, масштабтау және ағып кетуді болдырмау 6. Модель құру: мәселені анықтау, алгоритмді таңдау және оқыту/тест бөлу 7. Модельді бағалау: метрика, кросс-валидация және экстремалды оқыту 8. Көрнекілік және әңгімелеу: дәл графика, адал графика 9. Код жасау: Python (pandas) және SQL көмегімен AI көмегімен талдау 10. Деректердің ағып кетуі және қайталануы: үнсіз апаттар және тәртіп 11. MLOps Foundation, этика, құпиялылық және жауапты аналитика
Бірлік 3 / 11

Деректерді тазалау және алдын ала өңдеу: жоқ мән, шектен тыс мән және түр түрлендіру

Табыстар:

  • Жетіспейтін мәндердің себебін ажырата білу (кездейсоқ, жүйелі, мағыналы) және сәйкес стратегияны таңдау және толтыру мәнін тек жаттығудан есептеу
  • Шектеулерді жою алдында оларды тексеру және деректер қатесі мен шынайы сирек оқиғаны ажырату мүмкіндігі
  • Түр мен пішім сәйкессіздіктерін стандартқа келтіру кезінде әр қадамның жолдар/бос орындар санына әсерін бақылау арқылы үнсіз жоғалтуды болдырмау мүмкіндігі

Деректер зерттеушісі уақытының шамамен 60-80 пайызы тазалауға кетеді; Өнеркәсіпте мұны жартылай әзіл-қалжыңда «деректер тартысы» (деректер тартысы немесе деректерді тазалау) деп атайды. Өйткені нақты деректер ешқашан талдауға дайын болмайды: күндер аралас пішімдерде, сандар мәтін ретінде сақталады, кейбір ұяшықтар бос, тұтынушы бір кестеде екі түрлі емлемен үш рет пайда болады. Бұл бөлімде біз тазалаудың үш негізгі аспектісін қарастырамыз: жоқ мәндер, шектен тыс мәндер және түр/пішім түрлендіру. Жасанды интеллект бұл жұмыста ерекше жылдам көмекші болып табылады; Бірақ нені және қалай тазалау керектігін өзіңіз шешесіз, өйткені әрбір тазалау таңдауы талдауды өзгертеді.

Тазалаудың алтын ережесі: әрбір өзгеріс – бұл шешім

Ұяшықты жою, жетіспейтін мәнді ортамен толтыру, шектен тыс мәнді кесу — бұлардың ешқайсысы «бейтарап» әрекеттер емес. Әрқайсысы деректерді өзгертеді және нәтижеге әсер етеді. Сондықтан тазалаудың алтын ережесі: әрбір өзгертуді кодқа жазыңыз, негіздемеге назар аударыңыз, ешқашан бастапқы деректерді қайта жазбаңыз. AI сізге жылдам тазалау кодын береді, бірақ бұл кодтың не істейтінін түсіну сіздің жауапкершілігіңіз; «Бос жолдарды жою» дегенде қанша жолдың кеткенін көрмей, оны іске қоспаңыз.

Абайлаңыз: бастапқы бастапқы деректерді ешқашан өзгертпеңіз. Тазартылған нұсқаны бөлек файлға/кестеге жазыңыз. Осылайша, қатені байқасаңыз, бірінші шаршыға оралып, қайталану мүмкіндігін сақтай аласыз.

Жетіспейтін құндылықтар: неге бос, не істеу керек

Жетіспейтін мән (әдетте пандаларда NaN — «Сан емес» ретінде көрсетіледі) ұяшық бос болғанда. Бірақ олқылықтың себебі шешімді анықтайды. Үш типтік жағдай бар. Кездейсоқ жоқ: сенсор бір сәтке жұмыс істемеді; Оны толтыру орынды болуы мүмкін. Жүйелі жоқ: пішін өрісі белгілі бір тұтынушылар үшін ғана сұралады; Бұл жерде олқылық шын мәнінде ақпарат болып табылады. Айтарлықтай жетіспейді: егер «қайтару күні» бос болса, тұтынушы қайтармады; Бұл бос орын 0 немесе «жоқ» дегенді білдіреді, ол толтырылмайды.

Негізгі стратегиялар:

Стратегия

Қашан орынды?

тәуекел

Жолды жою

Жетіспеушілік деңгейі өте төмен (<5%) және кездейсоқ

Деректер мен өкілдіктің жоғалуы

Бағанды жою

Бағанның көп бөлігі бос (>60%)

ақпараттың жоғалуы

Орташа/медиандық толтыру

Сандық, кездейсоқ жоқ

Ол дисперсияны азайтады және таралуды бұзады

«Белгісіз» санаты

Категориялық, жүйелі жоқ

Қосымша санаттарды жасайды

Модель арқылы болжау

Күрделі, қымбат бағана

Ағып кету қаупі, күрделілік

Сыни нүкте: есептеу мәні тек жаттығу деректерінен есептелуі керек және сынақ деректеріне бірдей мән қолданылуы керек. Сынақ деректерінің орташа мәнін қоссаңыз, ағып кетуді жасайсыз (10 блок). Медиана (реттік деректердің ортаңғы мәні) көбінесе орташа мәнге артықшылық береді, себебі ол орташа мәнге қарағанда шеткі мәндерге сенімдірек.

Шектеулер: қате немесе нақты?

Шектеу екі нәрсенің бірі болуы мүмкін: деректер қатесі (жас бағанында 999) немесе нақты, бірақ сирек оқиға (тұтынушының $2 миллион тапсырысы). Екеуін шатастыру апатты: шынайы шектен тыс мәнді жойып, маңызды ақпаратты лақтырып жібересіз; Егер сіз қателіктен бас тартсаңыз, орташа көрсеткіштеріңіз төмендейді. Сондықтан, автоматты түрде жою емес, ең алдымен шектен шыққан мәнді тексеру қажет.

Анықтаудың жалпы әдістері: IQR әдісі (квартильаралық диапазон; деректердің 25% және 75% квинтилінің арасындағы 1,5 есе айырмашылықтан асатын мәндер шектен тыс мәндер болып саналады) және 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) Мән картасы жоқ:

Менде пандалар бар. Әрбір баған үшін жетіспейтіндердің саны мен пайызын (NaN) көрсететін кестені шығаратын кодты жазыңыз. Одан кейін жетіспейтін көрсеткіші 40%-дан асатын және 5%-дан төмен көрсеткіші бар бағандарды бөлек тізімдеңіз. Сіз ұсынатын стратегияны емес, осы диагноз кодын жасаңыз; Мен шешім қабылдаймын.

2) Шамадан тыс тексеру (жою емес):

IQR әдісін қолданып, менің "сома" бағаным үшін шектен тыс мәндерді АНЫҚТАйтын (жоймайтын!) кодты жазыңыз. Шеткі жолдарды бөлек df-ге қойыңыз, сонда мен оларды қолмен тексеремін. Сондай-ақ шектен тыс көрсеткіштердің санын және олардың жалпы көлеміндегі үлесін басып шығарыңыз.

3) Стандарттау түрі/пішімі:

Келесі бағандарды стандарттайтын кодты жазыңыз:- «күн»: аралас форматтар болуы мүмкін («2024-03-01» және «01.03.2024»); олардың барлығын datetime түріне түрлендіріңіз, аударылмағандарды санаңыз және есеп беріңіз (үнсіз тастаңыз). - "жынысы": "Ер"/"ер"/"М" -> "М", "Әйел"/"әйел"/"F" -> "К". - "сома": түрік пішіміндегі мәтін ("1.250,50") -> ондық сан. Әр түрлендіруден кейін қанша жолға әсер ететінін басып шығарыңыз.

4) Тазалау алдында/кейін тексеріңіз:

Тазалау қадамына дейін және кейін таңдалған бағандардың df.shape, жетіспейтін саны және жиынтық статистикасын (орташа, медиана, мин, макс) салыстыратын кодты жазыңыз. Мақсаты: тазалаудың қандай өзгеретінін көру.

Әлсіз шақыру / Күшті шақыру

Әлсіз шақыру:

Бұл деректерді өшіріңіз.

«Айқын» екі мағыналы; AI қандай жетіспейтін бөліктерді жою керектігін, нені толтыру керектігін, қай бағанды ​​және қалай өңдеу керектігін білмейді. Нәтижесі: соқыр, қайтымсыз өзгерістер.

Күшті шақыру:

Сіздің рөліңіз: деректерді тазалау көмекшісі. df бағандары: customer_id (int), тіркеу_күні (аралас пішім мәтіні), revenue_tl (мәтін, "1,200.00"), қала (мәтін, сәйкес емес емле). Ережелер:- Түпнұсқа df өзгерту; df_clean деп аталатын көшірмемен жұмыс жасаңыз.- кіріс_tl санын санға түрлендіру, аударуға болмайтынын санаңыз.- record_date-ді datetime деп өзгертіңіз, қате туралы хабарлаңыз.- Менің рұқсатымсыз ешбір жолды жоймаңыз; Үміткерлерді бөлек көрсетіңіз. Әрбір қадамнан кейін df_temiz.shape және жетіспейтін нөмірді басып шығарыңыз.

Мұнда көз қорғалған, әрбір түрлендіру есептеледі, жою адамға қалдырылады.

Жалпы қателер

  • «Неге бос?» деп сұрамай бос орындарды толтыру. Жүйелі/маңызды жетіспеушілікті орташа мәнмен толтыру деректерді бұрмалайды.
  • Шектеуді зерттемей-ақ жою. Шынайы, бірақ сирек кездесетін оқиғалардан бас тарту маңызды ақпаратты жояды.
  • Барлық деректерден толтыру мәнін есептеу. Сынақ деректерін қосу ағып кетуді тудырады; тек жаттығудан есептеңіз.
  • Түрлендіруден кейін жолдар/бос орындар саны тексерілмейді. Үнсіз NaT/NaN жолдар талдаудан шығарылады.
  • Бастапқы деректерді қайта жазу. Қайтару және қайталану мүмкіндігі жоғалады.
Кеңес: Тазалауды «бұрын-кейін» салыстыруымен орындаңыз. Әрбір қадамнан кейін маңызды бағандардың df.shape, жетіспейтін саны және жиынтық статистикасын басып шығарыңыз. Осылайша сіз бірден бір қадам күтпеген жерден 6000 жолды бұзатынын көресіз.

Қысқаша айтқанда

Тазалау - деректер ғылымының ең көп уақытты қажет ететін және шешім қабылдауды қажет ететін кезеңі. Әрбір өзгеріс деректерді өзгертеді, сондықтан олардың әрқайсысы саналы шешім. Жетіспейтін мәндер үшін «ол неге бос?» деп сұраңыз. Кез келген шектен тыс мәндерді жою алдында оларды қарап шығыңыз; Түр мен пішімді стандартқа келтіріңіз. Тек жаттығу деректерінен толтыру мәнін есептеңіз, түпнұсқаны сақтаңыз және оны санау арқылы әрбір қадамның әсерін қадағалаңыз. AI - бұл бизнестегі керемет үдеткіш, бірақ нені және не үшін тазалайтыныңызды адамдар шешеді.

Қолданбалы тапсырма

Шағын кестені алыңыз (немесе жасаңыз) және оған үш мәселені әдейі енгізіңіз: жетіспейтін мән кортежі, шектен тыс көрсеткіш, аралас күн пішімі. Жоғарыда көрсетілген үлгілермен AI-дан диагностика және стандарттау кодын сұраңыз; әр қадамға дейін/соңғы жолдар мен бос орындар санын салыстыру. Кем дегенде бір «үнсіз жоғалтуды» ұстауға тырысыңыз және оны қалай байқағаныңызды белгілеңіз.

бақылау парағы

  • [ ] Мен бастапқы бастапқы деректерді сақтап, көшірмемен жұмыс жасадым ба?
  • [ ] Әрбір жетіспейтін баған үшін "неге бос" деген сұрақ қойдым ба?
  • [ ] Мен шектен шыққан мәндерді жоймас бұрын қарап шықтым ба?
  • [ ] Мен толтыру мәнін тек жаттығу деректерінен есептедім бе?
  • [ ] Әр қадамнан кейін жолдардың/бос орындардың санын тексеріп, дыбыссыз жоғалтуды жойып жатырмын ба?