假设您拥有邮政服务,并且想要优化业务流程。您具有以下格式的订单历史记录(按日期排序):
# 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%)在“克重”字段中都包含正数,但是有一些权重为零(也许这些消息已取消或丢失)。
是否可以预测历史文件中的用户(爱丽丝,鲍勃等)是否会在2017年11月使用该服务?我应该使用哪种机器学习方法?
我尝试使用简单的逻辑回归和决策树,但是它们显然可以为任何用户带来积极的结果,因为训练集中很少有负面的例子。我还尝试应用Pareto / NBD模型(R中的BTYD库),但是对于大型数据集而言,这似乎非常慢,而且我的数据集包含500,000条记录。
我还有另一个问题:如果我归纳负面的例子(考虑到在那个月没有发送信件的用户是这个月的负面例子),数据集将从30 Mb增长到10 Gb。
最佳答案
答案是肯定的,您可以尝试预测。
您可以将其作为一个时间序列并运行RNN:
在枢轴旋转的集合上训练RNN,以便每个用户都是一个样本。
您还可以通过集合每个用户的数据来透视您的集合,以使每个用户都是一行(观察)。然后运行多元逻辑回归。您将以这种方式丢失信息,但它可能更简单。您可以添加与时间相关的列,例如“订单之间的平均延迟”,“每年平均订单”等。
您可以使用贝叶斯方法来估计用户返回的概率。