我正在开发销售食品的电子商店。我想要一个建议框,我会根据他在购物车中已有的东西建议我的用户还可以购买什么。如果他有啤酒,我希望他通过降低他也会购买的概率来推荐薯条和其他东西。但我希望我的算法能够学习根据所有用户之前的购买来推荐杂货。我应该从哪里开始?我有杂货表 user_id
、item_id
、date
等。如何在没有暴力破解的情况下制作建议框,这是不可能的。
最佳答案
您所描述的是推荐引擎;更具体地说是协同过滤。它是亚马逊“买了 x 的人也买了 y”功能和 Netflix 推荐引擎的核心。
这是一项不平凡的工作。例如,要获得任何对远程有用的东西,可能需要的不仅仅是首先建立电子商务网站。
例如:
- 您不想推荐购物篮中已有的商品。
- 你不想推荐已经在购物篮中的东西的更便宜的版本。
- 您不想推荐缺货的商品。
- 您不想推荐统计上有效但毫无意义的商品(“嘿,你买了尿布,为什么不买啤酒?” - 有一个故事说在超市里,有一个 em> 一种统计相关性,因为爸爸们晚上出去买尿布,同时拿起六包)。
- 您确实想推荐目前正在促销的商品
- 您不现在想推荐与促销中的商品相似的商品
当我尝试一个类似的项目时,很难向非技术人员解释计算机根本不明白推荐啤酒和尿布是不合适的。一旦我们得到基本解决方案的工作,构建排除和边缘案例逻辑至少需要同样长的时间。
实际上,我认为这些是您的选择:
- 手动维护相关产品。耗时,但不太可能导致奇怪。
- 使用现成的解决方案 - SaaS 或包含支持此功能的库(如 R)。
- 推荐(半)随机产品。有一组你想推荐的产品,然后随机选择一个——例如,促销产品、“畅销”列表中的产品、价格低于 x 的产品。排除可能存在问题的类别。
所有这些选项都可以在合理的时间内实现;从头开始构建一个合适的解决方案的问题在于,每个人都会根据亚马逊来衡量它,而且他们比你领先一步......
关于mysql - 如果用户已经在购物车中有东西,建议他可以购买什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12150308/