Лого на 91. НЕГ „Проф. Константин Гълъбов“

Избираем модул · Урок 5

Изтичане на информация

Най-честата причина за „твърде хубав, за да е истина“ резултат. Признаци от бъдещето, времеви разрез и правилното разделяне на данни от база.

Резултатът е чудесен. Значи нещо не е наред

Опитен инженер се радва на 99% точност само след като провери откъде идва. При реални данни такъв резултат почти винаги означава, че моделът е видял отговора.

Изтичане на информация (data leakage)

Ситуация, в която в обучаващите данни попада информация, която в момента на предсказването няма да е налична.

Ефектът е коварен: моделът блести при разработката и се проваля в реална употреба. Затова изтичането е и най-скъпата грешка — открива се най-късно.

Трите вида

1. Признак от бъдещето

Предсказваме дали клиент ще напусне, а сред признаците е „дата на закриване на профила“. Предсказваме дали пациент ще се възстанови, а имаме „дата на изписване“. Признакът съществува само защото събитието вече е станало.

  • Всяка колона, попълвана след момента на предсказване, е заподозряна.
  • Питайте за всеки признак: щеше ли да е налична тази стойност в 9 ч. сутринта в деня на предсказването?

2. Признак, който е следствие от етикета

По-трудно се вижда. „Брой обаждания до поддръжка“ звучи невинно, но ако обажданията са след отказа от услугата, признакът носи отговора. Същото е и „размер на върнатата сума“ при предсказване на връщане.

3. Изтичане при подготовката

Нормализирането, запълването на липси и изборът на признаци, направени върху всички данни, преди разделянето, пренасят информация от тестовата част в обучаващата. Резултатът излиза по-добър, отколкото ще е в действителност.

Правилото

Първо се разделя, после се подготвя. Всичко, което се учи от данните (средно, медиана, речник, скалер), се учи само от обучаващата част и се прилага върху тестовата.

Времевият разрез

При данни от база почти винаги има време. Тогава случайното разделяне е грешка: моделът се обучава върху бъдещето и се тества върху миналото.

признаци се смятат оттукразрезетикетът се наблюдава тукминалото, което системата ще знаебъдещето, което трябва да предскажеВсеки признак, използващ данни отдясно на червената линия, е изтичане.
Признаците се смятат само от лявата страна; етикетът се наблюдава само отдясно.
  1. Избираме дата на разрез.
  2. Признаците се смятат само от записи преди нея.
  3. Етикетът се определя от това, което се е случило след нея (например „поръча ли в следващите 90 дни“).
  4. За тестване се използва по-късен период — точно както ще е в действителност.

Внимавайте и с клиентите

Ако един клиент има редове и в обучаващата, и в тестовата част, моделът може да го „познае“. При данни за хора се разделя по клиент, а не по ред.

Как се проверява

  • Прекалено добър резултат — първо заподозряно.
  • Един признак с огромна значимост, който сам решава задачата.
  • Модел, който работи отлично при разработка и зле при първото пускане.
  • Опишете за всеки признак кога точно се попълва — таблицата с този опис е най-добрата защита.

Проверката отнема час. Откриването на изтичане след внедряване струва месеци.