我有大约200万活跃客户的数据,以及按客户划分的大约2-5年的交易数据。这些数据包括客户购买了什么商品、从什么商店购买、购买的日期、购买了多少、支付了多少等特征。
我需要预测我们的哪些客户会在接下来的两周内购物。
现在我的数据是这样设置的
item_a item_b item_c item_d customer_id visit
dates
6/01 1 0 0 0 cust_123 1
6/02 0 0 0 0 cust_123 0
6/03 0 1 0 0 cust_123 1
6/04 0 0 0 0 cust_123 0
6/05 1 0 0 0 cust_123 1
6/06 0 0 0 0 cust_123 0
6/07 0 0 0 0 cust_123 0
6/08 1 0 0 0 cust_123 1
6/01 0 0 0 0 cust_456 0
6/02 0 0 0 0 cust_456 0
6/03 0 0 0 0 cust_456 0
6/04 0 0 0 0 cust_456 0
6/05 1 0 0 0 cust_456 1
6/06 0 0 0 0 cust_456 0
6/07 0 0 0 0 cust_456 0
6/08 0 0 0 0 cust_456 0
6/01 0 0 0 0 cust_789 0
6/02 0 0 0 0 cust_789 0
6/03 0 0 0 0 cust_789 0
6/04 0 0 0 0 cust_789 0
6/05 0 0 0 0 cust_789 0
6/06 0 0 0 0 cust_789 0
6/07 0 0 0 0 cust_789 0
6/08 0 1 1 0 cust_789 1
我应该让目标变量像这样吗?
df['target_variable']='no_purchase'
for cust in list(set(df['customer'])):
df['target_variable']=np.where(df['visit']>0,cust,df['target_variable'])
或者让我的访问功能成为我的目标变量?如果是后者,我是否应该管理全部200万客户?如果没有,我应该如何在Keras上设置它,以便对所有200万客户的访问进行分类?
发布于 2019-07-15 08:53:39
我认为你应该更好地理解你的问题--你的问题需要强大的领域知识来正确地建模,它可以用许多不同的方式建模,下面只是一些例子:
回归问题:给定一个客户的购买记录只包含相对日期的,例如
如果你以这种方式组织问题,你所需要的就是预测给定序列中的下一个数字。您可以通过以下方式轻松地获取这些数据
随机选择一个完整的序列,比如说[a, b, c, d, e, f, ..., z]
x
K
( K=6
) proceeding [r, s, t, u, v, w]
作为你的网络输入,x
作为你的网络目标。一旦你训练了这个模型,你的最终任务就可以通过检查预测数量是否大于60来轻松解决。
分类问题:给定客户K
个月的购买记录,预测客户在接下来的两个月内会有多少次购买。
同样,您需要从原始数据创建训练数据,但这一次客户的目标是他在K+1
和K+2
月份购买了多少商品,您可以按照自己的方式组织K
-month record的输入数据。
请注意,客户购买的商品数量是一个离散数字,但远低于1M。事实上,就像在基于人脸图像的年龄估计问题中,人们经常将目标量化到不同的区间,例如0-8,9-16,17-24等。你可能会对你的问题做同样的事情。当然,您也可以将此目标表述为回归问题,以直接预测项目的数量。
为什么你需要更好地了解你的问题?
在大多数像你这样的问题中,你不需要使用深度学习,或者至少一开始不需要。经典的方法可能效果更好。
https://stackoverflow.com/questions/57031610
复制相似问题