【问题标题】:Suggestions for feature engineering对特征工程的建议
【发布时间】:2019-09-01 12:49:52
【问题描述】:

我在进行特征工程时遇到了问题。寻找一些建议。问题陈述:我有多个客户 3 天的使用数据。有些人只有 1 天的使用量,有些是 2 天,有些是 3 天。数据与每天发送的电子邮件数量/添加的联系人数量等有关。

我将此时间序列数据转换为按列,即客户在第 1 天发送的电子邮件数量作为一项功能,客户在第 2 天发送的电子邮件数量作为一项功能等等。 但问题是,对于不同的客户,使用可以是升序也可以是降序。

ie.,示例 1:客户 'A' --> ' 1st 发送的电子邮件数量。天' = 100 。 '第 2 天发送的电子邮件数量'=0

示例 2: customer 'B' --> ' 1st 发送的电子邮件数量。天' = 0 。 '第 2 天发送的电子邮件数量'=100

示例 3: customer 'C' --> ' 1st 发送的电子邮件数量。天' = 0 。 '第 2 天发送的电子邮件数量'=0

示例 4: customer 'D' --> ' 1st 发送的电子邮件数量。天' = 100 。 '第 2 天发送的电子邮件数量'=100

在前两种情况下 => 我的新功能将具有“-100”和“100”作为值。我想这有利于区分。 但是当新的特征值在两种情况下都是“0”时,第 3 列和第 4 列就会出现问题 任何人都可以建议一种方法来处理这个

【问题讨论】:

  • 在这种情况下,不要打印0,而是打印“No Change”或类似的内容。
  • 我想到了,但我对一件事感到困惑。如果我这样做,我将不得不将新功能设为 categorical ,这并不理想,因为其他值将是连续的。相反,我可以在新功能中使用绝对值并将趋势指示为“+1”或增加“-1”以减少“无变化”以表示没有变化,如果两个值都为“0”,则为“0”。不过,这会是一个好方法吗?
  • 很难说,因为您还没有准确定义判断处理情况的给定方法是否“好”的标准/约束。
  • 我想捕捉每个客户 3 天的所有有用功能的使用趋势。根据趋势,我必须将客户分为不同的类别。这能回答吗?
  • 你可以接受罪(#emails_in_a_day/#max_number_of_emails)。或者,您可以取所有天数的平均值并将每一天更新为 #of_days_more_or_less_than_mean。

标签: python machine-learning data-science feature-engineering


【解决方案1】:

您可以提取以下特征:

  1. 简单移动平均线分别适用于第 2 天和第 3 天。这意味着您现在有两个额外的列。

  2. 与前一天相比的百分比变化

  3. 从第 1 天到第 3 天的百分比变化

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-03
    • 2021-11-13
    • 2019-08-13
    • 2022-01-07
    • 1970-01-01
    • 2019-05-16
    • 2018-12-13
    • 2019-05-10
    相关资源
    最近更新 更多