Јединице
1. Увод у вештачку интелигенцију у науци о подацима и аналитици: ток посла, улоге, границе, валидација и етика 2. Прикупљање података и разумевање извора: шема, узорковање, квалитет и свест о цурењу 3. Чишћење података и претходна обрада: Недостајућа вредност, Оутлиер и конверзија типа 4. Истраживачка анализа података (ЕДА): дистрибуције, односи и почетни увиди 5. Инжењеринг карактеристика: генерисање варијанти, кодирање, скалирање и избегавање цурења 6. Изградња модела: дефиниција проблема, избор алгоритма и подела обуке/тестирања 7. Евалуација модела: метрика, унакрсна валидација и екстремно учење 8. Визуелизација и приповедање: тачна графика, искрена графика 9. Генерисање кода: Анализа уз помоћ вештачке интелигенције са Питхон-ом (панде) и СКЛ-ом 10. Цурење података и репродуктивност: тихе катастрофе и дисциплина 11. МЛОпс фондација, етика, приватност и одговорна аналитика
Јединица 5 / 11

Инжењеринг карактеристика: генерисање варијанти, кодирање, скалирање и избегавање цурења

Добици:

  • Способност да се произведу значајне изведене карактеристике са знањем о домену и кодирају категоричне категорије одговарајућим методама (оне-хот, лабел, таргет)
  • Способност скалирања нумеричких променљивих према типу модела (стандардизација, нормализација) и избегавање непотребног или непотпуног скалирања
  • Способност да се избегне цурење карактеристика учењем свих трансформација након поделе обуке/тестирања и само из тренинга

Постоји стара изрека у машинском учењу: „Примењено машинско учење је у суштини инжењеринг карактеристика“. Зато што успех модела често долази од тога које инпуте дајете моделу, пре него који алгоритам одаберете. Инжењеринг карактеристика је уметност производње значајних сигнала из сирових података из којих модел може да учи. Вештачка интелигенција је богат извор идеја у овој фази: када питате „које карактеристике се могу произвести из ових података“, она наводи десетине предлога. Али неки од ових предлога могу бити вредни, неки бескорисни, а неки опасни (цурење). Твој је посао да то средиш.

Зашто инжењеринг карактеристика

Необрађени подаци ретко долазе до модела у свом најбољем облику. Док је колона „датум рођења“ сама по себи бесмислена, вредност „старости“ генерисана из ње је снажан сигнал. Можете издвојити атрибуте као што су „дан у недељи“, „дан/ноћ“, „да ли је празник“ из „временске ознаке наруџбине“. Можете комбиновати две колоне да бисте добили однос („однос дуга/прихода“). Овде инжењеринг карактеристика преводи знање из домена у математички сигнал; И управо зато је етапа која захтева највише људске интелигенције.

Претварање категоричких променљивих у бројеве: кодирање

Модели углавном раде са бројевима, а не са текстом. Претварање категоричких променљивих (као што су град, боја, тип производа) у бројеве назива се кодирање. Три уобичајене методе:

Оне-хот енцодинг: Отвара засебну колону са вредношћу 0/1 за сваку категорију. За „град“, формирају се колоне Истанбул, Анкара, Измир; Ако је купац из Истанбула, само та колона ће бити 1. Идеално када је број категорија мали; Ако има превише категорија, производи се стотине колона (ово се зове "експлозија величине").

Кодирање етикете: Даје број свакој категорији (Истанбул=0, Анкара=1). Једноставно је, али може случајно научити модел секвенци (као Анкара > Истанбул); па се опрезно користи у неуређеним категоријама.

Циљно кодирање: Замењује сваку категорију просеком циљне променљиве у тој категорији. То је веома моћан, али најопаснији извор цурења: ако узмете у обзир циљ тестних података, модел види будућност. Требало би да се израчуна само на основу података о обуци и пажљиво (у оквиру унакрсног провера).

Скалирање: велики бројеви не преоптерећују модел

