Birlik 10 / 11

Ma'lumotlarning oqishi va takrorlanishi: jim falokatlar va tartib-intizom

Daromadlar:

  • Ma'lumotlarning sizib chiqishi turlarini (maqsad, vaqt, oldindan qayta ishlash, guruhlangan qator) aniqlash va signal sifatida "haqiqat bo'lish uchun juda yaxshi" ballni so'rash qobiliyati
  • Sinov to'plamini, quvur liniyasini erta ajratish va to'g'ri taqsimlash (xronologik / guruhlangan) bilan oqishni oldini olish qobiliyati
  • Ruxsat etilgan urug'lar, versiyani nazorat qilish va qo'lda qadamlarni olib tashlash bilan tahlilni takrorlash qobiliyati

Ma'lumotlar fanida eng ko'p kuch sarflaydigan ikkita xato bor va ularning ikkalasi ham makkordir, chunki ular hamma narsa "yaxshi bo'lib tuyulganda" falokatga olib keladi. Birinchisi, ma'lumotlarning sizib chiqishi: model sinov majmuasida ajoyib ishlaydi, lekin ishlab chiqarishda qulab tushadi. Ikkinchisi - takrorlanmaslik: siz olti oydan keyin tahlilni o'tkazasiz va butunlay boshqacha natijaga erishasiz. Ushbu birlik ushbu ikkita tuzoqni chuqur bilish va oldini olishga bag'ishlangan. AI ikkala xavfni ham oshirishi mumkin (tez hosil qiladi, yashirin oqishlarni taklif qiladi, qo'lda qadamlar qo'yishni osonlashtiradi), lekin to'g'ri ishlatilsa, ularni kamaytirishi mumkin. Farqi intizomda.

Ma'lumotlarning sizib chiqishi: ravshan model

Ma'lumotlarning sizib chiqishi - bu model mashg'ulot paytida haqiqiy bashorat qilish paytida mavjud bo'lmagan ma'lumotlarni ko'rganida. Model ushbu ma'lumot bilan "aldaydi", sinov to'plamida ajoyib ko'rinadi, lekin bu ma'lumotsiz ishlab chiqarishda qulab tushadi. Oqish alomati deyarli har doim bir xil: haqiqat bo'lish uchun juda yaxshi. 99% aniqlikni ko'rganingizda quvonishdan oldin, siz qochqinlarni izlashingiz kerak.

Oqishning asosiy turlari:

1. Maqsadning oqishi: Xususiyat maqsadning natijasidir. "Bekor qilingan" prognozida "bekor qilish sanasi" yoki "to'lov miqdori" ustunlari maqsad natijasidir; Ular faqat natija aniq bo'lganda to'ldiriladi.

2. Vaqt o'tishi: kelajak ma'lumotlarini o'tmishga olib kelish. "Oxirgi 30 kunlik o'rtacha" ko'rsatkichni hisoblashda prognoz kunidan keyingi kunlarni kiriting yoki vaqt seriyasini tasodifiy taqsimlang.

3. Ishlov berishdan oldingi oqish: o'qitish/sinov qismidan oldin barcha ma'lumotlardan masshtablash, to'ldirish, kodlash kabi transformatsiyalarni o'rganish. Sinov ma'lumotlarini o'rtacha hisoblash mashg'ulotlarga xalaqit beradi.

