我目前正在学习推荐系统,了解了协同过滤,用户CF,项目CF,很明显使用这些算法来解决如下问题: 1)用户买了XXX也买了YYY 2)用户查看XXX也查看了YYY
我的问题是:如何解决问题: 1)用户购买XXX也查看了YYY 2)用户查看XXX还买了YYY?
更新:刚刚将标题更正为:“用户已购买 XXX还已查看 YYY”
答案 0 :(得分:2)
虽然我不确定这是否真的是“推荐”,但我可以告诉您如何在Mahout中跨域推荐。您将构建两个DataModel
,一个基于用户项目购买,一个基于用户项目视图。您可以使用购买数据作为UserSimilarity
或ItemSimilarity
实施的输入,但是,然后将视图数据作为输入DataModel
提供给Recommender
实施。然后你会计算出更像你的建议。
答案 1 :(得分:0)
看看Taste framework。有关更多替代方案,请查看此帖子Recommendation Engines for Java applications
答案 2 :(得分:0)
假设您有两个表产品和sold_products。每次销售产品时,都会将其添加到sold_products表中。我们会说这两个表与product_id相关,order_id用于在sold_products中将订单分组。
我们假设您正在查看的产品的product_id为1234。
SELECT DISTINCT sold_products.order_id FROM sold_products WHERE product_id = 1234 LIMIT 25
e.g。 PO1234,PO435,PO3456 ....
SELECT DISTINCT products。* FROM sold_products LEFT JOIN products on products.product_id = sold_products.product_id WHERE sold_products.order_id IN(PO1234,PO435,PO3456 ....)AND NOT sold_products.product_id = 1234 GROUP BY sold_products.product_id ORDER按COUNT(1)DESC
答案 3 :(得分:0)
您需要参考OReilly的“编程集体智慧”一书的第2章。要想出匹配产品,即“购买此商品的客户也购买了......”部分,您需要
上述步骤涉及算法。该书中给出了更多细节以及这些算法的python代码。
答案 4 :(得分:0)
您通常需要两个数据集。我是交易ID&作为第一和第一的产品visitorID&产品被认为是第二个,可以将任何两种产品一起销售(或查看)。你可以使用R(统计软件)&安装一个名为“arules”的软件包,以便轻松生成这些建议。
以下是您可能希望在R
中查看的示例代码setwd(“C:/ Documents and Settings / rp / Desktop / output”); install.packages(“arules”); 库(“arules”); txn = read.transactions(file =“Transactions_sample.csv”,rm.duplicates = FALSE,format =“single”,sep =“,”,cols = c(1,2)); basket_rules< - apriori(txn,parameter = list(sup = 0.5,conf = 0.9,target =“rules”)); 检查(basket_rules);
如果您真的想了解它是如何运作的,您可能需要查看名为产品购买模式分析的http://www.tatvic.com/resources白皮书,该白皮书说明了如何使用您的网络数据完成此任务。
此外,如果您想为其使用现成的API,可以在http://www.liftsuggest.com/how-lift-product-recommendation-works
获取