Добици:
- Способност препознавања типова цурења података (циљ, време, претходна обрада, груписани ред) и постављања питања „превише добро да би било истинито“ као аларм
- Способност спречавања цурења раним одвајањем тестног сета, цевовода и правилног поделе (хронолошки/груписани)
- Способност да се анализа учини поновљивом са фиксним семенима, контролом верзија и уклањањем ручних корака
Постоје две грешке које троше највише труда у науци о подацима, а обе су подмукле јер доводе до катастрофе баш када се „изгледа да је све у реду“. Први је цурење података: модел ради одлично на тестном сету, али се руши у производњи. Друга је непоновљивост: извршите анализу шест месеци касније и добијете потпуно другачији резултат. Ова јединица је посвећена дубоком познавању и избегавању ове две замке. АИ може повећати оба ризика (генерише брзо, сугерише скривена цурења, олакшава вам да предузмете ручне кораке), али их такође може смањити ако се правилно користи. Разлика је у дисциплини.
Цурење података: видовити модел
Цурење података је када модел током тренинга види информације које неће имати у тренутку стварног предвиђања. Модел "вара" са овим информацијама, изгледа одлично на тест сету, али пада у производњи без те информације. Симптом цурења је скоро увек исти: превише добро да би било истинито. Пре него што се радујете када видите 99% тачности, требало би да потражите цурење.
Главни типови цурења су:
1. Пропуштање циља: карактеристика је резултат циља. У предвиђању „је отказан“, колоне „датум отказивања“ или „износ повраћаја“ су резултат циља; Они ће бити попуњени тек када је резултат јасан.
2. Цурење времена: Доношење будућих информација у прошлост. Приликом израчунавања „просека за последњих 30 дана“, укључите дане након дана прогнозе или насумично поделите временску серију.
3. Цурење пре обраде: Трансформације учења као што су скалирање, попуњавање, кодирање из свих података пре партиције за обуку/тестирање. Усредњавање података теста омета обуку.
4. Дупли/груписани редови цурења: Редови који припадају истој особи присутни су и у обуци и у тестирању (две посете истог пацијента у различитим сетовима). Модел памти особу.
Врста цурења
Како се роди
Како спречити
цурење циља
Колона која је резултат циља
Тест "Да ли га имам у време предвиђања".
цурење времена
Довођење будућности у прошлост
Хронолошка подела, контрола прозора
Предобрада цурење
Пре-сплит конверзија
Цевовод, фит тек са тренинга
Груписано цурење редова
Иста јединица у два сета
Подели по групи (ГроупКФолд)
Једина дисциплина која спречава цурење
Уобичајено решење за све врсте цурења се своди на једну реченицу: Изолујте тестни сет што је раније могуће да бисте опонашали стварну будућност и не „учите“ га ничему. У пракси, то значи: прво поделите, а затим научите све трансформације само из обуке и примените их у цевоводу (структура која прикупља све кораке у једном ланцу). За сваку функцију поставите питање „да ли имам ове информације у време предвиђања?“ Ако има времена, поделите га хронолошки; Ако се иста јединица понавља, поделите по групи.
Опрез: Најопаснији аспект цурења информација је то што се представља као успех. Лош модел ће очигледно произвести лоше резултате и биће примећен; Модел који је процурио одлично ради, допада свима и пушта се у производњу — ту почиње колапс. Зато је „веома добар“ резултат разлог за узбуну, а не за славље.
Репродуцибилност: добијање истог резултата два пута
Репродуцибилност је могућност да се добије исти резултат када поново покренете анализу у неко друго време, на другој машини. Без овога, ваша анализа је случајна, а не научна. Главни узроци и решења која нарушавају репродуктивност:
Ручни кораци: Ручна промена ћелије у Екцел-у, ручно уређивање графикона. Решење: имајте сваки корак у коду.
Нефиксна случајност: Обука модела, узорковање, подела укључује случајност. Решење: поправите насумично семе (почетну вредност генератора случајних резултата) (рандом_стате=42).
Промене верзије: резултат се може променити када се промени верзија библиотеке. Решење: поправите зависности (рекуирементс.ткт, датотека окружења).
Без вођења евиденције: Није јасно који су подаци, који код, који параметар коришћен. Решење: контрола верзија (Гит — систем који чува све верзије кода) и управљање верзијама података.
„Ради само на мојој машини“: Решење: документујте окружење, користите контејнере (Доцкер) ако је могуће.
три мини кофера
Случај 1 — Циљно цурење. Здравствена анализа је садржала колону „лијекови након отпуштања“ у предвиђању „да ли ће пацијент бити поново примљен“. Ова колона је попуњена тек након што је пацијент отпуштен. Модел је дао 96%, у производњи 61%. Осмонедељни пројекат је био смеће. Лекција: питајте сваку особину „да ли је присутна у време предвиђања?“
Случај 2 — Цурење за претходну обраду. Један тим је скалирао све податке, а затим их поделио. Средња вредност тест података је укључена у скалирање. ЦВ оцена 89%, стварна производња 76%. Лажни успех је нестао када сам прешао у Пипелине и научио о трансформацијама само на тренингу. Лекција: прво поделите, а касније трансформишите.
Случај 3 — Неуспех репродукције. Аналитичар је желео да ажурира графикон који је представио менаџменту три месеца касније, али није могао да се сети како га је направио; многи кораци су урађени ручно у Екцел-у. Резултат није успео и поверење је пољуљано. Лекција: нема ручних корака, све је у коду и Гиту.
Четири шаблона за копирање
1) Инспекција цурења:
Ваша улога: инспектор цурења. Циљ: "цхурн" (0/1), референтни датум прогнозе: рецорд_дате. Даћу вам ову листу карактеристика. За СВАКУ карактеристику: (а) да ли је последица циља, (б) да ли ми је доступна у тренутку предвиђања, (ц) да ли временски оквир укључује будућност? Означите то као „небезбедно/сумњиво/цурење“ и напишите разлог. Карактеристике: [лист]
2) Цјевовод без цурења:
Подесите склеарн цевовод: прво поделите траин/тест (стратификовано, семе=42), ОНДА уградите сву претпроцесу (импутирање, размеру, кодирање) у цевовод САМО из обуке. Објасните зашто код не цури, који корак је научен где.
3) Код контролне листе за поновљивост:
Желим да своју анализу учиним поновљивом. Предложите код/структуру која додаје: (1) тврдо семе за све случајности, (2) коришћене верзије библиотеке за штампање, (3) ознаку датума/верзије за податке и излаз. Такође ми дајте контролну листу да се уверим да нема ручних корака.
4) Груписана партиција (цурење исте јединице):
У подацима исти цустомер_ид постоји у више редова. Направите поделу (ГроупКФолд илиГроупСхуффлеСплит, гроуп = цустомер_ид) која СПРЕЧАВА да исти клијент буде и на обуци и на тестирању. Укључите код да бисте потврдили да нема купаца у оба скупа након раздвајања.
Слаби промпт / Јаки промпт
Слабо обавештење:
Мој модел је вратио 98% тачности, зар то није сјајно? Оптимизујте код.
Прослава 98% скрива цурење. Пре оптимизације треба се запитати да ли је овај резултат стваран или не.
Снажан упит:
Ваша улога: инспектор цурења. Мој модел даје 98% тачности на тест сету, што ми звучи „превише добро да би било истинито“. Проверите: (1) да ли су неке карактеристике резултат циља, (2) да ли су конверзије обављене пре раздвајања, (3) да ли су иста јединица у два сета, (4) да ли има цурења времена. Наведите све сумњиве тачке; Фокусирајте се на проналажење цурења, а не на поправљање резултата.
Овде се висок резултат третира као знак да се доводи у питање, а не да се слави.
Уобичајене грешке
- Славимо "веома добар" резултат. Превише добар резултат да би био истинит је упозорење на цурење, а не достигнуће.
- Учење трансформације из свих података пре дељења. Најчешће цурење; Прво поделите са цевоводом.
- Подела временске серије насумично. Модел види будућност; Хронолошка подела је неопходна.
- Остављајући исту јединицу у два сета. Модел памти особу; Подели по групама.
- Не улазите ручно и не уписујете код. Анализа постаје непоновљива; све би требало да буде у коду и Гиту.
Савет: Напишите „заклетву части“ у две реченице на почетку свог пројекта: „Нисам ни на који начин додирнуо тестни сет пре него што га видим у производњи. Сваки корак је у коду и семе је фиксирано.“ Ако не можете поштено да потпишете ове две реченице, ваш резултат још није поуздан.
Укратко
Цурење података и непоновљивост су две најскупље тихе грешке у науци о подацима. Цурење је визија модела будућности и представља се као лажни успех; Решење је да рано поделите тест скуп, научите трансформације само из тренинга (цевовода), поставите свакој особини питање „Да ли је имам у време предвиђања“ и урадите исправно поделу (хронолошки/груписани). Репродуцибилност је могућност да се два пута добије исти резултат; његово решење је да ручно уклони кораке, закачи семе, замрзне верзије и задржи све у Гиту. АИ може или повећати или смањити ове ризике; Ваша дисциплина је та која одређује.
Задатак апликације
Узмите листу карактеристика модела који сте направили (или хипотетичког) и поставите свакој особини питање „да ли имам ове информације у време предвиђања?“ писмено; Пронађите најмање једног кандидата за цурење. Затим попуните контролну листу да би ваша анализа била поновљива: да ли је семе исправљено, да ли постоје ручни кораци, да ли су верзије регистроване, да ли су у Гиту. Исправите недостатке.
контролна листа
- [ ] Да ли сам поставио упит за резултат „превише добро да би било истинито“ као упозорење о цурењу?
- [ ] Да ли сам научио све трансформације након раздвајања, само из тренинга?
- [ ] Да ли сам поделио према структури времена/групе (хронолошки/ГроупКФолд)?
- [ ] Да ли сам направио све случајности поновљиве са фиксним семеном?
- [ ] Да ли сам уклонио ручне кораке и задржао све у контроли кода и верзија?