Неки модели (засновани на удаљености, линеарни модели, неуронске мреже) су осетљиви на скалу варијабли. Ако "приход" (0-500.000) и "старост" (0-100) спадају у исти образац, приход може доминирати једноставно зато што је већи. Скалирање ово поправља. Две уобичајене методе: стандардизација (конвертује сваку вредност у „колико је стандардних девијација удаљено од средње вредности“) и нормализација (мин-мак нормализација — компримује вредности у опсег 0-1). Модели засновани на дрвету (стабла одлучивања, случајна шума) су неосетљиви на размеру, не захтевају скалирање.

Опрез: Параметри скалирања и кодирања (средња вредност, стандардна девијација, мапирање средње вредности категорије) треба да се израчунавају само из података о обуци, а затим исто треба применити на податке теста. Укључивање тестних података представља цурење и чини да ваш модел изгледа боље него што заправо јесте.

Срце цурења у инжењерингу карактеристика

Генерисање функција је место где најчешће долази до цурења података. Две типичне грешке: цурење времена — стварање функције која укључује будуће информације (укључујући дане након дана прогнозе када се израчунава „просек за последњих 30 дана“). Цурење статистике — израчунавање карактеристике (просек скалирања, циљна вредност кодирања) из свих података пре поделе обуке/тестирања. Правило: научите сваку трансформацију након што прво урадите тренинг/тест сплит и само из података о обуци. Најсигурнији начин да то редовно радите је да користите цевовод — структуру која прикупља све трансформације у једном ланцу и примењује их након раздвајања.

Метод

за шта

Ризик од цурења

напомена

Оне-хот енцодинг

Променљива са неколико категорија

ниско

Експлодира величину у више категорија

Кодирање етикете

Сортирана категорија

ниско

Ван реда учи погрешном редоследу

циљно кодирање

Вишекатегорија, јак сигнал

веома високо

Само из образовања, у биографији

стандардизација

Линеарни/дистанчни модели

средње

Параметар зависи само од образовања

Функција временског прозора

временске серије

висока

Додајте будућност

три мини кофера

Случај 1 — Вредна имовина. Кредитни тим је генерисао функцију „однос дуга и прихода“ из сирових колона „месечни приход“ и „месечно плаћање дуга“. Ова појединачна изведена карактеристика повећала је тачност модела са 71% на 79%; јер је стопа, а не апсолутни приход, оно што је заиста одредило ризик. Поука: односи генерисани знањем о домену су јаки сигнали.

Случај 2 — Цурење циљног кодирања. Један тим је конвертовао „поштански број“ у број са циљним кодирањем (просечна стопа одлива у тој области), али је то урадио из свих података пре раздвајања. Модел је дао 94% на тест сету, пао је на 68% у производњи. Протраћено 6 недеља труда. Поука: кодирање циља се ради пажљиво, само у оквиру обуке.

Случај 3 — Скалирање заборављања. Један аналитичар је унео приход (0-400.000) и старост купаца (18-75) у модел заснован на удаљености без скалирања. Манекенка је гледала скоро искључиво на приходе, уништавајући ефекат старости. Када је додато скалирање, сегментација је постала значајна. Поука: скалирање се не занемарује у даљинским/линеарним моделима.

Четири шаблона за копирање

1) Генерисање идеја о карактеристикама (елиминисање је на вама):

Ваша улога: асистент инжењеринга. Моје дф колоне: датум_рођења, време_наруџбе (временска ознака), приход_тл, дуг_тл, град, категорија_производа. Циљ: „да ли ће кредит бити враћен“ (0/1). Предложите 15 карактеристика које се могу генерисати из ових колона; наведите ризик од цурења (низак/средњи/висок) за сваки. Јасно означите оне који садрже будуће информације.

2) Сигурно кодирање (пост-сплит):

Напишите код који кодира "град" и "категорија_производа". ВАЖНО: прилагодите кодирање само подацима за обуку, а затим трансформишите податке теста (са склеарн ОнеХотЕнцодер). Објасните како поступате са категоријом невидљиво (хандле_ункновн) у образовању.

