如何最有效地利用历史数据来训练流失模型

数据挖掘 搅拌
2021-09-19 06:32:40

假设我们有一些用户在网站上活动的历史数据,并且我们想要建立一个流失预测模型(假设我们想要预测 2 个月窗口内的流失)。据我了解,通常的方法是在某个时间获取一部分历史数据 并查看在时间间隔内哪些用户流失 (,+2 月),所以我们有时会取一些特征 并训练我们的模型。

但是,这样我们只使用了一小部分数据,只为我们的模型提供了当时活跃的用户 . 但是如果我们想使用所有的历史数据呢?想到的一种方法是有时对我们的数据进行大量切片1,2,3,并且只需将它们合并到一个数据集中,但是即使我们将这些切片彼此相距很远,不同的切片也可能有很多相同的用户。因此,我们的模型可能会学习到,如果一组特定的特征在我们的数据集中多次出现,那么具有这些特征的用户流失的可能性较小(例如,如果我们在12>1 那么,如果用户同时出现在这两个切片中,他至少不能在某个时间流失 1)。所以这似乎不是正确的方法......

如何在不破坏模型的情况下从长时间的历史数据中提取尽可能多的信息?

1个回答

这是正确的。您将多次拥有同一个用户。这可能会引入一个小的偏差。我要说明几点为什么这比使用数据较少的第一种方法更好:

首先,如果同一用户出现在多个切片中,这意味着他不会流失或流失得比其他人晚。因此,您将模型偏向于找出高留存用户的样子。正如你所说:

因此,我们的模型可能会了解到,如果一组特定的特征在我们的数据集中多次出现,那么具有这些特征的用户流失的可能性就会降低

如果您有很好的用户保留期组合,这实际上是一件好事。

二、可以包含时间作为功​​能(或他们的注册日期等)。这将告诉您的模型过去没有流失的用户将来流失的可能性较小,并降低模型对您提到的这些其他模式的重要性。

更一般地说,您不仅应该拥有一组不会因同一用户而改变的静态功能 +1. 您还应该具有一组依赖于的功能,例如“过去 7 天的登录次数”。这样模型将在同一时间看到同一用户之间的差异+1.