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

Деректердің ағып кетуі және қайталануы: үнсіз апаттар және тәртіп

Табыстар:

  • Деректер ағып кету түрлерін (мақсат, уақыт, алдын ала өңдеу, топтастырылған жол) тану және дабыл ретінде «шын болу үшін тым жақсы» бағасын сұрау мүмкіндігі
  • Сынақ жинағын, құбырды және дұрыс бөлуді (хронологиялық/топтық) ерте бөлу арқылы ағып кетуді болдырмау мүмкіндігі
  • Бекітілген тұқымдармен талдауды көбейту мүмкіндігі, нұсқаны бақылау және қолмен қадамдарды жою

Деректер ғылымында көп күш жұмсайтын екі қателік бар және олардың екеуі де жасырын, өйткені олар бәрі «жақсы болып көрінгенде» апатқа әкеледі. Біріншісі - деректердің ағып кетуі: модель сынақ жиынында жақсы жұмыс істейді, бірақ өндірісте бұзылады. Екіншісі - қайталанбайтындық: сіз алты айдан кейін талдау жасайсыз және мүлдем басқа нәтиже аласыз. Бұл бөлім осы екі тұзақты терең білуге ​​және болдырмауға арналған. AI екі тәуекелді де арттыра алады (тез жасайды, жасырын ағып кетулерді ұсынады, қолмен қадамдар жасауды жеңілдетеді), бірақ дұрыс пайдаланылса, оларды азайта алады. Айырмашылық тәртіпте.

Деректердің ағып кетуі: көріпкел модель

Деректердің ағып кетуі - бұл модель жаттығу кезінде нақты болжау кезінде болмайтын ақпаратты көргенде. Модель бұл ақпаратты «алдайды», сынақ жиынында керемет көрінеді, бірақ бұл ақпаратсыз өндірісте бұзылады. Ағып кету симптомы әрдайым дерлік бірдей: шындық болу үшін тым жақсы. 99% дәлдікті көргенде қуанбас бұрын, ағып кетуді іздеу керек.

Ағып кетудің негізгі түрлері:

1. Мақсаттың ағып кетуі: Ерекшелік - мақсаттың нәтижесі. "Бас тартылды" болжамында "жойылған күн" немесе "қайтару сомасы" бағандары мақсатты нәтиже болып табылады; Олар нәтиже анық болған кезде ғана толтырылады.

2. Уақыттың ағып кетуі: Болашақ ақпаратты өткенге жеткізу. «Соңғы 30 күндегі орташа мәнді» есептеу кезінде болжамды күннен кейінгі күндерді қосыңыз немесе уақыт қатарын кездейсоқ түрде бөліңіз.

3. Өңдеу алдындағы ағып кету: оқыту/тестілеу бөліміне дейінгі барлық деректерден масштабтау, толтыру, кодтау сияқты оқу түрлендірулері. Сынақ деректерін орташалау оқытуға кедергі келтіреді.

4. Қайталанатын/топталған жол ағуы: Бір адамға тиесілі жолдар оқытуда да, тестілеуде де бар (әртүрлі жиынтықтағы бір пациенттің екі рет келуі). Үлгі адамды есте сақтайды.

Ағып кету түрі

Қалай туады

Қалай алдын алуға болады

мақсатты ағып кету

Мақсаттың нәтижесі болып табылатын баған

«Болжау кезінде менде бар ма?» тесті

уақыттың ағуы

Болашақты өткенге жеткізу

Хронологиялық бөлу, терезені басқару

Алдын ала өңдеудегі ағып кету

Алдын ала бөлінген түрлендіру

Құбыр, жаттығудан ғана жарамды

Топтастырылған жолдың ағуы

Екі жиынтықтағы бірдей бірлік

Топқа бөлу (GroupKFold)

Ағып кетудің алдын алатын жалғыз тәртіп

Ағып кетудің барлық түрлеріне ортақ шешім бір сөйлемге дейін қайнатылады: нақты болашаққа еліктеу үшін сынақ жинағын мүмкіндігінше ертерек оқшаулаңыз және оған ештеңені «үйретпеңіз». Іс жүзінде бұл мынаны білдіреді: алдымен бөліңіз, содан кейін барлық түрлендірулерді тек оқытудан үйреніңіз және оларды конвейерде қолданыңыз (барлық қадамдарды бір тізбекте жинайтын құрылым). Әрбір мүмкіндік үшін «болжау кезінде менде бұл ақпарат бар ма?» Деген сұрақ қойыңыз. Уақыт болса, оны хронологиялық түрде бөліңіз; Егер бірдей бірлік қайталанатын болса, топқа бөліңіз.