3) Конверзија без цурења са цевоводом:

Подесите склеарн Пипелине: примените СтандардСцалер на нумеричке колоне, ОнеХотЕнцодер на категоричке колоне, додајте класификатор на крају. Гарантујемо да се све трансформације науче НАКОН раздвајања обуке/тестирања и само из тренинга. Објасните код и зашто не цури.

4) Функција временског прозора (контрола цурења):

Генеришите атрибут „број поруџбина у последњих 30 дана“ за сваког купца, али НИКАДА не укључите податке после дана прогнозе. Објасните ред по ред да код не гледа у будућност. Навешћу колону са референтним датумом.

Слаби промпт / Јаки промпт

Слабо обавештење:

Додајте добра својства овим подацима.

„Добро“ је недефинисано, циљ је нејасан, нема контроле цурења. АИ генерише насумичне, можда непропусне карактеристике.

Снажан упит:

Ваша улога: инжењер карактеристика. Циљ: „одлив за 30 дана“ (0/1), процењени референтни датум: саве_дате. Постоји историја трансакција у дф.Таск: Генеришите 8 карактеристика, одговорите на питање "Да ли имам ове информације у време предвиђања" за СВАКУ. Додавање датума после референтног датума у ​​функцијама временског прозора. Напишите код на начин компатибилан са цевоводом који ће се извршити након одељка за обуку/тестирање.

Овде су циљ, референтно време и контрола цурења дефинисани од почетка.

Уобичајене грешке

  • Учење трансформације из свих података пре дељења. Ако параметар скалирања/кодирања види податке теста, долази до цурења.
  • Непажљиво коришћење циљног кодирања. То је најмоћнији, али метод који највише пропушта; само са тренинга, у унакрсној валидацији.
  • Додавање будућности са функцијом временског прозора. Ако се калкулација „последњих 30 дана“ унесе после дана прогнозе, модел види будућност.
  • Непотребно скалирање у моделу стабла и непотпуно скалирање у линеарном моделу. Одлуке о скалирању се доносе према типу модела.
  • Додавање сваке функције вештачке интелигенције без питања. Предлози могу укључивати бескорисне и непропусне функције.
Савет: Запишите једно питање за сваку функцију коју генеришете: „Могу ли да израчунам ову вредност са информацијама које имам у тренутку када предвиђам?“ Ако одговор није јасно „да“, немојте користити ову функцију. Ова јединствена дисциплина елиминише већину цурења везаних за карактеристике.

Укратко

Инжењеринг карактеристика је уметност генерисања значајних сигнала из необрађених података и често више одређује успех модела него алгоритам. Кодирање категорија (оне-хот, лабел, таргет), скалирање нумеричких бројева (стандардизација, нормализација) и производња изведених карактеристика са знањем о домену су основни алати. Али ова фаза је такође срце цурења: све трансформације се морају научити након поделе обуке/тестирања и само из података о обуци. АИ генерише обиље идеја; Људско расуђивање је оно што разликује вредно од опасног.

Задатак апликације

Изаберите циљну променљиву и дизајнирајте најмање пет изведених карактеристика из колона које имате. За сваки од њих писмено одговорите на питање „да ли сам доступан у време предвиђања“ и елиминишите бар једно као „висок ризик од цурења“. Затим кодирајте безбедне функције у цевоводу који ће се имплементирати након партиције.

контролна листа

  • [ ] Да ли сам применио све трансформације након поделе воз/тест?
  • [ ] Да ли сам научио параметре скалирања/кодирања само из обуке?
  • [ ] Да ли сам одговорио на питање „да ли га имам у време предвиђања“ за сваку функцију?
  • [ ] Да ли сам посебно водио рачуна о методама високог ризика као што је кодирање циља?
  • [ ] Да ли сам одлучио да скалирам одговарајуће за тип модела (стабло/линеарни)?