我是Featuretools的新手,正在尝试基于具有相同index / time_index的目标创建一组功能。我想要的是生成的功能使用下面target
的time_index之前的所有数据。
因此,在下面的示例中,expected
数据帧值将是这些列在feat_data
中的值的总和。相反,它与feat_data
相同。
我想知道如何解决此问题以实现上述目的。我希望这是有道理的。
import pandas as pd
import numpy as np
import featuretools as ft
num_samples = 10
# create an index
idx = pd.date_range(pd.to_datetime('2016-01-01'),
periods=num_samples,
freq='D')
feat_data = pd.DataFrame(np.random.randn(num_samples, 3),
index=idx,
columns=["A", "B", "C"]).reset_index()
target_data = pd.DataFrame(np.random.binomial(1, 0.5, (num_samples, 1)),
index=idx,
columns=['target']).reset_index()
es = ft.EntitySet()
es = es.entity_from_dataframe("target", target_data, index="index", time_index="index")
es = es.entity_from_dataframe("feat_data", feat_data, index="index", time_index="index")
new_relationship = ft.Relationship(es["feat_data"]["index"], es["target"]["index"])
es = es.add_relationship(new_relationship)
feature_matrix , feature_defs = ft.dfs(entityset=es,
target_entity="target",
agg_primitives=['sum'],
trans_primitives=[])
# what I would expect
expected = feat_data.set_index('index').expanding(min_periods=0).sum().reset_index()