没有负面例子时的客户行为预测

Customer behaviour prediction when there are no negative examples

假设您拥有一家邮政服务公司,并且想要优化您的业务流程。您有以下形式的订单历史记录(按日期排序):

# date   user_id   from      to               weight-in-grams
Jan-2014 "Alice"   "London"   "New York"        50
Jan-2014 "Bob"     "Madrid"   "Beijing"         100
...
Oct-2017 "Zoya"    "Moscow"   "St.Petersburg"   30 

大多数记录(约 95%)在 "weight-in-grams" 字段中包含正数,但也有少数记录的权重为零(可能这些消息已被取消或丢失)。

是否可以从历史文件中预测用户(Alice、Bob等)是否会在2017年11月使用该服务?我应该使用什么机器学习方法?

我尝试使用简单的逻辑回归和决策树,但它们显然为 任何 用户提供了积极的结果,因为训练集中的消极例子很少。我也尝试过应用 Pareto/NBD 模型(R 中的 BTYD 库),但对于大型数据集来说它似乎非常慢,而且我的数据集包含超过 500 000 条记录。

我还有另一个问题:如果我归因于负样本(考虑到在某个月没有发送信件的用户是这个月的负样本),数据集从 30 Mb 增长到 10 Gb .

答案是肯定的你可以尝试预测。

您可以将其视为时间序列和 运行 RNN: 在你的数据集上训练你的 RNN,这样每个用户都是一个样本。

您还可以通过聚合每个用户的数据来旋转您的集合,使每个用户成为一行(观察)。然后运行多元逻辑回归。您将以这种方式丢失信息,但它可能更简单。您可以添加时间相关的列,例如'average delay between orders'、'average orders per year'等

您可以使用贝叶斯方法来估计用户 return 的概率。