首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >基于Keras的大型(超过100万个类)多类分类器

基于Keras的大型(超过100万个类)多类分类器
EN

Stack Overflow用户
提问于 2019-07-15 06:28:07
回答 1查看 449关注 0票数 1

我有大约200万活跃客户的数据,以及按客户划分的大约2-5年的交易数据。这些数据包括客户购买了什么商品、从什么商店购买、购买的日期、购买了多少、支付了多少等特征。

我需要预测我们的哪些客户会在接下来的两周内购物。

现在我的数据是这样设置的

代码语言:javascript
复制
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

我应该让目标变量像这样吗?

代码语言:javascript
复制
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万客户的访问进行分类?

EN

回答 1

Stack Overflow用户

发布于 2019-07-15 08:53:39

我认为你应该更好地理解你的问题--你的问题需要强大的领域知识来正确地建模,它可以用许多不同的方式建模,下面只是一些例子:

回归问题:给定一个客户的购买记录只包含相对日期的,例如

  • 构造一个序列,如日期2-日期1,日期3-日期2,日期4-日期3,...
  • 6,7,5,13,...意味着客户可能每周或每两周购买一次
  • 24,30,33,...意味着客户可能会按月购买商品。

如果你以这种方式组织问题,你所需要的就是预测给定序列中的下一个数字。您可以通过以下方式轻松地获取这些数据

随机选择一个完整的序列,比如说[a, b, c, d, e, f, ..., z]

  • randomly选择一个位置进行预测,比如x

  • pick K ( K=6) proceeding [r, s, t, u, v, w]作为你的网络输入,x作为你的网络目标。

一旦你训练了这个模型,你的最终任务就可以通过检查预测数量是否大于60来轻松解决。

分类问题:给定客户K个月的购买记录,预测客户在接下来的两个月内会有多少次购买。

同样,您需要从原始数据创建训练数据,但这一次客户的目标是他在K+1K+2月份购买了多少商品,您可以按照自己的方式组织K-month record的输入数据。

请注意,客户购买的商品数量是一个离散数字,但远低于1M。事实上,就像在基于人脸图像的年龄估计问题中,人们经常将目标量化到不同的区间,例如0-8,9-16,17-24等。你可能会对你的问题做同样的事情。当然,您也可以将此目标表述为回归问题,以直接预测项目的数量。

为什么你需要更好地了解你的问题?

  • 如你所见,你可能会想出一些问题公式,这些公式乍一看可能都是合理的,或者很难说出哪一个是最好的。
  • 值得注意的是,问题设置与其隐藏的前提之间的依赖关系(在仔细考虑问题之前,您可能不会注意到这些事情)。例如,用于预测下一次购买差距的回归问题设置意味着客户购买的商品数量并不重要。这种说法在你的问题中可能是公平的,也可能不公平。
  • 如果你很了解你的问题,你可能会想出一个更简单但更有效的解决方案。

在大多数像你这样的问题中,你不需要使用深度学习,或者至少一开始不需要。经典的方法可能效果更好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57031610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档