【问题标题】:featuretools: can I create a new features by multiplying 2 existing variables and then obtain transform primitives of that feature?特征工具:我可以通过将 2 个现有变量相乘来创建一个新特征,然后获得该特征的变换原语吗?
【发布时间】:2022-10-05 04:19:06
【问题描述】:

我的数据包含变量PriceQuantity。我想将它们组合成一个新变量,其中包含购买总额,即这两个的倍数。

在后面,我想获得 3 个变量的 cum_sum,PriceQuantityPrice * Quantity

我正在按如下方式设置dfs:

trans_primitives = ["multiply_numeric","cum_sum"]

feature_matrix, feature_defs = ft.dfs(
    entityset=es,
    target_dataframe_name="items",
    agg_primitives=[],
    trans_primitives=trans_primitives,
    primitive_options={
        ("multiply_numeric"): {
            'include_columns': {'items': ['Price', 'Quantity']}}},
    verbose=True,    
)

但是那个 sn-p 只返回价格和数量的 cum_sum,而不是 2 的乘积。

所以如果我执行feature_defs,结果是:

[<Feature: Invoice>,
 <Feature: Quantity>,
 <Feature: Price>,
 <Feature: CUM_SUM(Price)>,
 <Feature: CUM_SUM(Quantity)>,
 <Feature: Price * Quantity>]

我想要的是:

[<Feature: Invoice>,
 <Feature: Quantity>,
 <Feature: Price>,
 <Feature: CUM_SUM(Price)>,
 <Feature: CUM_SUM(Quantity)>,
 <Feature: CUM_SUM(Price * Quantity),
 <Feature: Price * Quantity>]

这可能开箱即用吗?

谢谢!

【问题讨论】:

    标签: featuretools


    【解决方案1】:

    感谢你的提问。

    ft.dfs 的调用不会自动生成CUM_SUM(price*quantity) 功能,因为这意味着将两个TransformPrimitives 堆叠在一起,这在功能工具中是不允许的。

    相反,您可以使用种子特征 (documentation available here) 来确保创建所需的特征。

    下面是一个如何设置对dfs 的呼叫的示例:

    feat = ft.TransformFeature(ft.TransformFeature([es["items"].ww["price"], es["items"].ww["quantity"], primitive=ft.primitives.MultiplyNumeric), primitive=ft.primitives.CumSum)   
    trans_primitives = ["multiply_numeric","cum_sum"]
    
    feature_matrix, feature_defs = ft.dfs(
        entityset=es,
        target_dataframe_name="items",
        agg_primitives=[],
        trans_primitives=trans_primitives,
        primitive_options={
            ("multiply_numeric"): {
                'include_columns': {'items': ['price', 'quantity']}}},
        seed_features=[feat], 
        verbose=True,    
    )
    

    【讨论】:

      猜你喜欢
      • 2022-11-04
      • 1970-01-01
      • 1970-01-01
      • 2023-01-05
      • 2019-02-22
      • 2022-04-26
      • 2021-07-25
      • 2019-05-16
      • 2018-11-15
      相关资源
      最近更新 更多