Абайлаңыз: ағып кетудің ең қауіпті аспектісі - ол өзін сәттілік ретінде көрсетеді. Нашар үлгі нашар нәтиже беретіні анық және назарға алынады; Ағып кеткен модель керемет жұмыс істейді, барлығын қуантады және өндіріске енгізілді — күйреу осыдан басталады. Сондықтан «өте жақсы» нәтиже мереке емес, алаңдаушылық тудырады.

Қайталану мүмкіндігі: бірдей нәтижені екі рет алу

Қайталанғыштық - талдауды басқа уақытта, басқа машинада қайта іске қосқанда бірдей нәтиже алу мүмкіндігі. Онсыз сіздің талдауыңыз ғылыми емес, кездейсоқ. Репродуктивтілікті нашарлататын негізгі себептер мен шешімдер:

Қолмен орындалатын қадамдар: Excel бағдарламасында ұяшықты қолмен өзгерту, диаграмманы қолмен өңдеу. Шешім: әрбір қадамды кодта сақтаңыз.

Бекітілмеген кездейсоқтық: үлгіні оқыту, іріктеу, бөлу кездейсоқтықты қамтиды. Шешуі: кездейсоқ тұқымды (кездейсоқ генератордың бастапқы мәні) бекітіңіз (random_state=42).

Нұсқаның ауысуы: кітапхана нұсқасы өзгерген кезде нәтиже өзгеруі мүмкін. Шешім: тәуелділіктерді түзету (requirements.txt, орта файлы).

Есеп жүргізу жоқ: қандай деректер, қандай код, қандай параметр пайдаланылғаны белгісіз. Шешім: нұсқаны басқару (Git — кодтың барлық нұсқаларын сақтайтын жүйе) және деректерді нұсқалау.

«Ол тек менің құрылғымда жұмыс істейді»: Шешім: ортаны құжаттаңыз, мүмкін болса контейнерлерді (Docker) пайдаланыңыз.

үш шағын іс

1-жағдай – Мақсатты ағып кету. Денсаулықты талдауда «науқастың қайта қабылданатынын» болжайтын «босанғаннан кейінгі дәрі-дәрмек» бағанасы көрсетілген. Бұл баған науқасты шығарғаннан кейін ғана толтырылды. Модель 96%, өндірісте 61% берді. 8 апталық жоба қоқыс болды. Сабақ: әрбір мүмкіндікті «болжау кезінде бар ма?» деп сұраңыз.

2-жағдай — алдын ала өңдеудегі ағып кету. Бір команда барлық деректерді масштабтады, содан кейін оны бөлді. Сынақ деректерінің орташа мәні масштабтауға қатысты. CV ұпайы 89%, нақты өндіріс 76%. Мен Pipeline-ға көшіп, трансформациялар туралы тек жаттығудан білгенде жалған табыс жоғалып кетті. Сабақ: алдымен бөл, кейін түрлен.

3-жағдай – Көбейту. Аналитик үш айдан кейін басшылыққа ұсынған диаграмманы жаңартқысы келді, бірақ оны қалай жасағанын есіне түсіре алмады; Excel бағдарламасында көптеген қадамдар қолмен орындалды. Нәтиже шықпай, сенімге селкеу түсірді. Сабақ: қолмен қадамдар жоқ, барлығы кодта және Git-те.

Көшірілетін төрт үлгі

1) ағып кетуді тексеру:

Сіздің рөліңіз: ағып кету инспекторы. Нысан: "шығу" (0/1), болжамды анықтау күні: жазба_күні. Мен сізге осы мүмкіндіктер тізімін беремін. ӘР БІР мүмкіндік үшін: (а) бұл мақсаттың салдары ма, (b) ол болжау кезінде маған қол жетімді ме, (c) уақыт терезесі болашақты қамтиды ма? Оны «қауіпсіз/күдікті/ағып кету» деп белгілеп, себебін жазыңыз. Мүмкіндіктер: [тізім]

2) ағусыз құбыр:

Sklearn Pipeline орнату: алдымен бөлінетін пойыз/сынақ (стратификацияланған, тұқым=42), СОСЫН ТЕК оқытудан бастап барлық алдын ала өңдеуді (есептеу, масштабтау, кодтау) құбырға қондырыңыз. Код неліктен ағып кетпейтінін, қай қадамды қайдан үйренгенін түсіндіріңіз.

3) Қайта шығаруды тексеру тізімінің коды:

Мен өз талдауымды қайталанатын еткім келеді. Мыналарды қосатын кодты/құрылымды ұсыныңыз: (1) барлық кездейсоқтық үшін қатты тұқым, (2) пайдаланылған кітапхана нұсқаларын басып шығару, (3) деректер мен шығыс үшін күн/нұсқа тегі. Сондай-ақ, қолмен қадамдар жоқ екеніне көз жеткізу үшін маған бақылау тізімін беріңіз.

