Как создать интересные значения, используя комбинации значений из нескольких объектов / столбцов - PullRequest
0 голосов
/ 10 января 2019

Я довольно новичок в featuretools и пытаюсь понять, можно ли и как добавить интересные значения в набор сущностей, созданный с использованием нескольких функций.

Например, у меня есть сущность с двумя сущностями: клиенты и транзакции. Транзакции могут быть дебетовыми или кредитными (c_d) и могут происходить в разных категориях расходов (tran_category) - рестораны, одежда, бакалея и т. Д.

Пока я могу создавать интересные значения для любой из этих функций, но не из их комбинации:

import featuretools as ft

x = ft.EntitySet()

x.entity_from_dataframe(entity_id = 'customers', dataframe = customer_ids, index = cust_id)
x.entity_from_dataframe(entity_id = 'transactions', dataframe = transactions, index = tran_id, time_index = 'transaction_date')

x_rel = ft.Relationship(x['parties']['cust_id'], x['transactions']['cust_id])
x.add_relationship(x_rel)

x['transactions']['d_c'].interesting_values = ['D', 'C']
x['transactions']['tran_category'].interesting_values = ['restaurants', 'clothing', 'groceries']

Как я могу добавить интересное значение, которое объединяет значения из c_d и tran_category? (т. е. дебеты в ресторанах, кредиты на продукты, дебеты одежды и т. д.). Цель состоит в том, чтобы затем использовать эти интересные значения для агрегирования по суммам транзакций, времени между транзакциями и т. Д. С использованием where_primitives:

feature_matrix, feature_defs = ft.dfs(entityset = x, target_entity = 'customers', agg_primitives = list_of_agg_primitives, where_primitives = list_of_where_primitives, trans_primitives = list_of_trans_primitives, max_depth = 3)

1 Ответ

0 голосов
/ 10 января 2019

В настоящее время нет способа сделать это.

Один из подходов заключается в создании нового столбца d_c__tran_category, в котором есть все возможные комбинации d_c и tran_category, и затем добавлении интересных значений в этот столбец.

x['transactions']['d_c__tran_category'].interesting_values = ['D_restaurants', 'C_restaurants', 'D_clothing', 'C_clothing','D_groceries', 'C_groceries']
...