无法部署功能工具,因为 EntitySet.read_pickle() 方法缺失

Unable to deploy featuretools as EntitySet.read_pickle() method missing

参考featuretools'v0.7.0'的部署方法deployment page

我使用 ft.save_features 方法保存了 feature_defs 但是在使用 ft.load_features 成功加载 defs 后我发现下一个依赖项计算特征矩阵即ft.calculate_feature_matrix 是实体集!

我发现没有办法坚持EntitySet。因为我只能找到 EntitySet.to_pickle() 方法,但没有任何东西可以从 pickle 加载!

我有一个新的数据框,我想在上面附加我的功能,但没有父数据框或实体集是不可能的。

如有遗漏,请多多指教。

Entityset: None
  Entities:
    branches [Rows: 82, Columns: 1]
    suppliers [Rows: 2953, Columns: 1]
    manufacturers [Rows: 11, Columns: 1]
    states [Rows: 22, Columns: 1]
    employees [Rows: 3270, Columns: 1]
    pincodes [Rows: 6698, Columns: 1]
    customers [Rows: 233154, Columns: 38]
  Relationships:
    customers.branch_id -> branches.branch_id
    customers.supplier_id -> suppliers.supplier_id
    customers.manufacturer_id -> manufacturers.manufacturer_id
    customers.state_id -> states.state_id
    customers.employee_code_id -> employees.employee_code_id
    customers.current_pincode_id -> pincodes.current_pincode_id

ft.save_features(features_defs_branches, 'branches.ft')

我要为另一个客户计算,我该怎么做?

new_predictions.py

df_new_customers = pd.read_csv('customers.csv')

features_loaded = ft.load_features('branches.ft')
feature_matrix = ft.calculate_feature_matrix(features_loaded, ?)

在您上面的示例中,您需要创建相同的实体集 df_new_customers 中的新数据。获得新数据的实体集后,您可以加载特征并计算它们。

如果您想读取以前保存的实体,可以使用 featuretools.read_entityset('path/to/entityset/')。可以看到所有的序列化方法here。也就是说,在这种情况下,我认为您不需要序列化和反序列化实体集。