日期、均值和标准差的特征工程

数据挖掘 特征提取 特征工程
2021-09-30 06:39:07

我有一个多类分类问题,我应该预测航班的乘客(0-7 类)。训练集包含以下特征:

  • 航班日期
  • 乘客购买机票的平均周数
  • 上述标准差

我从日期、星期几、月份以及航班是否处于旺季中提取。我可以从日期中提取哪些其他特征?我如何使用均值和标准差来创建新特征?

3个回答

日期字段是非常有趣的数据,因为您可以对它们进行“特征工程师”的限制是您的想象力。但是,在您尝试之前很难先验地知道其中一个是否会改进您的模型。

这里有一些想法:

  1. 月 (1-12)
  2. 日期 (1-31)
  3. 星期几 (1-7)
  4. 一年中的第几周 (1-52)
  5. 一年中的第一个季度 (1-4)
  6. 是周末还是工作日 (0,1)
  7. 季节(冬、春、夏、秋)

如果您在日期字段上也有时间,那么您可以尝试以下方法:

  1. 一天中的小时 (1-24)
  2. 基于饮食习惯的一天中的一部分(早餐、午餐、晚餐等)

如果您有航班的目的地,那么您可以使用外部资源并获取假期或特定的“大事件”

  1. 是假期期间的航班 (0,1)
  2. 离最近的假期有多少天(飞行前后)
  3. 目的地的任何大型赛事,如奥运会、超级碗、足球决赛等

您可以假设客户购买门票的周数为正态分布,使用均值和标准差作为每个客户单独分布的参数,计算每个客户的分位数(例如 2.5%、25%、75% 和 97.5%)并将它们用作附加功能。

要添加到@Tasos,如果您有乘坐多个航班的乘客,您还可以计算航班/预订之间的延迟、总共乘坐的航班数量、一段时间内乘坐的航班数量等。然后您可以还将均值、中位数和标准差叠加到这些特征上。

特征工程日期变量时的一个重要考虑因素是编码之间的“距离”。例如,您可以编码Sunday == 7Monday == 1. 根据大多数指标,这两种编码之间的“距离”会非常大,即使我们实际上知道它们之间没有太大差异。(类似的例子包括December == 12and January == 1; last week of year 1 == 52and first week of year 2 == 1)。

一个巧妙的解决方案是使用 和 之类的循环变换,sincos根据周期性进行适当调整。