如何转换时间序列数据以应用监督学习算法?

数据挖掘 分类 时间序列 随机森林 训练
2022-02-15 09:56:59

对于可能是一个非常基本的问题,请提前道歉。

我有一个由对不同客户的营销电话组成的数据集,其中包括电话的时间戳。我的目标是训练一个模型来预测客户是否会根据通话时间以及其他功能(如来电显示等)来接听或忽略它。

问题是调用的结果显然是时间相关的,也就是说,每个客户端的数据点顺序对于在给定时间预测因变量很重要。

我的问题是,如何转换我的特征,以便可以使用标准分类算法(如逻辑回归/随机森林)对新数据点进行分类?这些算法对这些场景有效吗?如果是这样,我应该如何继续考虑以前的数据点?

我已经读过时间序列数据可以通过包括因变量的超前列和滞后列来转换为监督学习问题。但由于我的测试数据没有这些列,我对它们如何帮助我感到困惑。

非常感谢你。

2个回答

您可以将所有以前的数据点聚合到一个新功能中。例如the number of previous (un)successful call attemptsthe number of days since the last call在这种聚合(将以前的调用转换为新的标量特征)之后,您不再处理时间序列,而是拥有通常的设计矩阵,每行client(每个特征一列)。

这些算法对这些场景有效吗?

如果你能得到好的特征,它们应该是有效的,这应该不会太难。这比使用序列模型(比如 LSTM)更手动,但如果你得到好的特征,我希望这也能更好地工作。

我已经读过时间序列数据可以通过包括因变量的超前列和滞后列来转换为监督学习问题。但由于我的测试数据没有这些列,我对它们如何帮助我感到困惑。

听起来您不是在处理标准的时间序列问题。时间戳本身并没有让我觉得预测电话的答案太重要。除了上述功能之外,您还可以通过简单地包括一天中的时间和一周中的一天来获得良好的结果。

您需要将时间戳列转换为代表该特定时间戳的几个数字/分类列。将该时间戳列转换为特征后,您可以简单地将监督算法用于该问题。

例如,您可以利用您可以在此处找到的fast.ai函数add_datepart