如何使用多个要素/列的值组合来创建有趣的值

时间:2019-01-10 20:01:16

标签: featuretools

我对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 :(得分:1)

目前,没有办法做到这一点。

一种方法是创建一个新列d_c__tran_category,其中包含d_ctran_category的所有可能组合,然后向该列添加有趣的值。

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