4. Ikki nusxadagi/guruhlangan qator qochqin: Bir shaxsga tegishli qatorlar ham treningda, ham testda mavjud (turli to'plamlarda bitta bemorning ikki marta tashrifi). Model odamni eslab qoladi.

Oqish turi

Qanday tug'iladi

Qanday qilib oldini olish kerak

maqsadli oqish

Maqsad natijasi bo'lgan ustun

"Menda bashorat qilish vaqtida bormi" testi

vaqt oqish

Kelajakni o'tmishga olib kelish

Xronologik bo'linish, oynani boshqarish

Oldindan ishlov berish oqishi

Oldindan ajratilgan konvertatsiya

Quvur liniyasi, faqat mashg'ulotdan mos keladi

Guruhlangan qator oqishi

Ikki to'plamda bir xil birlik

Guruhga bo'lingan (GroupKFold)

Oqishning oldini olish uchun yagona intizom

Oqishning barcha turlari uchun umumiy yechim bitta jumladan iborat: haqiqiy kelajakka taqlid qilish uchun test to'plamini imkon qadar erta ajratib oling va unga hech narsa "o'rgatmang". Amalda, bu quyidagilarni anglatadi: birinchi navbatda bo'linib, keyin barcha o'zgarishlarni faqat treningdan o'rganing va ularni quvur liniyasida qo'llang (barcha bosqichlarni bitta zanjirda to'playdigan tuzilma). Har bir xususiyat uchun "bashorat vaqtida menda bu ma'lumot bormi?" Degan savolni bering. Vaqt bo'lsa, uni xronologik tarzda ajrating; Agar bir xil birlik takrorlansa, guruhga bo'ling.

Diqqat: Oqishning eng xavfli tomoni shundaki, u o'zini muvaffaqiyat sifatida ko'rsatadi. Yomon model, shubhasiz, yomon natijalar beradi va e'tiborga olinadi; Sizib chiqqan model ajoyib ishlaydi, barchaga manzur bo'ladi va ishlab chiqarishga qo'yiladi - bu erda qulash boshlanadi. Shuning uchun "juda yaxshi" natija bayram uchun emas, balki tashvishga sabab bo'ladi.

Reproduktivlik: bir xil natijani ikki marta olish

Qayta ishlab chiqarish - bu tahlilni boshqa vaqtda, boshqa mashinada qayta ishga tushirganingizda bir xil natijani olish qobiliyati. Busiz sizning tahlilingiz ilmiy emas, tasodifiydir. Qayta ishlab chiqarishni buzadigan asosiy sabablar va echimlar:

Qo'lda qadamlar: Excelda hujayrani qo'lda o'zgartirish, diagrammani qo'lda tahrirlash. Yechim: har bir qadam kodda bo'lsin.

Belgilanmagan tasodifiylik: Modelni o'qitish, namuna olish, bo'linish tasodifiylikni o'z ichiga oladi. Yechim: tasodifiy urug'ni (tasodifiy generatorning boshlang'ich qiymati) tuzatish (tasodifiy_state=42).

Versiya o'zgarishi: Kutubxona versiyasi o'zgarganda natija o'zgarishi mumkin. Yechim: bog'liqliklarni tuzatish (requirements.txt, muhit fayli).

Hisob qaydnomasi yo'q: qaysi ma'lumotlar, qaysi kod, qaysi parametr ishlatilganligi aniq emas. Yechim: versiyani boshqarish (Git — kodning barcha versiyalarini saqlaydigan tizim) va maʼlumotlarni versiyalashtirish.

"U faqat mening mashinamda ishlaydi": Yechim: muhitni hujjatlashtiring, iloji bo'lsa konteynerlardan (Docker) foydalaning.

uchta mini holat

1-holat - Maqsadli oqish. Sog'liqni saqlash tahlilida "bemor qayta yotqiziladimi yoki yo'qmi" bashorat qilishda "bo'shatishdan keyingi dori" ustuni mavjud edi. Bu ustun faqat bemor chiqarilgandan keyin to'ldiriladi. Model 96%, ishlab chiqarishda 61% berdi. 8 haftalik loyiha axlat edi. Dars: har bir xususiyatdan so'rang "u bashorat qilish vaqtida mavjudmi?"

2-holat - Oldindan ishlov berishdagi oqma. Bitta jamoa barcha ma'lumotlarni o'lchab, keyin ularni bo'lishdi. Sinov ma'lumotlarining o'rtacha qiymati masshtablashda ishtirok etdi. CV ball 89%, haqiqiy ishlab chiqarish 76%. Men Pipeline-ga ko'chib o'tganimda va o'zgarishlar haqida faqat mashg'ulotlardan bilib olganimda soxta muvaffaqiyat yo'qoldi. Dars: avval bo'lin, keyin o'zgartir.

3-holat - Ko'paytirmaslik. Tahlilchi uch oydan keyin rahbariyatga taqdim etgan jadvalni yangilamoqchi bo'ldi, lekin uni qanday ishlab chiqqanini eslay olmadi; Excelda ko'p qadamlar qo'lda bajarildi. Natija chiqmadi, ishonch larzaga keldi. Dars: qo'lda qadamlar yo'q, hamma narsa kodda va Gitda.

To'rt nusxa ko'chirish shablonlari

1) Oqish tekshiruvi:

Sizning rolingiz: oqish inspektori. Maqsad: "churn" (0/1), prognoz ma'lumot sanasi: rekord_date. Men sizga ushbu xususiyatlar ro'yxatini beraman. HAR bir xususiyat uchun: (a) bu maqsadning natijasimi, (b) bashorat qilish vaqtida men uchun mavjudmi, (c) vaqt oynasi kelajakni o'z ichiga oladimi? Uni "xavfsiz/shubhali/oqish" deb belgilang va sababini yozing. Xususiyatlari: [ro'yxat]

2) Oqishsiz quvur liniyasi:

Sklearn Quvur liniyasini o'rnating: birinchi bo'lingan poezd/test (qatlamlangan, urug'=42), KEYIN FAQAT treningdan boshlab barcha dastlabki ishlov berishni (hisoblash, masshtablash, kodlash) quvur liniyasiga moslang. Kod nima uchun sizib chiqmaganligini, qaysi qadam qayerda o'rganilganligini tushuntiring.

3) Qayta ishlab chiqarishni tekshirish ro'yxati kodi:

Men o'z tahlilimni takrorlanuvchan qilishni xohlayman. Quyidagilarni qo'shadigan kod/strukturani taklif qiling: (1) barcha tasodifiylik uchun qattiq urug', (2) foydalanilgan kutubxona versiyalarini chop etish, (3) ma'lumotlar va chiqish uchun sana/versiya yorlig'i. Qo'lda qadamlar yo'qligiga ishonch hosil qilish uchun menga nazorat ro'yxatini ham bering.

