我想计算一个二阶特征(深度= 2)。由于实体结构的原因,特征矩阵计算需要计算太多的组合,因此计算需要“年”。</ p>
可以再通过规则设置指定要计算的功能列表吗?
我有一个客户表(cid,...),其中包含与每个客户相关的固定数据(即出生日期)。 另外,我有两个(A和B)不同的表(cid,monthlyReportPeriod等),是根据不同产品的客户每月行为(即#orders)得出的。 二阶通缉的特征是,例如,每个行为表的阶次的加权总和。
当我仅使用一个行为表(A)计算特征时,就会计算出1000个特征。我认为当我将两者合二为一时,我会有两个很多的组合。
es = ft.EntitySet(id = 'ES_PRA')
es = es.entity_from_dataframe(entity_id = 'Customer', dataframe = Customer,
index = 'cid')
es = es.entity_from_dataframe(entity_id = 'A',
dataframe = A,
make_index = True,
index = 'AID',
time_index = 'MonthlyReportPeriod')
es = es.entity_from_dataframe(entity_id = 'B',
dataframe = B,
make_index = True,
index = 'BID',
time_index = 'MonthlyReportPeriod')
#
r_Customer_A = ft.Relationship(es['Customer']['cid'],
es['A']['cid'])
es = es.add_relationship(r_Customer_A)
#
r_Customer_B = ft.Relationship(es['Customer']['cid'],
es['A']['cid'])
es = es.add_relationship(r_Customer_B)
#
seed_features=[
ft.Feature(es["A"]['MonthlyReportPeriod'], primitive=WeightTimeUntil),
ft.Feature(es["B"]['MonthlyReportPeriod'], primitive=WeightTimeUntil)
]
features, feature_names = ft.dfs(entityset = es, target_entity = 'Customer',
agg_primitives = ['sum','last'],
seed_features=seed_features,
trans_primitives = [MultiplyNumeric],
max_depth=2)
我想在表A和B中的每列中指定聚合原语:
cid:- MonthlyReportPeriod:-
(#order):总和,最后一笔,总和(WeightTimeUntil / MultiplyNumeric)
(#sales):总和,最后,均值...
答案 0 :(得分:0)
featuretools的API不在列级别上提供此可选的基元设置。
我在github上发布了一个请求