Моделът вижда само това, което му дадем
Дата на поръчка сама по себе си е голямо число. Моделът няма да открие от нея, че петък вечер е различен от вторник сутрин — освен ако не му подадем деня от седмицата като отделен признак.
Създаване на признаци (feature engineering)
Превръщането на суровите колони в числа, които носят полезната информация в удобен за алгоритъма вид.
Къде носи най-много
При таблични данни доброто създаване на признаци подобрява резултата повече от смяната на алгоритъма. При изображения и текст е обратното — там мрежата открива признаците сама.
Дати и време
| От дата | Признак | Защо |
|---|---|---|
| 2024-11-15 19:40 | час от денонощието | поведението зависи от часа |
| ден от седмицата | делник и уикенд се различават | |
| месец / сезон | сезонност в продажбите | |
| работен ден / празник | силно влияе на трафика | |
| дни от предишно събитие | най-често най-силният признак |
Цикличност
Час 23 и час 0 са съседни, но като числа са максимално далече. Затова цикличните признаци понякога се задават с две колони — синус и косинус от ъгъла, — за да се запази съседството.
Категории
- Малко стойности → one-hot кодиране (11. клас, урок 14).
- Много стойности → групиране: топ 10 плюс „друго“, или обединяване по смисъл.
- Подредени стойности (S, M, L) → едно число, което запазва подредбата.
- Нови стойности при работа → задължително се предвижда категория „непозната“, иначе системата пада в реална употреба.
Идентификаторите не са признаци
CustomerID е число, но няма смисъл. Ако го подадете, моделът ще намери мними закономерности в номерата — например че клиенти с по-голям номер купуват по-малко (защото са по-нови). Това е изтичане на информация през задната врата.
Съотношения и разлики
Най-подценяваният вид признаци. Две сурови колони често крият силна трета:
- обща сума / брой поръчки = средна поръчка
- поръчки за 30 дни / поръчки за 90 дни = ускорение или спад
- върнати / купени = дял на връщанията
- площ / брой стаи = размер на стая
Дървесните модели могат да ги открият сами при достатъчно данни, но рядко ги откриват добре. Подаването им наготово почти винаги помага.
Текст
- Прости числови признаци: дължина, брой думи, брой главни букви, наличие на връзка.
- Ключови думи: съдържа ли определени изрази.
- Торба с думи или TF-IDF за класически модели.
- Вектори (embeddings) — най-силното, ако имате достъп до модел.
При класификация на оплаквания дължината на текста и наличието на удивителни знаци понякога носят повече от сложното представяне — проверява се, не се предполага.
Кои признаци да оставим
Повече признаци не значи по-добър модел. При много колони и малко редове моделът пренастройва (11. клас, урок 7).
- Махайте признаци, които са почти постоянни — не носят информация.
- Махайте единия от два признака, които се повтарят почти напълно.
- Гледайте значимостта от модела (feature_importances_), но не ѝ вярвайте сляпо.
- Проверявайте всеки подозрително силен признак за изтичане — следващият урок.