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

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

Създаване на признаци

Дати, категории, текст и съотношения: как от сурови колони се правят признаци, които моделът може да използва.

Моделът вижда само това, което му дадем

Дата на поръчка сама по себе си е голямо число. Моделът няма да открие от нея, че петък вечер е различен от вторник сутрин — освен ако не му подадем деня от седмицата като отделен признак.

Създаване на признаци (feature engineering)

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

Къде носи най-много

При таблични данни доброто създаване на признаци подобрява резултата повече от смяната на алгоритъма. При изображения и текст е обратното — там мрежата открива признаците сама.

Дати и време

От датаПризнакЗащо
2024-11-15 19:40час от денонощиетоповедението зависи от часа
ден от седмицатаделник и уикенд се различават
месец / сезонсезонност в продажбите
работен ден / празниксилно влияе на трафика
дни от предишно събитиенай-често най-силният признак

Цикличност

Час 23 и час 0 са съседни, но като числа са максимално далече. Затова цикличните признаци понякога се задават с две колони — синус и косинус от ъгъла, — за да се запази съседството.

Категории

  • Малко стойности → one-hot кодиране (11. клас, урок 14).
  • Много стойности → групиране: топ 10 плюс „друго“, или обединяване по смисъл.
  • Подредени стойности (S, M, L) → едно число, което запазва подредбата.
  • Нови стойности при работа → задължително се предвижда категория „непозната“, иначе системата пада в реална употреба.

Идентификаторите не са признаци

CustomerID е число, но няма смисъл. Ако го подадете, моделът ще намери мними закономерности в номерата — например че клиенти с по-голям номер купуват по-малко (защото са по-нови). Това е изтичане на информация през задната врата.

Съотношения и разлики

Най-подценяваният вид признаци. Две сурови колони често крият силна трета:

  • обща сума / брой поръчки = средна поръчка
  • поръчки за 30 дни / поръчки за 90 дни = ускорение или спад
  • върнати / купени = дял на връщанията
  • площ / брой стаи = размер на стая

Дървесните модели могат да ги открият сами при достатъчно данни, но рядко ги откриват добре. Подаването им наготово почти винаги помага.

Текст

  1. Прости числови признаци: дължина, брой думи, брой главни букви, наличие на връзка.
  2. Ключови думи: съдържа ли определени изрази.
  3. Торба с думи или TF-IDF за класически модели.
  4. Вектори (embeddings) — най-силното, ако имате достъп до модел.

При класификация на оплаквания дължината на текста и наличието на удивителни знаци понякога носят повече от сложното представяне — проверява се, не се предполага.

Кои признаци да оставим

Повече признаци не значи по-добър модел. При много колони и малко редове моделът пренастройва (11. клас, урок 7).

  • Махайте признаци, които са почти постоянни — не носят информация.
  • Махайте единия от два признака, които се повтарят почти напълно.
  • Гледайте значимостта от модела (feature_importances_), но не ѝ вярвайте сляпо.
  • Проверявайте всеки подозрително силен признак за изтичане — следващият урок.