使用featuretools计算未来要素

2024-04-23 09:20:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用featuretools生成一个特征矩阵来训练过去的数据并预测未来的数据。所以这是我的设置:

import featuretools as ft
import pandas as pd

df_hotel = pd.DataFrame({
    'hotel_id': [1, 2],
})

df_bookings = pd.DataFrame({
    'bookings_id': [1, 2, 3, 4, 5, 6, 7, 8],
    'time': [1, 2, 3, 4, 1, 2, 3, 4],
    'hotel_id': [1, 1, 1, 1, 2, 2, 2, 2],
    'bookings': [1, 2, 3, 4, 5, 6, 7, 8]
})

es = ft.EntitySet()

es = es.entity_from_dataframe(
    entity_id='c',
    dataframe = df_bookings,
    index='bookings_id',
    time_index='time'
)

es = es.entity_from_dataframe(
    entity_id='hotels',
    dataframe=df_hotel,
    index='hotel_id'
)

es = es.add_relationship(
    ft.Relationship(
        es['hotels']['hotel_id'],
        es['bookings']['hotel_id'],
    )
)

我生成一个特征矩阵如下:

feature_matrix, feature_defs = ft.dfs(
    entityset=es,
    target_entity='bookings',
    cutoff_time=3,
    agg_primitives=["mean"]
)
feature_matrix

然而,这给了我两行(其中时间是4,在curoff之后),其中所有的值都是NAN。所需的行为是填充这些行的值(但仅基于过去的数据计算聚合)。使用featuretools可以这样做吗?你知道吗


Tags: 数据iddataframedfindexestime特征