После соединения двух источников все транзакционные признаки оказались нулевыми
Вы соединяете выгрузку из CRM с агрегатами событий:
crm["client_id"].head(2) # 0 0042315
# 1 0009871 dtype: object
events["client_id"].head(2) # 0 42315
# 1 9871 dtype: object
df = crm.merge(events, on="client_id", how="left")
df[["trx_cnt", "trx_sum"]] = df[["trx_cnt", "trx_sum"]].fillna(0)
Модель обучилась без ошибок, но важность транзакционных признаков нулевая. Что произошло?
- Ключи не совпали из-за разного формата записи, ни одна строка не соединилась, а fillna спрятал это
- how='left' заполняет непришедшие значения нулями сам, поэтому признаки и вышли константными
- У этих клиентов в источнике событий действительно нет активности, надо переходить на inner join
- Бустинг обнулил важность, потому что признаки не были отмасштабированы перед обучением