4) Guruhlangan bo'lim (bir xil birlik oqishi):

Ma'lumotlarda bir xil customer_id bir nechta satrlarda mavjud. Ayni mijozning treningda ham, testda ham bo'lishidan OLDINI (GroupKFold yokiGroupShuffleSplit, group = customer_id) ajrating. Bo'lingandan keyin ikkala to'plamda ham mijozlar yo'qligini tekshirish uchun kodni qo'shing.

Zaif taklif / Kuchli taklif

Zaif taklif:

Mening modelim 98% aniqlikni qaytardi, bu ajoyib emasmi? Kodni optimallashtirish.

98% nishonlash oqishni yashiradi. Optimallashtirishdan oldin, bu ball haqiqiymi yoki yo'qmi, degan savol tug'ilishi kerak.

Kuchli so'rov:

Sizning rolingiz: oqish inspektori. Mening modelim test to'plamida 98% aniqlikni qaytaradi, bu menga "haqiqat bo'lish uchun juda yaxshi" tuyuladi. Tekshiring: (1) maqsadning natijasi bo'lgan har qanday xususiyatlar, (2) bo'linishdan oldin amalga oshirilgan konvertatsiyalar, (3) ikkita to'plamda bir xil birlik, (4) vaqt oqishlari bormi. Shubhali fikrlarni sanab o'ting; Hisobni tuzatishga emas, sizib chiqishni topishga e'tibor qarating.

Bu erda yuqori ball nishonlanmaslik uchun emas, balki so'roq qilinadigan belgi sifatida qaraladi.

Umumiy xatolar

  • "Juda yaxshi" natijani nishonlash. Haqiqiy bo'lish uchun juda yaxshi ball yutuq emas, balki sizib chiqish haqida ogohlantirishdir.
  • Bo'linishdan oldin barcha ma'lumotlardan transformatsiyani o'rganish. Eng keng tarqalgan oqish; Avval quvur liniyasi bilan ajrating.
  • Vaqt seriyasini tasodifiy ajratish. Model kelajakni ko'radi; Xronologik bo'linish majburiydir.
  • Xuddi shu birlikni ikkita to'plamda qoldirish. Model odamni eslab qoladi; Guruhga bo'ling.
  • Qo'lda kirmaslik va kodni yozish. Tahlil takrorlanmaydigan bo'ladi; hamma narsa kodda va Gitda bo'lishi kerak.
Maslahat: Loyihangizning boshida ikkita jumladan iborat "sharaf garovi" ni yozing: "Men ishlab chiqarishda ko'rishdan oldin test to'plamiga hech qanday tarzda tegmaganman. Har bir qadam kodda va urug' sobit." Agar siz ushbu ikkita jumlaga halollik bilan imzo cheka olmasangiz, natijangiz hali ishonchli emas.

Xulosa

Ma'lumotlarning oqishi va takrorlanmaslik ma'lumotlar fanidagi eng qimmat ikkita jim xatodir. Oqish - bu modelning kelajak haqidagi tasavvuridir va o'zini yolg'on muvaffaqiyat sifatida ko'rsatadi; Yechim bu testlar to'plamini erta ajratish, o'zgarishlarni faqat mashg'ulot (quvur) orqali o'rganish, har bir xususiyatga "Prognoz paytida menda bormi" degan savolni berish va to'g'ri ajratish (xronologik/guruh) qilishdir. Reproduktivlik - bir xil natijani ikki marta olish imkoniyati; uning yechimi qadamlarni qo'lda olib tashlash, urug'ni mahkamlash, versiyalarni muzlatish va hamma narsani Gitda saqlashdir. AI bu xavflarni oshirishi yoki kamaytirishi mumkin; Bu sizning intizomingiz belgilab beradi.

Ilova vazifasi

O'zingiz yaratgan (yoki taxminiy) modelning xususiyatlar ro'yxatini oling va har bir xususiyatga "bashorat paytida menda bu ma'lumot bormi?" Degan savolni bering. yozma ravishda; Kamida bitta oqish nomzodini toping. Keyin tahlilingizni takrorlanishi mumkin bo'lishi uchun nazorat ro'yxatini to'ldiring: urug' aniqlanganmi, qo'lda qadamlar bormi, versiyalar ro'yxatdan o'tganmi, ular Gitdami. Kamchiliklarni tuzatish.

nazorat ro'yxati

  • [ ] Men "haqiqat bo'lish uchun juda yaxshi" ballni sizib chiqish ogohlantirishi sifatida so'radimmi?
  • [ ] Men bo'lingandan keyin barcha o'zgarishlarni mashg'ulotdan o'rgandimmi?
  • [ ] Vaqt/guruh tuzilishi (xronologik/GroupKFold) boʻyicha boʻlinganmi?
  • [ ] Men barcha tasodifiylikni belgilangan urug 'bilan takrorlanadigan qilib yaratdimmi?
  • [ ] Men qo‘lda bajarilgan amallarni olib tashladimmi va hamma narsani kod va versiya boshqaruvida saqladimmi?