4) Топтастырылған бөлім (бір бірлік ағу):

Деректерде бірдей customer_id бірнеше жолда бар. Бір тұтынушының жаттығуда да, тестілеуде де болуын БОЛМАЙДЫ (GroupKFold немесеGroupShuffleSplit, group = customer_id) бөліңіз. Бөлінгеннен кейін екі жинақта да тұтынушылар жоқ екенін тексеру үшін кодты қосыңыз.

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

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

Менің үлгісім 98% дәлдікті қайтарды, бұл керемет емес пе? Кодты оңтайландыру.

98% тойлау ағып кетуді жасырады. Оңтайландыруды бастамас бұрын, бұл балл шынайы ма, жоқ па деген сұрақ туындауы керек.

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

Сіздің рөліңіз: ағып кету инспекторы. Менің үлгісім сынақ жиынында 98% дәлдікті қайтарады, бұл маған «шынайы болу үшін тым жақсы» болып көрінеді. Тексеріңіз: (1) кез келген мүмкіндіктер мақсаттың нәтижесі болып табылады, (2) бөлуге дейін жасалған түрлендірулер, (3) екі жиынтықтағы бірдей бірлік, (4) уақыттың ағып кетуі бар ма. Кез келген күдікті нүктелерді көрсетіңіз; Ұпайды түзетуге емес, ағып кетуді табуға назар аударыңыз.

Мұнда жоғары балл тойлауға емес, сұрауға болатын белгі ретінде қарастырылады.

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

  • «Өте жақсы» нәтижені атап өту. Шынайы болу үшін тым жақсы балл - бұл жетістік емес, ағып кету туралы ескерту.
  • Бөлу алдында барлық деректерден түрлендіруді үйрену. Ең жиі ағып кету; Алдымен құбырмен бөліңіз.
  • Уақыт қатарын кездейсоқ бөлу. Модель болашақты көреді; Хронологиялық бөлу міндетті болып табылады.
  • Бір құрылғыны екі жиынтықта қалдыру. Үлгі адамды есте сақтайды; Топқа бөлу.
  • Қолмен кіру және кодты жазу емес. Талдау қайталанбайтын болады; бәрі кодта және Git-те болуы керек.
Кеңес: Жобаңыздың басында екі сөйлемнен тұратын «құрмет кепілі» жазыңыз: «Мен оны өндірісте көрмей тұрып, сынақ жинағына ешқандай түрде қол тигізген жоқпын. Әрбір қадам кодта және тұқым бекітілген». Егер сіз осы екі сөйлемге адал қол қоя алмасаңыз, нәтиже әлі сенімді емес.

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

Деректердің ағып кетуі және қайталанбауы - деректер ғылымындағы ең қымбат екі үнсіз қате. Ағып кету - модельдің болашаққа деген көзқарасы және өзін жалған табыс ретінде көрсетеді; Шешім – тест жинағын ертерек бөлу, түрлендірулерді тек жаттығудан (құбырдан) үйрену, әрбір мүмкіндікке «Болжау кезінде менде бар ма» деген сұрақты қою және дұрыс бөлуді (хронологиялық/топтық) орындау. Репродуктивтілік – бір нәтижені екі рет алу мүмкіндігі; оның шешімі қадамдарды қолмен алып тастау, тұқымды бекіту, нұсқаларды қатыру және барлығын Git-те сақтау. AI бұл тәуекелдерді арттыра немесе азайта алады; Ол сіздің тәртіпті анықтайды.

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

Өзіңіз құрастырған (немесе гипотетикалық) модельдің мүмкіндіктер тізімін алыңыз және әрбір мүмкіндікке «болжау кезінде менде бұл ақпарат бар ма?» Деген сұрақ қойыңыз. жазбаша түрде; Кем дегенде бір ағып кету үміткерін табыңыз. Содан кейін талдауды қайталанатын етіп жасау үшін бақылау тізімін толтырыңыз: тұқым бекітілген бе, қолмен жасалған қадамдар бар ма, тіркелген нұсқалар ма, олар Git-те ме. Кемшіліктерді түзетіңіз.

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

  • [ ] Мен ағып кету туралы ескерту ретінде "шын болу үшін тым жақсы" ұпайын сұрадым ба?
  • [ ] Жаттығудан кейінгі барлық түрлендірулерді үйрендім бе?
  • [ ] Уақыт/топ құрылымы (хронологиялық/GroupKFold) бойынша бөлдім бе?
  • [ ] Мен барлық кездейсоқтықты бекітілген тұқыммен қайталанатын етіп жасадым ба?
  • [ ] Қолмен жасалған қадамдарды жойып, барлығын код пен нұсқаны басқаруда сақтадым ба?