Используйте FeatureTools для агрегирования ежемесячных данных из ежедневных

Я пытаюсь использовать FeatureTools для создания набора данных для использования в оттоке клиентов. анализ. У меня есть необработанный набор данных заказов, который включает такие поля, как:

customer_id, order_id, order_month, order_datetime, order_cost

Я хотел бы создать набор данных, который возвращает одну строку для каждого клиента в месяц, когда они сделали заказ, и соответствующую информацию, такую ​​​​как AVG (order_cost) в течение этого месяца. До сих пор я создал объекты, включая заказ (на основе order_id) и клиента (customer_id). Однако я не смог понять, как создавать ежемесячные функции для каждого клиента. Я попытался создать отдельный объект, основанный на пользовательском идентификаторе каждого customer_id + order_month. Это лучший подход? Есть ли лучший инструмент для этого?

Спасибо!


person kevin.w.johnson    schedule 11.11.2020    source источник


Ответы (1)


Спасибо за вопрос. Если вам нужна одна строка для каждого клиента в месяц, то в настоящее время это лучший подход. В противном случае вы также можете использовать примитивы where, чтобы получать один столбец в месяц для каждого клиента. Для этого вам нужно установить интересные значения для переменной order_month и использовать where_primitives в DFS.

es['orders']['order_month'].interesting_values = df.order_month.unique()

fm, fd = ft.dfs(
    target_entity='customers',
    entityset=es,
    trans_primitives=[],
    agg_primitives=['mean'],
    where_primitives=['mean'],
)
             MEAN(orders.order_cost WHERE order_month = 1)  ...  MEAN(orders.order_cost WHERE order_month = 12)
customer_id                                                 ...                                                
2                                               659.426667  ...                                           3.000
1                                               478.490000  ...                                         435.270
3                                               468.316667  ...                                         319.975
person Jeff Hernandez    schedule 18.11.2020