Тази година започваме от другия край
В 11. клас наборите бяха готови — load_iris, load_digits, — с чисти колони и попълнени етикети. В реална организация такова нещо не съществува. Данните живеят в база, създадена за съвсем друга цел: да обслужва ежедневната работа.
Оперативни срещу аналитични данни
| Оперативни (OLTP) | Аналитични (OLAP) | |
|---|---|---|
| Цел | да работи системата днес | да се разбере какво се е случило |
| Форма | нормализирани таблици | широки таблици с готови признаци |
| Заявки | малки и чести | тежки и редки |
| Пример | запиши поръчка | среден оборот по месеци и градове |
| Кой ги пипа | приложението | анализатори и модели |
Моделът иска втория вид, а разполагаме с първия. Пътят между тях е SQL — съединения, групиране и агрегации, които сте учили в модули 3 и 4. Оттам и днешният извод: за AI проект SQL е също толкова важен, колкото Python.
Не пускайте тежки заявки върху жива база
Аналитичната заявка може да задържи таблици и да забави работещото приложение. В практиката се работи върху копие, реплика или отделна аналитична база. В училищните проекти — върху локално копие.
Един ред на пример
Каквато и да е задачата, наборът трябва да стигне до познатата форма от урок 3 в 11. клас: един ред = един пример, колони = признаци, една колона = етикет. Въпросът, който решава всичко, е какво точно е един пример.
Единица на анализа
Обектът, за който правим предсказание: един клиент, една поръчка, един ден, един ученик, едно съобщение. Различният избор дава напълно различен набор от една и съща база.
- Ще напусне ли клиентът → един ред на клиент, признаци обобщени от всичките му поръчки.
- Ще бъде ли върната поръчката → един ред на поръчка.
- Колко ще продадем утре → един ред на ден.
Логовете — най-подценяваният източник
Всяко приложение записва събития: вход в системата, натиснат бутон, грешка, изпратена заявка. Оттам се вадят признаци, каквито оперативните таблици нямат — колко активен е потребителят, кога се е отказал по средата, колко пъти е опитвал.
Внимание със сроковете
Логовете съдържат лични данни (кой, кога, откъде) и се пазят ограничено време. Проверявайте какво изобщо имате право да използвате — подробно в урок 6.
Първите въпроси към данните
- Какъв е периодът — от кога до кога има записи и има ли празнини?
- Колко реда има и колко от тях са годни?
- Има ли етикет изобщо, или трябва да се създаде?
- Кой е записал тези данни и с каква цел — оттам идват изкривяванията.
- Има ли промяна в системата по средата (нова версия, нови категории), която прави старите данни несравними?
Отговорите на тези пет въпроса струват повече от избора на алгоритъм. Проектите се провалят при данните далеч по-често, отколкото при модела.