【问题标题】:Featuretools: Using features calculated in train data on new dataFeaturetools:在新数据上使用在训练数据中计算的特征
【发布时间】:2020-06-28 09:58:00
【问题描述】:

我想知道如何使用在训练时开发的功能来预测新数据。有问题的数据集是来自Predict appointment no show, Github的预约取消数据集

考虑locations.PERCENT_TRUE(no_show) 的功能:在给定位置取消预约的百分比。假设我有新的传入测试数据,其位置与我已经知道这些值的火车数据中的位置相同。如何在测试数据中使用此功能?当然,我可以将测试数据合并到训练数据中,然后使用featuretools.dfs() 重新计算所有特征,但这很耗时。

有没有更简单的方法?

【问题讨论】:

    标签: python-3.x feature-extraction feature-engineering featuretools


    【解决方案1】:

    是的,不需要将测试数据合并到训练数据。您可以在传入的测试数据上重复使用特征定义。例如,当您对训练数据使用 DFS 时,包含locations.PERCENT_TRUE(no_show) 的特征定义将与特征矩阵一起返回。

    fm, features = ft.dfs(
        entityset=es_train,
        target_entity='appointments',
        ...
    )
    

    在测试数据上,您可以创建实体集并重用定义来计算特征。

    fm = ft.calculate_feature_matrix(
        features=features,
        entityset=es_test,
        ...
    )
    

    如果这有帮助,请告诉我。

    【讨论】:

    • 你能解释一下这是如何工作的吗?如果我是对的,features 变量是特征定义字符串的列表。第二个函数如何知道在训练时计算的特征值?
    • 功能定义源自FeatureBase 对象,该对象可以使用必要的元数据进行序列化/反序列化以重建功能。通过使用特征定义对象,第二个函数可以重构特征并将它们应用到新的实体集上。 This page in the documentation 有更多关于使用特征定义的信息。
    猜你喜欢
    • 2019-01-22
    • 2019-02-27
    • 1970-01-01
    • 2019-03-18
    • 2021-11-01
    • 2021-03-30
    • 2020-02-22
    • 2018-05-26
    • 2020-06-03
    相关资源
    最近更新 更多